All Projects → Kromster80 → RecastNavigationDelphi

Kromster80 / RecastNavigationDelphi

Licence: Zlib license
Port of Recast Navigation into Delphi

Programming Languages

pascal
1382 projects

Projects that are alternatives of or similar to RecastNavigationDelphi

LibSerialPort.jl
Julia wrapper for the libserialport c library
Stars: ✭ 54 (+184.21%)
Mutual labels:  port
IP-Monitor
CSDN博客
Stars: ✭ 32 (+68.42%)
Mutual labels:  port
Pancake.hx
Haxe port of awesome HTML5 game framework Pancake!
Stars: ✭ 16 (-15.79%)
Mutual labels:  port
bare bones
Ada Bare Bones OS development tutorial source code
Stars: ✭ 74 (+289.47%)
Mutual labels:  port
xash3d-switch
Check out https://github.com/fgsfdsfgs/xash3d-fwgs for an updated version
Stars: ✭ 60 (+215.79%)
Mutual labels:  port
ShortcutBadger
Xamarin.Android library supports badge notification like iOS in Samsung, LG, Sony and HTC launchers. Port of
Stars: ✭ 24 (+26.32%)
Mutual labels:  port
Secure Wireguard Implementation
A guide on implementing a secure Wireguard server on OVH (or any other Debian VPS) with DNSCrypt, Port Knocking & an SSH-Honeypot
Stars: ✭ 200 (+952.63%)
Mutual labels:  port
Flurry-WebGL
WebGL port of Flurry screensaver
Stars: ✭ 58 (+205.26%)
Mutual labels:  port
MinecraftC
A Raytraced Minecraft Classic 0.0.30a port to C
Stars: ✭ 250 (+1215.79%)
Mutual labels:  port
gogoAST
The simplest tool to parse/transform/generate code on ast
Stars: ✭ 29 (+52.63%)
Mutual labels:  recast
porthog
Identify which process is using a specific port.
Stars: ✭ 27 (+42.11%)
Mutual labels:  port
tes3mp-android
tes3mp ported to Android devices (using CrabNet). Forked from xyzz/openmw-android.
Stars: ✭ 47 (+147.37%)
Mutual labels:  port
p2p-forwarder
P2P Forwarder - a tool for farwarding tcp/udp ports. Made using libp2p.
Stars: ✭ 31 (+63.16%)
Mutual labels:  port
The-Great-Escape-in-C
Classic ZX Spectrum game "The Great Escape" rewritten in portable C
Stars: ✭ 95 (+400%)
Mutual labels:  port
blobwarsAttrition
A C source port of Blob Wars : Attrition
Stars: ✭ 19 (+0%)
Mutual labels:  port
Openswe1r
An Open-Source port of the 1999 Game "Star Wars Episode 1: Racer"
Stars: ✭ 236 (+1142.11%)
Mutual labels:  port
StbSharp
C# port of the famous C framework
Stars: ✭ 62 (+226.32%)
Mutual labels:  port
PSnmap
Svendsen Tech's PowerShell nmap-like port scanner accepting IPv4 CIDR notation
Stars: ✭ 37 (+94.74%)
Mutual labels:  port
recastCLI.js
CLI tool & Node.js addon to generate navigation mesh
Stars: ✭ 36 (+89.47%)
Mutual labels:  recast-navigation
freeserf.net
Settlers 1 clone written in C#
Stars: ✭ 97 (+410.53%)
Mutual labels:  port

RecastNavigationDelphi

Port of Recast Navigation into Delphi

Source code location: https://github.com/memononen/recastnavigation

Source code version: Around 01 Nov 2014

Porting guidelines:

  • RecastNavigationDelphi is a straight clone of RecastNavigation with as little changes as possible, to allow to keep projects synced in the future.
  • Any changes/improvements to the lib functionality should be first included into C++ master to avoid separation.
  • RND follows RN structure very closely, except for GUI stuff, which is VCL for simplicity instead of imGUI RN solution.
  • All file names are the same, but with an "RN_" prefix.
  • Some units were split to avoid circular dependencies, they are called RN_UnitNameHelper.

Hints about the code:

  • Multi-condition "for" loops and loops where iterator gets changed inside the loop, were converted to while/repeat loops. Loop code needs to be repeated before any "continue".
  • Move method first two arguments (Src, Dst) need to be swapped in Delphi.
  • Delphi needs to wrap overflowing manipulations with a {$O} directive to supress errors.
  • Delphi needs manual disposal of objects created within record , as they dont have built-in destructor support in them.
  • To simplify the pointer trickery, {$POINTERMATH ON} had to be enabled almost in every unit.
  • Typed @ operator setting is great help, but sadly it does not work sometimes.

Common pitfalls during porting:

  • Passing argument @SomePointer instead of SomePointer. Typed @ helps to catch those, but not always.
  • Calling Move/FillChar methods without swapping arguments places.
  • Writing for .. to .. do loop instead of for .. downto .. do in rare cases.

Todos:

  • Fix plethora of memory leaks around the code.
  • TempObstacles demo.
  • Some parts are commented out, waiting to be ported.
  • Sync with current state of the source code.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].