From d8ed7117f08b6233a6a0933cf68e3258760e3c64 Mon Sep 17 00:00:00 2001 From: AcyForsythe Date: Fri, 27 Apr 2007 20:52:43 +0000 Subject: [PATCH] - Adding XML_Roaming.cpp to project git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@860 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- GameSettings.cpp | 1 + GameSettings.h | 1 + JA2.opt | Bin 159232 -> 160256 bytes JA2.plg | 84 ++++++++--------- Strategic/XML_Roaming.cpp | 172 +++++++++++++++++++++++++++++++++++ Tactical/Soldier Control.cpp | 4 +- 6 files changed, 219 insertions(+), 43 deletions(-) create mode 100644 Strategic/XML_Roaming.cpp diff --git a/GameSettings.cpp b/GameSettings.cpp index 9616bf409..d0cfd5c87 100644 --- a/GameSettings.cpp +++ b/GameSettings.cpp @@ -424,6 +424,7 @@ void LoadGameExternalOptions() gGameExternalOptions.iExperiencedAPBonus = iniReader.ReadInteger("JA2 Gameplay Settings","EXPERIENCED_AP_BONUS",0); gGameExternalOptions.iExpertAPBonus = iniReader.ReadInteger("JA2 Gameplay Settings","EXPERT_AP_BONUS",0); gGameExternalOptions.iInsaneAPBonus = iniReader.ReadInteger("JA2 Gameplay Settings","INSANE_AP_BONUS",0); + gGameExternalOptions.iPlayerAPBonus = iniReader.ReadInteger("JA2 Gameplay Settings","PLAYER_AP_BONUS",0); // Sight range gGameExternalOptions.ubStraightSightRange = iniReader.ReadInteger("JA2 Tactical Settings","BASE_SIGHT_RANGE",13); diff --git a/GameSettings.h b/GameSettings.h index e56cf397f..5eb2a6e2f 100644 --- a/GameSettings.h +++ b/GameSettings.h @@ -202,6 +202,7 @@ typedef struct INT8 iExperiencedAPBonus; INT8 iExpertAPBonus; INT8 iInsaneAPBonus; + INT8 iPlayerAPBonus; // Kaiden: Vehicle Inventory change - Added for INI Option BOOLEAN fVehicleInventory; diff --git a/JA2.opt b/JA2.opt index 6ea85a6522c84536c735f1bc5d4623245f09f974..5f3c85809386575f5b0829bf71b457ae93308e59 100644 GIT binary patch literal 160256 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 literal 159232 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 diff --git a/JA2.plg b/JA2.plg index 9e67cf393..062f4720a 100644 --- a/JA2.plg +++ b/JA2.plg @@ -6,7 +6,7 @@ --------------------Configuration: TileEngine - Win32 Release--------------------

Command Lines

-Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP6D.tmp" with contents +Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP10.tmp" with contents [ /nologo /MT /W3 /GX /O2 /I "..\Standard Gaming Platform" /I "..\\" /I "..\Tactical" /I "..\Utils" /I "..\tacticalai" /I "..\Editor" /I "..\strategic" /I "..\Laptop" /I ".\\" /D "CALLBACKTIMER" /D "PRECOMPILEDHEADERS" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "JA2" /D "XML_STATIC" /D "CINTERFACE" /FR"Release/" /Fp"Release/TileEngine.pch" /YX"TileEngine All.h" /Fo"Release/" /Fd"Release/" /FD /O2b2 /c "C:\JA2\Build\TileEngine\Ambient Control.cpp" @@ -46,8 +46,8 @@ Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP6D.tmp" with content "C:\JA2\Build\TileEngine\worldman.cpp" "C:\JA2\Build\TileEngine\XML_ExplosionData.cpp" ] -Creating command line "cl.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP6D.tmp" -Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP6E.tmp" with contents +Creating command line "cl.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP10.tmp" +Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP11.tmp" with contents [ /nologo /out:"Release\TileEngine.lib" ".\Release\Ambient Control.obj" @@ -87,7 +87,7 @@ Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP6E.tmp" with content .\Release\worldman.obj .\Release\XML_ExplosionData.obj ] -Creating command line "link.exe -lib @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP6E.tmp" +Creating command line "link.exe -lib @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP11.tmp"

Output Window

Compiling... Ambient Control.cpp @@ -133,7 +133,7 @@ Creating library... --------------------Configuration: Standard Gaming Platform - Win32 Release--------------------

Command Lines

-Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP6F.tmp" with contents +Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP12.tmp" with contents [ /nologo /MT /W3 /GX /O2 /I "..\\" /I "..\TileEngine" /I "..\Tactical" /I "..\Utils" /I "..\strategic" /I ".\\" /D "NO_ZLIB" /D "JA2_PRECOMPILED_HEADERS" /D "NO_ZLIB_COMPRESSION" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "JA2" /D "XML_STATIC" /D "CINTERFACE" /FR".\Release/" /Fp".\Release/Standard Gaming Platform.pch" /YX"JA2 SGP ALL.H" /Fo".\Release/" /Fd".\Release/" /FD /c "C:\JA2\Build\Standard Gaming Platform\Button Sound Control.cpp" @@ -173,14 +173,14 @@ Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP6F.tmp" with content "C:\JA2\Build\Standard Gaming Platform\vsurface.cpp" "C:\JA2\Build\Standard Gaming Platform\WinFont.cpp" ] -Creating command line "cl.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP6F.tmp" -Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP70.tmp" with contents +Creating command line "cl.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP12.tmp" +Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP13.tmp" with contents [ /nologo /MT /W3 /GX /O2 /I "..\\" /I "..\TileEngine" /I "..\Tactical" /I "..\Utils" /I "..\strategic" /I ".\\" /D "NO_ZLIB" /D "JA2_PRECOMPILED_HEADERS" /D "NO_ZLIB_COMPRESSION" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "JA2" /D "XML_STATIC" /D "CINTERFACE" /D "_DEBUG" /FR".\Release/" /Fp".\Release/Standard Gaming Platform.pch" /YX"JA2 SGP ALL.H" /Fo".\Release/" /Fd".\Release/" /FD /c "C:\JA2\Build\Standard Gaming Platform\DEBUG.cpp" ] -Creating command line "cl.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP70.tmp" -Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP71.tmp" with contents +Creating command line "cl.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP13.tmp" +Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP14.tmp" with contents [ /nologo /out:".\Release\Standard Gaming Platform.lib" ".\Release\Button Sound Control.obj" @@ -222,7 +222,7 @@ Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP71.tmp" with content ".\Release\WinFont.obj" ".\ddraw.lib" ] -Creating command line "link.exe -lib @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP71.tmp" +Creating command line "link.exe -lib @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP14.tmp"

Output Window

Compiling... Button Sound Control.cpp @@ -286,7 +286,7 @@ Creating library... --------------------Configuration: Tactical - Win32 Release--------------------

Command Lines

-Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP72.tmp" with contents +Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP15.tmp" with contents [ /nologo /MT /W3 /GX /O2 /I "..\Standard Gaming Platform" /I "..\TileEngine" /I "..\\" /I "..\Utils" /I "..\tacticalai" /I "..\Editor" /I "..\strategic" /I "..\Laptop" /I ".\\" /D "CALLBACKTIMER" /D "PRECOMPILEDHEADERS" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "JA2" /D "XML_STATIC" /FR"Release/" /Fp"Release/Tactical.pch" /YX"Tactical All.h" /Fo"Release/" /Fd"Release/" /FD /c "C:\JA2\Build\Tactical\Air Raid.cpp" @@ -383,14 +383,14 @@ Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP72.tmp" with content "C:\JA2\Build\Tactical\XML_Sounds.cpp" "C:\JA2\Build\Tactical\XML_TonyInventory.cpp" ] -Creating command line "cl.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP72.tmp" -Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP73.tmp" with contents +Creating command line "cl.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP15.tmp" +Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP16.tmp" with contents [ /nologo /MT /W3 /GX /Od /I "..\Standard Gaming Platform" /I "..\TileEngine" /I "..\\" /I "..\Utils" /I "..\tacticalai" /I "..\Editor" /I "..\strategic" /I "..\Laptop" /I ".\\" /D "CALLBACKTIMER" /D "PRECOMPILEDHEADERS" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "JA2" /D "XML_STATIC" /FR"Release/" /Fp"Release/Tactical.pch" /YX"Tactical All.h" /Fo"Release/" /Fd"Release/" /FD /c "C:\JA2\Build\Tactical\LOS.cpp" ] -Creating command line "cl.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP73.tmp" -Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP74.tmp" with contents +Creating command line "cl.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP16.tmp" +Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP17.tmp" with contents [ /nologo /out:"Release\Tactical.lib" ".\Release\Air Raid.obj" @@ -488,7 +488,7 @@ Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP74.tmp" with content .\Release\XML_Sounds.obj .\Release\XML_TonyInventory.obj ] -Creating command line "link.exe -lib @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP74.tmp" +Creating command line "link.exe -lib @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP17.tmp"

