diff --git a/.gitignore b/.gitignore index b0da8ef5..600532ca 100644 --- a/.gitignore +++ b/.gitignore @@ -26,6 +26,7 @@ *.exe *.out *.app +!ducible.exe # NetBeans nbproject/private/ diff --git a/sfall/Modules/Interface.cpp b/sfall/Modules/Interface.cpp index f3f17376..63d52380 100644 --- a/sfall/Modules/Interface.cpp +++ b/sfall/Modules/Interface.cpp @@ -238,7 +238,7 @@ static void AddNewDot() { } static void __declspec(naked) DrawingDots() { - long x_offset, y_offset; + long x_offset, y_offset; __asm { mov ebp, esp; // prolog sub esp, __LOCAL_SIZE; @@ -250,12 +250,13 @@ static void __declspec(naked) DrawingDots() { x_offset = 22 - *fo::ptr::wmWorldOffsetX; y_offset = 21 - *fo::ptr::wmWorldOffsetY; - for (std::vector::const_iterator it = dots.begin(); it != dots.end(); ++it) { // redraws all dots - if (it->x < *fo::ptr::wmWorldOffsetX || it->y < *fo::ptr::wmWorldOffsetY) continue; // the pixel is out of viewport - if (it->x > *fo::ptr::wmWorldOffsetX + wmapViewPortWidth || it->y > *fo::ptr::wmWorldOffsetY + wmapViewPortHeight) continue; + for (size_t i = 0; i < dots.size(); i++) { // redraws all dots + const DotPosition dot = dots[i]; + if (dot.x < *fo::ptr::wmWorldOffsetX || dot.y < *fo::ptr::wmWorldOffsetY) continue; // the pixel is out of viewport + if (dot.x > *fo::ptr::wmWorldOffsetX + wmapViewPortWidth || dot.y > *fo::ptr::wmWorldOffsetY + wmapViewPortHeight) continue; - long wmPixelX = (it->x + x_offset); - long wmPixelY = (it->y + y_offset); + long wmPixelX = (dot.x + x_offset); + long wmPixelY = (dot.y + y_offset); wmPixelY *= wmapWinWidth; diff --git a/sfall/ducible.exe b/sfall/ducible.exe new file mode 100644 index 00000000..ed53db16 Binary files /dev/null and b/sfall/ducible.exe differ diff --git a/sfall/postbuild.cmd b/sfall/postbuild.cmd new file mode 100644 index 00000000..92f45817 --- /dev/null +++ b/sfall/postbuild.cmd @@ -0,0 +1,21 @@ +@ECHO OFF + +rem debug, release, etc. +SET type=%1 +rem full path to the compiled DLL +SET target=%2 + +SET destination=C:\Games\Fallout2\ddraw.dll + +SET pdb="%~dpn2.pdb" + +IF EXIST ducible.exe ( + IF EXIST %pdb% ( + ducible %target% %pdb% + ) ELSE ( + ducible %target% + ) +) + +rem echo Copying %target% to %destination% ... +rem copy %target% %destination% \ No newline at end of file diff --git a/sfall/postbuild.cmd.template b/sfall/postbuild.cmd.template index 9465d3ca..09c573bc 100644 --- a/sfall/postbuild.cmd.template +++ b/sfall/postbuild.cmd.template @@ -7,5 +7,15 @@ SET target=%2 SET destination=d:\GAMES\Fallout2\@RP\ddraw.dll +SET pdb="%~dpn2.pdb" + +IF EXIST ducible.exe ( + IF EXIST %pdb% ( + ducible %target% %pdb% + ) ELSE ( + ducible %target% + ) +) + echo Copying %target% to %destination% ... copy %target% %destination% \ No newline at end of file