Output Window

Compiling... Air Raid.cpp @@ -603,7 +603,7 @@ Creating library... --------------------Configuration: Utils - Win32 Release--------------------

Command Lines

-Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP75.tmp" with contents +Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP18.tmp" with contents [ /nologo /MT /W3 /GX /O2 /I "..\Standard Gaming Platform" /I "..\TileEngine" /I "..\\" /I "..\Tactical" /I "..\tacticalai" /I "..\Editor" /I "..\strategic" /I "..\Laptop" /I ".\\" /D "CALLBACKTIMER" /D "PRECOMPILEDHEADERS" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "JA2" /D "XML_STATIC" /D "CINTERFACE" /FR"Release/" /Fp"Release/Utils.pch" /YX"Utils All.h" /Fo"Release/" /Fd"Release/" /FD /c "C:\JA2\Build\Utils\_DutchText.cpp" @@ -646,8 +646,8 @@ Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP75.tmp" with content "C:\JA2\Build\Utils\XML_Strings.cpp" "C:\JA2\Build\Utils\XML_Strings2.cpp" ] -Creating command line "cl.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP75.tmp" -Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP76.tmp" with contents +Creating command line "cl.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP18.tmp" +Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP19.tmp" with contents [ /nologo /out:"Release\Utils.lib" .\Release\_DutchText.obj @@ -690,7 +690,7 @@ Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP76.tmp" with content .\Release\XML_Strings.obj .\Release\XML_Strings2.obj ] -Creating command line "link.exe -lib @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP76.tmp" +Creating command line "link.exe -lib @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP19.tmp"

Output Window

Compiling... _DutchText.cpp @@ -765,7 +765,7 @@ Creating library... --------------------Configuration: TacticalAI - Win32 Release--------------------

Command Lines

-Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP77.tmp" with contents +Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP1A.tmp" with contents [ /nologo /MT /W3 /GX /O2 /I "..\Standard Gaming Platform" /I "..\TileEngine" /I "..\\" /I "..\Tactical" /I "..\Utils" /I "..\Editor" /I "..\strategic" /I "..\Laptop" /I ".\\" /D "PRECOMPILEDHEADERS" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "JA2" /D "XML_STATIC" /D "CINTERFACE" /FR"Release/" /Fp"Release/TacticalAI.pch" /YX"AI All.h" /Fo"Release/" /Fd"Release/" /FD /c "C:\JA2\Build\TacticalAI\AIList.cpp" @@ -783,8 +783,8 @@ Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP77.tmp" with content "C:\JA2\Build\TacticalAI\QuestDebug.cpp" "C:\JA2\Build\TacticalAI\Realtime.cpp" ] -Creating command line "cl.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP77.tmp" -Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP78.tmp" with contents +Creating command line "cl.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP1A.tmp" +Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP1B.tmp" with contents [ /nologo /out:"Release\TacticalAI.lib" .\Release\AIList.obj @@ -802,7 +802,7 @@ Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP78.tmp" with content .\Release\QuestDebug.obj .\Release\Realtime.obj ] -Creating command line "link.exe -lib @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP78.tmp" +Creating command line "link.exe -lib @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP1B.tmp"

Output Window

Compiling... AIList.cpp @@ -826,7 +826,7 @@ Creating library... --------------------Configuration: Editor - Win32 Release--------------------

Command Lines

-Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP79.tmp" with contents +Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP1C.tmp" with contents [ /nologo /MT /W3 /GX /O2 /Ob2 /I "..\Standard Gaming Platform" /I "..\TileEngine" /I "..\\" /I "..\Tactical" /I "..\Utils" /I "..\tacticalai" /I "..\strategic" /I "..\Laptop" /I ".\\" /D "PRECOMPILEDHEADERS" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "JA2" /D "XML_STATIC" /D "CINTERFACE" /FR"Release/" /Fp"Release/Editor.pch" /YX"Editor All.h" /Fo"Release/" /Fd"Release/" /FD /c "C:\JA2\Build\Editor\Cursor Modes.cpp" @@ -854,8 +854,8 @@ Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP79.tmp" with content "C:\JA2\Build\Editor\smooth.cpp" "C:\JA2\Build\Editor\Smoothing Utils.cpp" ] -Creating command line "cl.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP79.tmp" -Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP7A.tmp" with contents +Creating command line "cl.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP1C.tmp" +Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP1D.tmp" with contents [ /nologo /out:"Release\Editor.lib" ".\Release\Cursor Modes.obj" @@ -883,7 +883,7 @@ Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP7A.tmp" with content .\Release\smooth.obj ".\Release\Smoothing Utils.obj" ] -Creating command line "link.exe -lib @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP7A.tmp" +Creating command line "link.exe -lib @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP1D.tmp"

Output Window

Compiling... Cursor Modes.cpp @@ -916,7 +916,7 @@ Creating library... --------------------Configuration: Laptop - Win32 Release--------------------

Command Lines

-Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP7B.tmp" with contents +Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP1E.tmp" with contents [ /nologo /MT /W3 /GX /O2 /I "..\Standard Gaming Platform" /I "..\TileEngine" /I "..\\" /I "..\Tactical" /I "..\Utils" /I "..\tacticalai" /I "..\Editor" /I "..\strategic" /I ".\\" /D "PRECOMPILEDHEADERS" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "JA2" /D "XML_STATIC" /D "CINTERFACE" /FR"Release/" /Fp"Release/Laptop.pch" /YX"Laptop All.h" /Fo"Release/" /Fd"Release/" /FD /c "C:\JA2\Build\Laptop\aim.cpp" @@ -977,8 +977,8 @@ Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP7B.tmp" with content "C:\JA2\Build\Laptop\sirtech.cpp" "C:\JA2\Build\Laptop\Store Inventory.cpp" ] -Creating command line "cl.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP7B.tmp" -Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP7C.tmp" with contents +Creating command line "cl.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP1E.tmp" +Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP1F.tmp" with contents [ /nologo /out:"Release\Laptop.lib" .\Release\aim.obj @@ -1039,7 +1039,7 @@ Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP7C.tmp" with content .\Release\sirtech.obj ".\Release\Store Inventory.obj" ] -Creating command line "link.exe -lib @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP7C.tmp" +Creating command line "link.exe -lib @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP1F.tmp"

Output Window

Compiling... aim.cpp @@ -1106,7 +1106,7 @@ Creating library... --------------------Configuration: Strategic - Win32 Release--------------------

Command Lines

-Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP7D.tmp" with contents +Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP20.tmp" with contents [ /nologo /MT /W3 /GX /O2 /I "..\Standard Gaming Platform" /I "..\TileEngine" /I "..\\" /I "..\Tactical" /I "..\Utils" /I "..\tacticalai" /I "..\Editor" /I "..\Laptop" /I ".\\" /D "PRECOMPILEDHEADERS" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "JA2" /D "XML_STATIC" /D "CINTERFACE" /FR"Release/" /Fp"Release/Strategic.pch" /YX"Strategic All.h" /Fo"Release/" /Fd"Release/" /FD /c "C:\JA2\Build\Strategic\AI Viewer.cpp" @@ -1155,8 +1155,8 @@ Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP7D.tmp" with content "C:\JA2\Build\Strategic\XML_Army.cpp" "C:\JA2\Build\Strategic\XML_Roaming.cpp" ] -Creating command line "cl.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP7D.tmp" -Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP7E.tmp" with contents +Creating command line "cl.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP20.tmp" +Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP21.tmp" with contents [ /nologo /out:"Release\Strategic.lib" ".\Release\AI Viewer.obj" @@ -1205,7 +1205,7 @@ Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP7E.tmp" with content .\Release\XML_Army.obj .\Release\XML_Roaming.obj ] -Creating command line "link.exe -lib @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP7E.tmp" +Creating command line "link.exe -lib @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP21.tmp"

Output Window

Compiling... AI Viewer.cpp @@ -1261,7 +1261,7 @@ Creating library...

Command Lines

Creating command line "rc.exe /l 0x409 /fo"Release/ja2.res" /i "Res" /i ".\Res" /d "NDEBUG" "C:\JA2\Build\Res\ja2.rc"" -Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP7F.tmp" with contents +Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP22.tmp" with contents [ /nologo /G5 /MT /W3 /GX /Zi /O2 /Ob2 /I ".\Standard Gaming Platform" /I ".\TileEngine" /I ".\Tactical" /I ".\Utils" /I ".\TacticalAI" /I ".\Editor" /I ".\Strategic" /I ".\laptop" /I ".\\" /D "CALLBACKTIMER" /D "PRECOMPILEDHEADERS" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "JA2" /D "XML_STATIC" /D "CINTERFACE" /FR"Release/" /Fp"Release/JA2.pch" /YX"JA2 All.h" /Fo"Release/" /Fd"Release/" /FD /O2b2 /c "C:\JA2\Build\Utils\_Ja25GermanText.cpp" @@ -1288,8 +1288,8 @@ Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP7F.tmp" with content "C:\JA2\Build\SCREENS.cpp" "C:\JA2\Build\Sys Globals.cpp" ] -Creating command line "cl.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP7F.tmp" -Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP80.tmp" with contents +Creating command line "cl.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP22.tmp" +Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP23.tmp" with contents [ libexpatMT.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib winmm.lib smackw32.lib mss32.lib /nologo /subsystem:windows /profile /map:"Release/ja2_cvs.map" /machine:I386 /out:"..\ja2_cvs.exe" .\Release\_Ja25GermanText.obj @@ -1326,7 +1326,7 @@ libexpatMT.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advap .\Laptop\Release\Laptop.lib .\Strategic\Release\Strategic.lib ] -Creating command line "link.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP80.tmp" +Creating command line "link.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP23.tmp"

Output Window

Compiling resources... Compiling... @@ -1363,7 +1363,7 @@ SCREENS.cpp Sys Globals.cpp Linking... LINK : warning LNK4089: all references to "ADVAPI32.dll" discarded by /OPT:REF -Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP82.tmp" with contents +Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP25.tmp" with contents [ /nologo /o"Release/JA2.bsc" .\Release\_Ja25GermanText.sbr @@ -1389,7 +1389,7 @@ Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP82.tmp" with content .\Release\SaveLoadScreen.sbr .\Release\SCREENS.sbr ".\Release\Sys Globals.sbr"] -Creating command line "bscmake.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP82.tmp" +Creating command line "bscmake.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP25.tmp" Creating browse info file...

Output Window

diff --git a/Strategic/XML_Roaming.cpp b/Strategic/XML_Roaming.cpp new file mode 100644 index 000000000..8cc6b603a --- /dev/null +++ b/Strategic/XML_Roaming.cpp @@ -0,0 +1,172 @@ +#ifdef PRECOMPILEDHEADERS + #include "Strategic All.h" + #include "XML.h" +#else + #include + #include "XML.h" +#endif + +#define MAX_CHAR_DATA_LENGTH 500 + +extern INT32 iRestrictedSectorArraySize; +extern UINT32 gRestrictMilitia[256]; + + +typedef enum +{ + ROAMING_ELEMENT_NONE = 0, + ROAMING_ELEMENT_RESTRICTED_SECTORS, + ROAMING_ELEMENT_SECTOR, +} ROAMING_PARSE_STAGE; + + + + +typedef struct +{ + UINT8 ubSectorID; + BOOLEAN fValidSector; +} RoamingInfo; + + +typedef struct +{ + ROAMING_PARSE_STAGE curElement; + INT8 szCharData[MAX_CHAR_DATA_LENGTH+1]; + RoamingInfo curRoamingInfo; + UINT32 uiSectorCount; + UINT32 currentDepth; + UINT32 maxReadDepth; +} RoamingParseData; + + +static void XMLCALL +RoamingStartElementHandle(void *userData, const char *name, const char **atts) +{ + RoamingParseData * pData = (RoamingParseData *) userData; + + if(pData->currentDepth <= pData->maxReadDepth) //are we reading this element? + { + + if(strcmp(name, "RESTRICTED_SECTORS") == 0 && pData->curElement == ROAMING_ELEMENT_NONE) + { + pData->curElement = ROAMING_ELEMENT_RESTRICTED_SECTORS; + pData->maxReadDepth++; //we are not skipping this element + } + + else if(strcmp(name, "SECTOR") == 0 && pData->curElement == ROAMING_ELEMENT_RESTRICTED_SECTORS) + { + pData->curElement = ROAMING_ELEMENT_SECTOR; + pData->maxReadDepth++; //we are not skipping this element + } + pData->szCharData[0] = '\0'; + } + + pData->currentDepth++; + +} + + + +static void XMLCALL +RoamingCharacterDataHandle(void *userData, const char *str, int len) +{ + RoamingParseData * pData = (RoamingParseData *) userData; + + if(pData->currentDepth <= pData->maxReadDepth && strlen(pData->szCharData) < MAX_CHAR_DATA_LENGTH) + strncat(pData->szCharData,str,__min((unsigned int)len,MAX_CHAR_DATA_LENGTH-strlen(pData->szCharData))); +} + + +static void XMLCALL +RoamingEndElementHandle(void *userData, const char *name) +{ + RoamingParseData * pData = (RoamingParseData *) userData; + + if(pData->currentDepth <= pData->maxReadDepth) //we're at the end of an element that we've been reading + { + if(strcmp(name, "RESTRICTED_SECTORS") == 0 && pData->curElement == ROAMING_ELEMENT_RESTRICTED_SECTORS) + { + pData->curElement = ROAMING_ELEMENT_NONE; + iRestrictedSectorArraySize = pData->uiSectorCount; + } + //Kaiden: Code shamelessly stolen from lesh to accept sector Aliases + else if(strcmp(name, "SECTOR") == 0 && pData->curElement == ROAMING_ELEMENT_SECTOR) + { + UINT8 x, y; + pData->curElement = ROAMING_ELEMENT_RESTRICTED_SECTORS; + + y = (UINT8)pData->szCharData[0] & 0x1F; + x = (UINT8)atol(&pData->szCharData[1]); + if ( x > 0 && x <= 16 && y > 0 && y <= 16 ) + { + pData->curRoamingInfo.fValidSector = TRUE; + pData->curRoamingInfo.ubSectorID = SECTOR(x,y); + gRestrictMilitia[pData->uiSectorCount] = pData->curRoamingInfo.ubSectorID; + pData->uiSectorCount++; + } + else + { + pData->curRoamingInfo.fValidSector = FALSE; + } + } + pData->maxReadDepth--; + } + + pData->currentDepth--; +} + + +BOOLEAN ReadInRoamingInfo(STR fileName) +{ + HWFILE hFile; + UINT32 uiBytesRead; + UINT32 uiFSize; + CHAR8 * lpcBuffer; + XML_Parser parser = XML_ParserCreate(NULL); + + RoamingParseData pData; + + hFile = FileOpen( fileName, FILE_ACCESS_READ, FALSE ); + if ( !hFile ) + return( FALSE ); + + uiFSize = FileGetSize(hFile); + lpcBuffer = (CHAR8 *) MemAlloc(uiFSize+1); + + //Read in block + if ( !FileRead( hFile, lpcBuffer, uiFSize, &uiBytesRead ) ) + { + MemFree(lpcBuffer); + return( FALSE ); + } + + lpcBuffer[uiFSize] = 0; //add a null terminator + + FileClose( hFile ); + + + XML_SetElementHandler(parser, RoamingStartElementHandle, RoamingEndElementHandle); + XML_SetCharacterDataHandler(parser, RoamingCharacterDataHandle); + + + memset(&pData,0,sizeof(pData)); + XML_SetUserData(parser, &pData); + iRestrictedSectorArraySize = 0; + + if(!XML_Parse(parser, lpcBuffer, uiFSize, TRUE)) + { + CHAR8 errorBuf[511]; + sprintf(errorBuf, "XML Parser Error in RestrictedRoamingMilitia.xml: %s at line %d", XML_ErrorString(XML_GetErrorCode(parser)), XML_GetCurrentLineNumber(parser)); + LiveMessage(errorBuf); + + MemFree(lpcBuffer); + return FALSE; + } + + MemFree(lpcBuffer); + + XML_ParserFree(parser); + + return TRUE; +} \ No newline at end of file diff --git a/Tactical/Soldier Control.cpp b/Tactical/Soldier Control.cpp index 9bab232c6..303d42577 100644 --- a/Tactical/Soldier Control.cpp +++ b/Tactical/Soldier Control.cpp @@ -621,6 +621,8 @@ INT8 CalcActionPoints(SOLDIERTYPE *pSold) ubPoints +=0; } } + else + ubPoints += gGameExternalOptions.iPlayerAPBonus; // if we are in boxing mode, adjust APs... THIS MUST BE LAST! if ( gTacticalStatus.bBoxingState == BOXING || gTacticalStatus.bBoxingState == PRE_BOXING ) @@ -687,7 +689,7 @@ void CalcNewActionPoints( SOLDIERTYPE *pSoldier ) } else { //Kaiden: Players just max out normally unless drugged - pSoldier->bActionPoints = __min( pSoldier->bActionPoints, gubMaxActionPoints[ pSoldier->ubBodyType ] ); + pSoldier->bActionPoints = __min( pSoldier->bActionPoints, (gubMaxActionPoints[ pSoldier->ubBodyType ] + gGameExternalOptions.iPlayerAPBonus) ); } }