Author SHA1 Message Date
Asdow 58c134bd8e Combine search loops into one
Reduces code duplication and fixes an illegal memory access that was still present.
2025-11-19 13:57:18 +02:00
63 changed files with 1861 additions and 1016 deletions
+1 -1
View File
@@ -77,7 +77,7 @@ jobs:
arch: x86 arch: x86
- name: Prepare build - name: Prepare build
run: | run: |
cmake -S . -B build -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLanguages="$Env:JA2Language" -DApplications="$Env:JA2Application" cmake -S . -B build -GNinja -DCMAKE_BUILD_TYPE=Release -DLanguages="$Env:JA2Language" -DApplications="$Env:JA2Application"
- name: Build - name: Build
run: | run: |
cmake --build build/ -- -v cmake --build build/ -- -v
+1
View File
@@ -13,6 +13,7 @@
#include "Font Control.h" #include "Font Control.h"
#include "Cursors.h" #include "Cursors.h"
#include "Font.h" #include "Font.h"
#include "WordWrap.h"
#include "sysutil.h" #include "sysutil.h"
#include "input.h" #include "input.h"
#include "english.h" #include "english.h"
+37 -24
View File
@@ -1,27 +1,40 @@
#include "types.h" #include "types.h"
#include "FeaturesScreen.h" #include "FeaturesScreen.h"
#include "video.h" #include "video.h"
#include "Font Control.h" #include "Font Control.h"
#include "Game Clock.h" #include "Game Clock.h"
#include "Text Input.h" #include "Text Input.h"
#include "WordWrap.h" #include "WordWrap.h"
#include "SaveLoadScreen.h" #include "SaveLoadScreen.h"
#include "Render Dirty.h" #include "Render Dirty.h"
#include "WCheck.h" #include "WordWrap.h"
#include "Utilities.h" #include "WCheck.h"
#include "Sound Control.h" #include "Utilities.h"
#include "Ambient Control.h" #include "DEBUG.H"
#include "GameSettings.h" #include "Sound Control.h"
#include "Game Init.h" #include "Ambient Control.h"
#include "english.h" #include "WorldDat.h"
#include "Cursors.h" #include "worlddef.h"
#include "sysutil.h" #include "GameSettings.h"
#include "Text.h" #include "Game Init.h"
#include "Interface Control.h" #include "english.h"
#include "message.h" #include "Overhead.h"
#include "Multi Language Graphic Utils.h" #include "GAP.H"
#include "connect.h" #include "Cursors.h"
#include "mainmenuscreen.h" #include "sysutil.h"
#include "Exit Grids.h"
#include "Text.h"
#include "Interface Control.h"
#include "message.h"
#include "Multi Language Graphic Utils.h"
#include "Map Information.h"
#include "Sys Globals.h"
#include "insurance.h"
#include "connect.h"
#include "worldman.h"
#include "Init.h"
#include "Game Events.h"
extern UINT32 guiDoneButton; // symbol already declared globally in AimArchives.cpp (jonathanl) extern UINT32 guiDoneButton; // symbol already declared globally in AimArchives.cpp (jonathanl)
+32 -24
View File
@@ -1,30 +1,38 @@
#include "types.h" #include "types.h"
#include "GameInitOptionsScreen.h" #include "GameInitOptionsScreen.h"
#include "GameSettings.h" #include "GameSettings.h"
#include "Utilities.h" #include "Utilities.h"
#include "WCheck.h" #include "WCheck.h"
#include "Font Control.h" #include "Font Control.h"
#include "WordWrap.h" #include "WordWrap.h"
#include "Render Dirty.h" #include "Render Dirty.h"
#include "input.h" #include "input.h"
#include "Options Screen.h" #include "Options Screen.h"
#include "english.h" #include "english.h"
#include "sysutil.h" #include "sysutil.h"
#include "Fade Screen.h" #include "Fade Screen.h"
#include "Cursor Control.h" #include "Cursor Control.h"
#include "Music Control.h" #include "Music Control.h"
#include "Cursors.h" #include "Cursors.h"
#include "Intro.h" #include "Intro.h"
#include "Text.h" #include "Text.h"
#include "_Ja25EnglishText.h" #include "_Ja25EnglishText.h"
#include "Soldier Profile.h" #include "Soldier Profile.h"
#include "SaveLoadScreen.h"
#include <vfs/Core/vfs.h>
#include <vfs/Tools/vfs_property_container.h>
#include "gameloop.h"
#include "connect.h"
#include "SaveLoadScreen.h"
#ifdef JA2UB
#include "ub_config.h"
#endif
#include <vfs/Core/vfs.h>
#include <vfs/Core/vfs_init.h>
#include <vfs/Tools/vfs_property_container.h>
#include <vfs/Core/vfs_os_functions.h>
#ifdef JA2UB #ifdef JA2UB
#include "ub_config.h"
// ********************************* // *********************************
// Unfinished Business: Initial Game Screen // Unfinished Business: Initial Game Screen
+4 -2
View File
@@ -13,6 +13,7 @@
#include "HelpScreen.h" #include "HelpScreen.h"
#include "INIReader.h" #include "INIReader.h"
#include "Shade Table Util.h" #include "Shade Table Util.h"
#include "soldier profile type.h"
#include "random.h" #include "random.h"
#include "SaveLoadGame.h" #include "SaveLoadGame.h"
#include "sgp.h" #include "sgp.h"
@@ -35,6 +36,7 @@
#include "connect.h" #include "connect.h"
#include "sgp_logger.h" #include "sgp_logger.h"
#include "Map Information.h"
#include "GameInitOptionsScreen.h" #include "GameInitOptionsScreen.h"
@@ -154,7 +156,7 @@ BOOLEAN UsingInventoryCostsAPSystem()
return ( gGameExternalOptions.fInventoryCostsAP ); return ( gGameExternalOptions.fInventoryCostsAP );
} }
static std::string StringToLower(std::string strToConvert) std::string StringToLower(std::string strToConvert)
{//change each element of the string to lower case {//change each element of the string to lower case
for(unsigned int i=0;i<strToConvert.length();i++) for(unsigned int i=0;i<strToConvert.length();i++)
{ {
@@ -183,7 +185,7 @@ BOOLEAN IsNIVModeValid(bool checkRes)
return isValid; return isValid;
} }
static void UpdateFeatureFlags() void UpdateFeatureFlags()
{ {
// do we need to override some ini settings? // do we need to override some ini settings?
if (gGameSettings.fFeatures[FF_FEATURES_SCREEN]) if (gGameSettings.fFeatures[FF_FEATURES_SCREEN])
+25 -20
View File
@@ -1,23 +1,27 @@
#include "sgp.h" #include "sgp.h"
#include "sysutil.h" #include "sysutil.h"
#include "WCheck.h" #include "vobject_blitters.h"
#include "Cursors.h" #include "WCheck.h"
#include "Font Control.h" #include "Cursors.h"
#include "Render Dirty.h" #include "Font Control.h"
#include "Text.h" #include "Cursor Control.h"
#include "Utilities.h" #include "Render Dirty.h"
#include "WordWrap.h" #include "Text.h"
#include "HelpScreen.h" #include "Utilities.h"
#include "HelpScreenText.h" #include "WordWrap.h"
#include "line.h" #include "Font Control.h"
#include "Game Clock.h" #include "Text.h"
#include "GameSettings.h" #include "HelpScreen.h"
#include "laptop.h" #include "HelpScreenText.h"
#include "Text Input.h" #include "line.h"
#include "english.h" #include "Game Clock.h"
#include "renderworld.h" #include "GameSettings.h"
#include "Game Init.h" #include "laptop.h"
#include "Overhead.h" #include "Text Input.h"
#include "english.h"
#include "renderworld.h"
#include "Game Init.h"
#include "Overhead.h"
extern INT16 gsVIEWPORT_END_Y; extern INT16 gsVIEWPORT_END_Y;
extern void PrintDate( void ); extern void PrintDate( void );
@@ -304,6 +308,7 @@ void SelectHelpScrollAreaCallBack( MOUSE_REGION * pRegion, INT32 iReason );
// region to mask the background // region to mask the background
MOUSE_REGION gHelpScreenScrollAreaArrows; MOUSE_REGION gHelpScreenScrollAreaArrows;
void SelectHelpScrollAreaArrowsCallBack( MOUSE_REGION * pRegion, INT32 iReason );
//checkbox to toggle show help again toggle //checkbox to toggle show help again toggle
+143 -45
View File
@@ -1,47 +1,55 @@
#include "builddefines.h" #include "builddefines.h"
#include <stdio.h> #include <stdio.h>
#include "sgp.h" #include "sgp.h"
#include "Screens.h" #include "gameloop.h"
#include "vobject_blitters.h" #include "Screens.h"
#include "sysutil.h" #include "INIReader.h"
#include "worlddef.h" #include "vobject_blitters.h"
#include "Animation Data.h" #include "renderworld.h"
#include "Overhead.h" #include "mousesystem.h"
#include "Font Control.h" #include "sysutil.h"
#include <himage.h> #include "worlddef.h"
#include <vobject.h> #include "Animation Data.h"
#include "Timer Control.h" #include "Overhead.h"
#include "Utilities.h" #include "Font Control.h"
#include "Render Dirty.h" #include "Button System.h"
#include "Sound Control.h" #include "Timer Control.h"
#include "lighting.h" #include "Utilities.h"
#include "Cursor Control.h" #include "Radar Screen.h"
#include "Music Control.h" #include "Render Dirty.h"
#include "video.h" #include "Sound Control.h"
#include "maputility.h" #include "Event Pump.h"
#include "strategic.h" #include "lighting.h"
#include "Dialogue Control.h" #include "Cursor Control.h"
#include "Text.h" #include "Music Control.h"
#include "laptop.h" #include "video.h"
#include "MercTextBox.h" #include "mapscreen.h"
#include "Tile Cache.h" #include "Interface Items.h"
#include "strategicmap.h" #include "maputility.h"
#include "Map Information.h" #include "strategic.h"
#include "Shade Table Util.h" #include "Dialogue Control.h"
#include "Exit Grids.h" #include "Text.h"
#include "Summary Info.h" #include "laptop.h"
#include "GameSettings.h" #include "NPC.h"
#include "Game Init.h" #include "MercTextBox.h"
#include "Init.h" #include "Tile Cache.h"
#include "jascreens.h" #include "strategicmap.h"
#include "XML.h" #include "Map Information.h"
#include "SaveLoadGame.h" #include "Shade Table Util.h"
#include "Weapons.h" #include "Exit Grids.h"
#include "Strategic Movement.h" #include "Summary Info.h"
#include "Vehicles.h" #include "GameSettings.h"
#include "Multilingual Text Code Generator.h" #include "Game Init.h"
#include "editscreen.h" #include "Init.h"
#include "Arms Dealer Init.h" #include "jascreens.h"
#include "XML.h"
#include "SaveLoadGame.h"
#include "Weapons.h"
#include "Strategic Movement.h"
#include "Vehicles.h"
#include "Multilingual Text Code Generator.h"
#include "editscreen.h"
#include "Arms Dealer Init.h"
#include "Map Screen Interface Bottom.h" #include "Map Screen Interface Bottom.h"
#include "MPXmlTeams.hpp" #include "MPXmlTeams.hpp"
#include "Strategic Mines LUA.h" #include "Strategic Mines LUA.h"
@@ -49,6 +57,8 @@
#include "lua_state.h" #include "lua_state.h"
#include "Interface.h" #include "Interface.h"
#include "Strategic Town Loyalty.h"
#include "Soldier Profile.h"
#include "aim.h" #include "aim.h"
#include "mainmenuscreen.h" #include "mainmenuscreen.h"
#include "email.h" #include "email.h"
@@ -60,6 +70,7 @@
#include "ub_config.h" #include "ub_config.h"
#include "Civ Quotes.h"
#include "LuaInitNPCs.h" #include "LuaInitNPCs.h"
#include "BriefingRoom_Data.h" #include "BriefingRoom_Data.h"
#include "AimArchives.h" #include "AimArchives.h"
@@ -85,6 +96,20 @@ extern BOOLEAN GetCDromDriveLetter( STR8 pString );
extern BOOLEAN gfUseConsecutiveQuickSaveSlots; extern BOOLEAN gfUseConsecutiveQuickSaveSlots;
#endif #endif
#if defined( GERMAN ) && !defined( _DEBUG )
//#define LASERLOCK_ENABLED
#endif
#ifdef LASERLOCK_ENABLED
int LASERLOK_Init( HINSTANCE hInstance );
int LASERLOK_Run();
int LASERLOK_Check();
BOOLEAN PrepareLaserLockSystem();
void HandleLaserLockResult( BOOLEAN fSuccess );
// int TestCall( int n);
#endif
extern HINSTANCE ghInstance; extern HINSTANCE ghInstance;
@@ -115,7 +140,7 @@ static void AddLanguagePrefix(STR fileName)
AddLanguagePrefix( fileName, GetLanguagePrefix()); AddLanguagePrefix( fileName, GetLanguagePrefix());
} }
static void ResetEmptyRPCFaceSlots() void ResetEmptyRPCFaceSlots()
{ {
//legion by jazz (load small faces from rpcs) //legion by jazz (load small faces from rpcs)
// reset empty slots with "-1" // reset empty slots with "-1"
@@ -1387,6 +1412,11 @@ if( g_lang != i18n::Lang::en ) {
UINT32 InitializeJA2(void) UINT32 InitializeJA2(void)
{ {
#ifdef LASERLOCK_ENABLED
HandleLaserLockResult( PrepareLaserLockSystem() );
#endif
HandleJA2CDCheck( ); HandleJA2CDCheck( );
gfWorldLoaded = FALSE; gfWorldLoaded = FALSE;
@@ -1650,6 +1680,74 @@ void ShutdownJA2(void)
} }
#ifdef LASERLOCK_ENABLED
BOOLEAN PrepareLaserLockSystem()
{
INT32 iInitRetVal=0;
INT32 iRunRetVal=0;
INT32 iCheckRetVal=0;
CHAR8 zDirectory[512];
CHAR8 zCdLocation[ SGPFILENAME_LEN ];
CHAR8 zCdFile[ SGPFILENAME_LEN ];
//Get the "current" file directory
GetFileManCurrentDirectory( zDirectory );
if( GetCDromDriveLetter( zCdLocation ) )
{
// OK, build filename
sprintf( zCdFile, "%s%s", zCdLocation, "Data" );
}
else
{
goto FAILED_LASERLOK;
}
//Go back to the root directory
SetFileManCurrentDirectory( zCdFile );
//Init the laser lock system
iInitRetVal = LASERLOK_Init( ghInstance );
if( iInitRetVal != 0 )
goto FAILED_LASERLOK;
//makes the verification of the laserlok system
iRunRetVal = LASERLOK_Run();
if( iRunRetVal != 0 )
goto FAILED_LASERLOK;
//checks the result of the laserlok run function
iCheckRetVal = LASERLOK_Check();
if( iCheckRetVal != 0 )
goto FAILED_LASERLOK;
//Restore back to the proper directory
SetFileManCurrentDirectory( zDirectory );
return( TRUE );
FAILED_LASERLOK:
//Restore back to the proper directory
SetFileManCurrentDirectory( zDirectory );
return( FALSE );
}
void HandleLaserLockResult( BOOLEAN fSuccess )
{
if( !fSuccess )
{
CHAR8 zString[512];
sprintf( zString, "%S", gzLateLocalizedString[56] );
// ShowCursor(TRUE);
// ShowCursor(TRUE);
ShutdownWithErrorBox( zString );
}
}
#endif
void SetupMaxActionPointsAnimation() void SetupMaxActionPointsAnimation()
{ {
gubMaxActionPoints[REGMALE] = APBPConstants[AP_MAXIMUM]; gubMaxActionPoints[REGMALE] = APBPConstants[AP_MAXIMUM];
+1
View File
@@ -7,6 +7,7 @@
#include "LogicalBodyTypes/SurfaceDB.h" #include "LogicalBodyTypes/SurfaceDB.h"
#include "LogicalBodyTypes/FilterDB.h" #include "LogicalBodyTypes/FilterDB.h"
#include "LogicalBodyTypes/EnumeratorDB.h" #include "LogicalBodyTypes/EnumeratorDB.h"
#include "LogicalBodyTypes/BodyTypeDB.h"
#include "LogicalBodyTypes/PaletteDB.h" #include "LogicalBodyTypes/PaletteDB.h"
#include <iostream> #include <iostream>
+36 -13
View File
@@ -1,18 +1,41 @@
#include "sgp.h" #include "sgp.h"
#include "sysutil.h" #include "sysutil.h"
#include "Cursor Control.h" #include "vobject_blitters.h"
#include "Render Dirty.h" #include "Font Control.h"
#include "Utilities.h" #include "Cursor Control.h"
#include "Intro.h" #include "Render Dirty.h"
#include "Cinematics.h" #include "Text.h"
#include "Cinematics Bink.h" #include "Utilities.h"
#include "mainmenuscreen.h" #include "WordWrap.h"
#include "Music Control.h" #include "Text.h"
#include "english.h" #include "line.h"
#include "sgp_logger.h" #include "Intro.h"
#include "INIReader.h" #include "Cinematics.h"
#include "Cinematics Bink.h"
#include "mainmenuscreen.h"
#include "Music Control.h"
#include "LibraryDataBase.h"
#include "english.h"
#include "soldier profile type.h"
#include "MessageBoxScreen.h"
#include "sgp_logger.h"
#include "Soldier Profile.h"
#include "Game Init.h"
#include "INIReader.h"
#include <vfs/Core/vfs.h>
#include "Luaglobal.h" #include "Luaglobal.h"
#ifdef JA2UB
#include "strategicmap.h"
#include "Map Screen Interface Map.h"
#include "Map Screen Interface.h"
#include "End Game.h"
#include "Cinematics Bink.h"
#endif
#include "LuaInitNPCs.h" #include "LuaInitNPCs.h"
#include "XML.h"
#include <language.hpp> #include <language.hpp>
BOOLEAN Style_JA = TRUE; BOOLEAN Style_JA = TRUE;
+62 -1
View File
@@ -1,11 +1,72 @@
#include <types.h> #include "builddefines.h"
#include <wchar.h>
#include <stdio.h>
#include <string.h>
#include "Render Fun.h"
#include "stdlib.h"
#include "DEBUG.H"
#include "MemMan.h"
#include "Overhead Types.h"
//#include "Soldier Control.h"
#include "Animation Cache.h"
#include "Animation Data.h"
#include "Animation Control.h"
#include <math.h>
#include "PATHAI.H"
#include "random.h"
#include "Isometric Utils.h"
#include "renderworld.h"
#include "video.h"
#include "Weapons.h"
#include "vobject_blitters.h"
#include "Handle UI.h"
#include "Event Pump.h"
#include "ai.h"
#include "Interface.h"
#include "lighting.h"
#include "faces.h"
#include "Soldier Profile.h"
#include "Soldier macros.h"
#include "english.h"
#include "Squads.h"
#ifdef NETWORKED #ifdef NETWORKED
#include "Networking.h" #include "Networking.h"
#include "NetworkEvent.h" #include "NetworkEvent.h"
#endif #endif
#include "Items.h"
#include "soundman.h"
#include "Utilities.h"
#include "strategic.h"
#include "soldier tile.h"
#include "Smell.h"
#include "Keys.h"
#include "Dialogue Control.h"
#include "Soldier Functions.h"
#include "Exit Grids.h"
#include "Quests.h"
#include "message.h"
#include "SkillCheck.h"
#include "interface Dialogue.h"
#include "GameSettings.h"
#include "ShopKeeper Interface.h"
#include "Vehicles.h"
#include "strategicmap.h"
#include "Morale.h"
#include "Drugs And Alcohol.h"
#include "SkillCheck.h"
#include "Map Information.h"
#include "Buildings.h"
#include "Text.h"
#include "Campaign Types.h"
#include "Strategic Status.h"
#include "Civ Quotes.h"
#include "Debug Control.h"
#ifdef JA2UB #ifdef JA2UB
#include "Ja25_Tactical.h"
#include "Ja25 Strategic Ai.h"
INT16 JA2_5_START_SECTOR_X; INT16 JA2_5_START_SECTOR_X;
INT16 JA2_5_START_SECTOR_Y; INT16 JA2_5_START_SECTOR_Y;
+5
View File
@@ -5,6 +5,11 @@
#ifdef JA2UB #ifdef JA2UB
//Used in the editor to compensate for the 2_<map name>
#define JA25_EXP_MAP_NAME_PREFIX L""
#define JA25_EXP_MAP_NAME_SIZE_OFFSET 0
//The starting sector of the Expanion pack //The starting sector of the Expanion pack
extern INT16 JA2_5_START_SECTOR_X; extern INT16 JA2_5_START_SECTOR_X;
extern INT16 JA2_5_START_SECTOR_Y; extern INT16 JA2_5_START_SECTOR_Y;
+3 -2
View File
@@ -19,6 +19,7 @@ extern HVSURFACE ghFrameBuffer;
extern BOOLEAN gfSchedulesHosed; extern BOOLEAN gfSchedulesHosed;
#ifdef JA2UB #ifdef JA2UB
#include "Ja25_Tactical.h"
#include "Ja25 Strategic Ai.h" #include "Ja25 Strategic Ai.h"
#endif #endif
UINT8 gubLastLoadingScreenID = LOADINGSCREEN_NOTHING; UINT8 gubLastLoadingScreenID = LOADINGSCREEN_NOTHING;
@@ -343,7 +344,7 @@ static void BuildLoadscreenFilename(std::string& dst, const char* path, int reso
dst.append(".sti"); dst.append(".sti");
} }
static std::string GetResolutionSuffix(SCREEN_RESOLUTION resolution) std::string GetResolutionSuffix(SCREEN_RESOLUTION resolution)
{ {
switch (resolution) switch (resolution)
{ {
@@ -375,7 +376,7 @@ static std::string GetResolutionSuffix(SCREEN_RESOLUTION resolution)
} }
} }
static std::string FindBestFittingLoadscreenFilename(const std::string& baseName, SCREEN_RESOLUTION resolution) std::string FindBestFittingLoadscreenFilename(const std::string& baseName, SCREEN_RESOLUTION resolution)
{ {
for (SCREEN_RESOLUTION res = resolution; res <= _2560x1600; res = (SCREEN_RESOLUTION)(res + 1)) for (SCREEN_RESOLUTION res = resolution; res <= _2560x1600; res = (SCREEN_RESOLUTION)(res + 1))
{ {
+21 -20
View File
@@ -1,23 +1,24 @@
#include "sgp.h" #include "sgp.h"
#include "screenids.h" #include "screenids.h"
#include "Timer Control.h" #include "Timer Control.h"
#include "Fade Screen.h" #include "Fade Screen.h"
#include "sysutil.h" #include "sysutil.h"
#include "vobject_blitters.h" #include "vobject_blitters.h"
#include "MercTextBox.h" #include "MercTextBox.h"
#include "Cursors.h" #include "Cursors.h"
#include "Font Control.h" #include "Font Control.h"
#include "Map Screen Interface.h" #include "Map Screen Interface.h"
#include "renderworld.h" #include "renderworld.h"
#include "gameloop.h" #include "gameloop.h"
#include "english.h" #include "english.h"
#include "GameSettings.h" #include "GameSettings.h"
#include "Cursor Control.h" #include "Cursor Control.h"
#include "Text.h" #include "laptop.h"
#include "Text Input.h" #include "Text.h"
#include "overhead map.h" #include "Text Input.h"
#include "MPChatScreen.h" #include "overhead map.h"
#include "WordWrap.h" #include "MPChatScreen.h"
#include "WordWrap.h"
#include "message.h" #include "message.h"
#include "Utilities.h" #include "Utilities.h"
#include "connect.h" #include "connect.h"
+33 -22
View File
@@ -1,28 +1,38 @@
#include "sgp.h" #include "sgp.h"
#include "screenids.h" #include "screenids.h"
#include "Timer Control.h" #include "Timer Control.h"
#include "sysutil.h" #include "sysutil.h"
#include "Cursors.h" #include "vobject_blitters.h"
#include "Font Control.h" #include "MercTextBox.h"
#include "mainmenuscreen.h" #include "Cursors.h"
#include "Cursor Control.h" #include "Font Control.h"
#include "Render Dirty.h" #include "mainmenuscreen.h"
#include "Music Control.h" #include "Cursor Control.h"
#include "Render Dirty.h"
#include "Music Control.h"
#include "GameSettings.h"
#include "SaveLoadScreen.h"
#include "SaveLoadGame.h"
#include "Options Screen.h"
#include "english.h"
#include "gameloop.h"
#include "Game Init.h"
#include "Utilities.h"
#include "WordWrap.h"
#include "Font Control.h"
#include "Text.h"
#include "Multi Language Graphic Utils.h"
#include "Encrypted File.h"
#include "JA2 Splash.h"
#include "GameVersion.h"
#include "GameSettings.h" #include "GameSettings.h"
#include "SaveLoadScreen.h"
#include "SaveLoadGame.h"
#include "Options Screen.h"
#include "english.h"
#include "gameloop.h"
#include "Game Init.h"
#include "WordWrap.h"
#include "Text.h"
#include "Multi Language Graphic Utils.h"
#include "JA2 Splash.h"
#include "GameVersion.h"
#include "connect.h" #include "connect.h"
#include "strategic.h" #include "strategic.h"
#include "Strategic Movement.h" #include "Strategic Movement.h"
#include "Overhead.h"
#include "Init.h"
#include "XML.h"
#include <vfs/Core/vfs.h> #include <vfs/Core/vfs.h>
#include <vfs/Core/vfs_profile.h> #include <vfs/Core/vfs_profile.h>
@@ -73,6 +83,7 @@ void MenuButtonCallback(GUI_BUTTON *btn, INT32 reason);
void HandleMainMenuKeyboardInput(); void HandleMainMenuKeyboardInput();
void HandleMainMenuInput(); void HandleMainMenuInput();
void HandleMainMenuScreen(); void HandleMainMenuScreen();
void DisplayAssignmentText();
void ClearMainMenu(); void ClearMainMenu();
void SelectMainMenuBackGroundRegionCallBack(MOUSE_REGION * pRegion, INT32 iReason ); void SelectMainMenuBackGroundRegionCallBack(MOUSE_REGION * pRegion, INT32 iReason );
void SetMainMenuExitScreen( UINT32 uiNewScreen ); void SetMainMenuExitScreen( UINT32 uiNewScreen );
@@ -417,7 +428,7 @@ void MenuButtonCallback(GUI_BUTTON *btn,INT32 reason)
} }
} }
static void MenuButtonMoveCallback(GUI_BUTTON *btn,INT32 reason) void MenuButtonMoveCallback(GUI_BUTTON *btn,INT32 reason)
{ {
if(reason & MSYS_CALLBACK_REASON_LOST_MOUSE) if(reason & MSYS_CALLBACK_REASON_LOST_MOUSE)
{ {
+2
View File
@@ -14,10 +14,12 @@
#include "GameSettings.h" #include "GameSettings.h"
#include "Interface Control.h" #include "Interface Control.h"
#include "Cursor Control.h" #include "Cursor Control.h"
#include "laptop.h"
#include "Text.h" #include "Text.h"
#include "Text Input.h" #include "Text Input.h"
#include "overhead map.h" #include "overhead map.h"
#include "DropDown.h" // added by Flugente #include "DropDown.h" // added by Flugente
#include "Utilities.h" // added by Flugente for FilenameForBPP(...)
#include "FeaturesScreen.h" #include "FeaturesScreen.h"
#define MSGBOX_DEFAULT_WIDTH 300 #define MSGBOX_DEFAULT_WIDTH 300
+207 -112
View File
@@ -1,126 +1,162 @@
#include "types.h" #include "types.h"
#include "Soldier Profile.h" #include "Soldier Profile.h"
#include "FileMan.h" #include "FileMan.h"
#include <string.h> #include <string.h>
#include <stdio.h> #include <stdio.h>
#include "DEBUG.H" #include "DEBUG.H"
#include "Overhead.h" #include "Overhead.h"
#include "Keys.h" #include "Keys.h"
#include "finances.h" #include "finances.h"
#include "history.h" #include "history.h"
#include "files.h" #include "files.h"
#include "Font.h" #include "laptop.h"
#include "Font Control.h" #include "INIReader.h"
#include "email.h" #include "email.h"
#include "strategicmap.h" #include "strategicmap.h"
#include "Game Events.h" #include "Game Events.h"
#include "Game Clock.h" #include "Game Clock.h"
#include "Soldier Create.h" #include "Soldier Create.h"
#include "worlddef.h" #include "worlddef.h"
#include "LaptopSave.h" #include "LaptopSave.h"
#include "Queen Command.h" #include "strategicmap.h"
#include "SaveLoadGame.h" #include "Queen Command.h"
#include "Tactical Save.h" #include "SaveLoadGame.h"
#include "Squads.h" #include "Tactical Save.h"
#include "environment.h" #include "Squads.h"
#include "lighting.h" #include "environment.h"
#include "Strategic Movement.h" #include "lighting.h"
#include "strategic.h" #include "Strategic Movement.h"
#include "Isometric Utils.h" #include "strategic.h"
#include "Quests.h" #include "Isometric Utils.h"
#include "opplist.h" #include "Quests.h"
#include "message.h" #include "opplist.h"
#include "NPC.h" #include "message.h"
#include "Merc Hiring.h" #include "NPC.h"
#include "SaveLoadScreen.h" #include "Merc Hiring.h"
#include "GameVersion.h" #include "SaveLoadScreen.h"
#include "GameSettings.h" #include "GameVersion.h"
#include "Music Control.h" #include "GameSettings.h"
#include "Options Screen.h" #include "Music Control.h"
#include "ai.h" #include "Options Screen.h"
#include "renderworld.h" #include "ai.h"
#include "SmokeEffects.h" #include "renderworld.h"
#include "random.h" #include "SmokeEffects.h"
#include "Map Screen Interface.h" #include "random.h"
#include "Map Screen Interface Border.h" #include "Map Screen Interface.h"
#include "Map Screen Interface Bottom.h" #include "Map Screen Interface Border.h"
#include "Interface.h" #include "Map Screen Interface Bottom.h"
#include "Map Screen Helicopter.h"
#include "Arms Dealer Init.h" #include "Interface.h"
#include "Tactical Placement GUI.h" #include "Map Screen Helicopter.h"
#include "Strategic Mines.h" #include "environment.h"
#include "Strategic Town Loyalty.h" #include "Arms Dealer Init.h"
#include "Vehicles.h" #include "Tactical Placement GUI.h"
#include "Merc Contract.h"
#include "Bullets.h" #include "Strategic Mines.h"
#include "Air Raid.h" #include "Strategic Town Loyalty.h"
#include "physics.h" #include "Vehicles.h"
#include "Strategic Pathing.h" #include "Merc Contract.h"
#include "TeamTurns.h" #include "Bullets.h"
#include "Explosion Control.h" #include "Air Raid.h"
#include "Creature Spreading.h" #include "physics.h"
#include "Strategic Status.h" #include "Strategic Pathing.h"
#include "PreBattle Interface.h"
#include "Boxing.h" #include "TeamTurns.h"
#include "Strategic AI.h"
#include "Map Screen Interface Map.h" #include "Explosion Control.h"
#include "Meanwhile.h" #include "Creature Spreading.h"
#include "Dialogue Control.h" #include "Strategic Status.h"
#include "Text.h" #include "PreBattle Interface.h"
#include "LightEffects.h" #include "Boxing.h"
#include "HelpScreen.h" #include "Strategic AI.h"
#include "Animated ProgressBar.h" #include "Map Screen Interface Map.h"
#include "MercTextBox.h"
#include "Render Dirty.h" #include "Meanwhile.h"
#include "Map Information.h" #include "Dialogue Control.h"
#include "Interface Items.h" #include "Text.h"
#include "Civ Quotes.h" #include "Map Screen Interface.h"
#include "Scheduling.h" #include "LightEffects.h"
#include "Animation Data.h" #include "HelpScreen.h"
#include "Game Init.h" #include "Animated ProgressBar.h"
#include "Cheats.h" #include "MercTextBox.h"
#include "Strategic Event Handler.h" #include "Render Dirty.h"
#include "Interface Panels.h" #include "Map Information.h"
#include "interface Dialogue.h" #include "Interface Items.h"
#include "Assignments.h" #include "Civ Quotes.h"
#include "ShopKeeper Interface.h" #include "Scheduling.h"
#include "PostalService.h" #include "Animation Data.h"
#include "MilitiaSquads.h" #include "Game Init.h"
#include "Facilities.h" #include "Cheats.h"
#include "Town Militia.h" #include "Strategic Event Handler.h"
#include "Items.h" #include "Interface Panels.h"
#include "Encyclopedia_new.h" #include "interface Dialogue.h"
#include "CampaignStats.h" // added by Flugente #include "Assignments.h"
#include "DynamicDialogue.h" // added by Flugente #include "Interface Items.h"
#include "PMC.h" // added by Flugente #include "ShopKeeper Interface.h"
#include "ASD.h" // added by Flugente #include "PostalService.h"
#include "MilitiaIndividual.h" // added by Flugente // HEADROCK HAM B1: Additional Include for HAM
#include "Rebel Command.h" #include "MilitiaSquads.h"
#include "BobbyR.h" // HEADROCK HAM 3.5: Another include for HAM
#include "IMP Portraits.h" #include "Facilities.h"
#include "Loading Screen.h" // HEADROCK HAM 3.6: Yet another include, goddammit
#include "Interface Utils.h" #include "Town Militia.h"
#include "Items.h"
#include "Encyclopedia_new.h"
#include "CampaignStats.h" // added by Flugente
#include "DynamicDialogue.h" // added by Flugente
#include "PMC.h" // added by Flugente
#include "ASD.h" // added by Flugente
#include "MilitiaIndividual.h" // added by Flugente
#include "Rebel Command.h"
#include "BobbyR.h"
#include "IMP Portraits.h"
#include "Loading Screen.h"
#include "Interface Utils.h"
#include "Squads.h"
#include "IMP Confirm.h"
#include "Enemy Soldier Save.h" #include "Enemy Soldier Save.h"
#include "BobbyRMailOrder.h" #include "BobbyRMailOrder.h"
#include "mercs.h" #include "mercs.h"
#include "INIReader.h"
#include "mercs.h"
#include "Soldier Profile.h"
#ifdef JA2UB
#include "Ja25 Strategic Ai.h"
#include "Ja25_Tactical.h"
#endif
#include "LuaInitNPCs.h" #include "LuaInitNPCs.h"
#include "Vehicles.h"
#include "BriefingRoom_Data.h" #include "BriefingRoom_Data.h"
#include <vfs/Core/vfs.h>
//rain
//end rain
#include "connect.h" #include "connect.h"
#include "Map Screen Interface Map Inventory.h"//dnl ch51 081009 #include "Map Screen Interface Map Inventory.h"//dnl ch51 081009
#include "Sys Globals.h"//dnl ch74 201013
#include "Ambient Control.h" // added by Flugente for HandleNewSectorAmbience(...) #include "Ambient Control.h" // added by Flugente for HandleNewSectorAmbience(...)
///////////////////////////////////////////////////// /////////////////////////////////////////////////////
// //
// Local Defines // Local Defines
// //
///////////////////////////////////////////////////// /////////////////////////////////////////////////////
#include <language.hpp>
#ifdef JA2UB #ifdef JA2UB
#include "Ja25 Strategic Ai.h" #include "Strategic Movement.h"
#include "Ja25_Tactical.h" #include "LuaInitNPCs.h"
#include "ub_config.h" #include "ub_config.h"
#include "Ja25Update.h" #include "Ja25Update.h"
#endif
#include "LuaInitNPCs.h"
#include <language.hpp>
#ifdef JA2UB
//void ConvertWeapons( SOLDIERTYPE *pSoldier );
extern void MakeBadSectorListFromMapsOnHardDrive( BOOLEAN fDisplayMessages ); // ja25 UB extern void MakeBadSectorListFromMapsOnHardDrive( BOOLEAN fDisplayMessages ); // ja25 UB
#endif #endif
@@ -169,6 +205,8 @@ extern BOOLEAN gfCreatureMeanwhileScenePlayed;
BOOLEAN gMusicModeToPlay = FALSE; BOOLEAN gMusicModeToPlay = FALSE;
//extern BOOLEAN gfFirstTimeInGameHeliCrash;
#ifdef JA2BETAVERSION #ifdef JA2BETAVERSION
BOOLEAN gfDisplaySaveGamesNowInvalidatedMsg = FALSE; BOOLEAN gfDisplaySaveGamesNowInvalidatedMsg = FALSE;
#endif #endif
@@ -176,13 +214,14 @@ BOOLEAN gfDisplaySaveGamesNowInvalidatedMsg = FALSE;
BOOLEAN gfUseConsecutiveQuickSaveSlots = FALSE; BOOLEAN gfUseConsecutiveQuickSaveSlots = FALSE;
UINT32 guiCurrentQuickSaveNumber = 0; UINT32 guiCurrentQuickSaveNumber = 0;
UINT32 guiLastSaveGameNum = 1; UINT32 guiLastSaveGameNum = 1;
BOOLEAN DoesAutoSaveFileExist( BOOLEAN fLatestAutoSave );
UINT32 guiJA2EncryptionSet = 0; UINT32 guiJA2EncryptionSet = 0;
UINT32 CalcJA2EncryptionSet( SAVED_GAME_HEADER * pSaveGameHeader ); UINT32 CalcJA2EncryptionSet( SAVED_GAME_HEADER * pSaveGameHeader );
typedef struct typedef struct
{ {
//The screen that the game was saved from //The screen that the gaem was saved from
UINT32 uiCurrentScreen; UINT32 uiCurrentScreen;
UINT32 uiCurrentUniqueSoldierId; UINT32 uiCurrentUniqueSoldierId;
@@ -493,6 +532,10 @@ BOOLEAN LoadSavedMercProfiles( HWFILE hwFile );
BOOLEAN SaveSoldierStructure( HWFILE hFile ); BOOLEAN SaveSoldierStructure( HWFILE hFile );
BOOLEAN LoadSoldierStructure( HWFILE hFile ); BOOLEAN LoadSoldierStructure( HWFILE hFile );
// CHRISL: New functions to save and load LBENODE data
BOOLEAN SaveLBENODEToSaveGameFile( HWFILE hFile );
BOOLEAN LoadLBENODEFromSaveGameFile( HWFILE hFile );
//BOOLEAN SavePtrInfo( PTR *pData, UINT32 uiSizeOfObject, HWFILE hFile ); //BOOLEAN SavePtrInfo( PTR *pData, UINT32 uiSizeOfObject, HWFILE hFile );
//BOOLEAN LoadPtrInfo( PTR *pData, UINT32 uiSizeOfObject, HWFILE hFile ); //BOOLEAN LoadPtrInfo( PTR *pData, UINT32 uiSizeOfObject, HWFILE hFile );
@@ -580,7 +623,28 @@ void ValidateStrategicGroups();
//if all that sounds compilcated, it is //if all that sounds compilcated, it is
extern int gLastLBEUniqueID; extern int gLastLBEUniqueID;
/*
// CHRISL: New function to save/load LBENODE data
BOOLEAN SaveLBENODEToSaveGameFile( HWFILE hFile )
{
UINT32 uiNumBytesWritten;
if ( !FileWrite( hFile, &gLastLBEUniqueID, sizeof(int), &uiNumBytesWritten ) )
{
return(FALSE);
}
return TRUE;
}
BOOLEAN LoadLBENODEFromSaveGameFile( HWFILE hFile )
{
UINT32 uiNumBytesRead;
if ( !FileRead( hFile, &gLastLBEUniqueID, sizeof(int), &uiNumBytesRead ) )
{
return(FALSE);
}
return TRUE;
}
*/
BOOLEAN LBENODE::Load( HWFILE hFile ) BOOLEAN LBENODE::Load( HWFILE hFile )
{ {
UINT32 uiNumBytesRead; UINT32 uiNumBytesRead;
@@ -596,7 +660,7 @@ BOOLEAN LBENODE::Load( HWFILE hFile )
//when combined with copy assignment which makes a new LBENODE //when combined with copy assignment which makes a new LBENODE
gLastLBEUniqueID = uniqueID + 1; gLastLBEUniqueID = uniqueID + 1;
} }
int size = 0; int size;
if ( !FileRead( hFile, &size, sizeof(int), &uiNumBytesRead ) ) if ( !FileRead( hFile, &size, sizeof(int), &uiNumBytesRead ) )
{ {
return(FALSE); return(FALSE);
@@ -661,7 +725,7 @@ BOOLEAN LBENODE::Save( HWFILE hFile, bool fSavingMap )
return TRUE; return TRUE;
} }
static BOOLEAN LoadArmsDealerInventoryFromSavedGameFile( HWFILE hFile ) BOOLEAN LoadArmsDealerInventoryFromSavedGameFile( HWFILE hFile )
{ {
UINT32 uiNumBytesRead; UINT32 uiNumBytesRead;
UINT8 ubArmsDealer; UINT8 ubArmsDealer;
@@ -672,7 +736,7 @@ static BOOLEAN LoadArmsDealerInventoryFromSavedGameFile( HWFILE hFile )
if (guiCurrentSaveGameVersion >= NIV_SAVEGAME_DATATYPE_CHANGE) if (guiCurrentSaveGameVersion >= NIV_SAVEGAME_DATATYPE_CHANGE)
{ {
int dealers = 0; int dealers;
if (!FileRead( hFile, &dealers, sizeof( int ), &uiNumBytesRead )) if (!FileRead( hFile, &dealers, sizeof( int ), &uiNumBytesRead ))
{ {
return( FALSE ); return( FALSE );
@@ -700,7 +764,7 @@ static BOOLEAN LoadArmsDealerInventoryFromSavedGameFile( HWFILE hFile )
//loop through all the dealers inventories //loop through all the dealers inventories
for( ubArmsDealer=0; ubArmsDealer<dealers; ++ubArmsDealer ) for( ubArmsDealer=0; ubArmsDealer<dealers; ++ubArmsDealer )
{ {
int size = 0; int size;
if (!FileRead( hFile, &size, sizeof( int ), &uiNumBytesRead )) if (!FileRead( hFile, &size, sizeof( int ), &uiNumBytesRead ))
{ {
return( FALSE ); return( FALSE );
@@ -1441,7 +1505,7 @@ BOOLEAN MERCPROFILESTRUCT::Load(HWFILE hFile, bool forceLoadOldVersion, bool for
numBytesRead = ReadFieldByField(hFile, &filler, sizeof(filler), sizeof(UINT8), numBytesRead); numBytesRead = ReadFieldByField(hFile, &filler, sizeof(filler), sizeof(UINT8), numBytesRead);
//DBrot: More rooms //DBrot: More rooms
int size = 0; int size;
if ( numBytesRead + buffer != SIZEOF_MERCPROFILESTRUCT_POD ) if ( numBytesRead + buffer != SIZEOF_MERCPROFILESTRUCT_POD )
{ {
return(FALSE); return(FALSE);
@@ -7018,6 +7082,10 @@ if( g_lang == i18n::Lang::de ) {
} }
} }
} }
//#ifdef JA2UB
//if the soldier has the NON weapon version of the merc knofe or merc umbrella
//ConvertWeapons( &Menptr[ cnt ] );
//#endif
// JA2Gold: fix next-to-previous attacker value // JA2Gold: fix next-to-previous attacker value
Menptr[cnt].ubNextToPreviousAttackerID = NOBODY; Menptr[cnt].ubNextToPreviousAttackerID = NOBODY;
@@ -8664,7 +8732,7 @@ BOOLEAN SaveGeneralInfo( HWFILE hFile )
extern UINT32 guiRainLoop; extern UINT32 guiRainLoop;
//end rain //end rain
static void EnsureValidLoadScreen( UINT32* puiScreen ) void EnsureValidLoadScreen( UINT32* puiScreen )
{ {
if (!puiScreen) if (!puiScreen)
return; return;
@@ -9734,3 +9802,30 @@ UINT32 CalcJA2EncryptionSet( SAVED_GAME_HEADER * pSaveGameHeader )
return( uiEncryptionSet ); return( uiEncryptionSet );
} }
//inshy: Now we dont need this convertation, all items chenged in the maps
/*
#ifdef JA2UB
void ConvertWeapons( SOLDIERTYPE *pSoldier )
{
INT32 iCnt;
for( iCnt=0; iCnt< NUM_INV_SLOTS; iCnt++)
{
if(UsingNewInventorySystem() == false && gGameOptions.ubAttachmentSystem == ATTACHMENT_OLD )
{
if( pSoldier->inv[ iCnt ].usItem == 97 || pSoldier->inv[ iCnt ].usItem == 1346 || pSoldier->inv[ iCnt ].usItem == 99
|| pSoldier->inv[ iCnt ].usItem == 1347 || pSoldier->inv[ iCnt ].usItem == 584 || pSoldier->inv[ iCnt ].usItem == 551 )
pSoldier->inv[ iCnt ].usItem = 129;
if( pSoldier->inv[ iCnt ].usItem == 117 || pSoldier->inv[ iCnt ].usItem == 349 || pSoldier->inv[ iCnt ].usItem == 1263 )
pSoldier->inv[ iCnt ].usItem = 71;
}
}
}
#endif
*/
+7
View File
@@ -9,6 +9,7 @@
#include "stdio.h" #include "stdio.h"
#include "WordWrap.h" #include "WordWrap.h"
#include "strategicmap.h" #include "strategicmap.h"
#include "finances.h"
#include "WCheck.h" #include "WCheck.h"
#include "Utilities.h" #include "Utilities.h"
#include "Cursors.h" #include "Cursors.h"
@@ -18,6 +19,7 @@
#include "Options Screen.h" #include "Options Screen.h"
#include "GameVersion.h" #include "GameVersion.h"
#include "sysutil.h" #include "sysutil.h"
#include "Tactical Save.h"
#include "Overhead.h" #include "Overhead.h"
#include "gamescreen.h" #include "gamescreen.h"
#include "GameSettings.h" #include "GameSettings.h"
@@ -29,6 +31,7 @@
#include "message.h" #include "message.h"
#include "Map Screen Interface.h" #include "Map Screen Interface.h"
#include "Multi Language Graphic Utils.h" #include "Multi Language Graphic Utils.h"
#include "Campaign Types.h"
#include "PostalService.h" #include "PostalService.h"
#include "connect.h" #include "connect.h"
@@ -38,6 +41,10 @@
#include <vfs/Core/vfs_file_raii.h> #include <vfs/Core/vfs_file_raii.h>
#ifdef JA2UB #ifdef JA2UB
#include "Strategic Movement.h"
//#include "Strategic Movement Costs.h"
#include "LuaInitNPCs.h" #include "LuaInitNPCs.h"
#endif #endif
+29 -21
View File
@@ -1,22 +1,30 @@
#include "builddefines.h" #include "builddefines.h"
#include <stdio.h> #include <stdio.h>
#include <types.h> #include <time.h>
#include <video.h> #include "sgp.h"
#include <MemMan.h> #include "gameloop.h"
#include <Overhead Types.h> #include "himage.h"
#include <Soldier Control.h> #include "vobject.h"
#include "renderworld.h" #include "vobject_blitters.h"
#include "input.h" #include "worlddef.h"
#include "Font.h" #include "renderworld.h"
#include "screenids.h" #include "input.h"
#include "Overhead.h" #include "Font.h"
#include "Font Control.h" #include "screenids.h"
#include "Animation Control.h" #include "Overhead.h"
#include "Animation Data.h" #include "sysutil.h"
#include "Render Dirty.h" #include "Font Control.h"
#include "Sys Globals.h" #include "Animation Control.h"
#include "english.h" #include "Animation Data.h"
#include "MessageBoxScreen.h" #include "Event Pump.h"
#include "Render Dirty.h"
#include "Sys Globals.h"
#include "Interface.h"
#include <wchar.h>
#include <tchar.h>
#include "english.h"
#include "FileMan.h"
#include "MessageBoxScreen.h"
//forward declarations of common classes to eliminate includes //forward declarations of common classes to eliminate includes
class OBJECTTYPE; class OBJECTTYPE;
@@ -36,7 +44,7 @@ static UINT8 ubNumStates = 0;
static UINT16 *pusStates = NULL; static UINT16 *pusStates = NULL;
static INT8 ubCurLoadedState = 0; static INT8 ubCurLoadedState = 0;
static void CycleAnimations( ) void CycleAnimations( )
{ {
INT32 cnt; INT32 cnt;
@@ -310,7 +318,7 @@ UINT32 AniEditScreenHandle(void)
} }
static UINT16 GetAnimStateFromName( STR8 zName ) UINT16 GetAnimStateFromName( STR8 zName )
{ {
INT32 cnt; INT32 cnt;
+6 -1
View File
@@ -1,3 +1,4 @@
#include <stdio.h>
#include <time.h> #include <time.h>
#include "sgp.h" #include "sgp.h"
#include "gameloop.h" #include "gameloop.h"
@@ -16,16 +17,20 @@
#include "Tactical Save.h" #include "Tactical Save.h"
#include "Interface.h" #include "Interface.h"
#include "GameSettings.h" #include "GameSettings.h"
#include "mapscreen.h"
#include "Interface Control.h" #include "Interface Control.h"
#include "Text.h" #include "Text.h"
#include "HelpScreen.h" #include "HelpScreen.h"
#include "PreBattle Interface.h" #include "PreBattle Interface.h"
#include "Tactical Placement GUI.h"//dnl ch45 071009
#include "Map Screen Interface Map Inventory.h"//dnl ch51 081009 #include "Map Screen Interface Map Inventory.h"//dnl ch51 081009
#include "World Items.h"//dnl ch77 191113 #include "World Items.h"//dnl ch77 191113
#include "Overhead.h" // added by Flugente
#include "Ambient Control.h" // sevenfm #include "Ambient Control.h" // sevenfm
#include "SaveLoadScreen.h" #include "SaveLoadScreen.h"
#include "Lua Interpreter.h"
//**ddd direct link libraries //**ddd direct link libraries
#pragma comment (lib, "user32.lib") #pragma comment (lib, "user32.lib")
#pragma comment (lib, "gdi32.lib") #pragma comment (lib, "gdi32.lib")
@@ -75,7 +80,7 @@ void HandleNewScreenChange( UINT32 uiNewScreen, UINT32 uiOldScreen );
#ifdef JA2BETAVERSION #ifdef JA2BETAVERSION
BOOLEAN gubReportMapscreenLock = 0; BOOLEAN gubReportMapscreenLock = 0;
static void ReportMapscreenErrorLock() void ReportMapscreenErrorLock()
{ {
switch( gubReportMapscreenLock ) switch( gubReportMapscreenLock )
{ {
+81 -64
View File
@@ -1,68 +1,85 @@
#include "builddefines.h" #include "builddefines.h"
#include <stdio.h> #include <stdio.h>
#include "sgp.h" #include <time.h>
#include "gameloop.h" #include "sgp.h"
#include <Overhead Types.h> #include "gameloop.h"
#include <Soldier Control.h> #include "vobject.h"
#include "renderworld.h" #include "worlddef.h"
#include "Font.h" #include "renderworld.h"
#include "screenids.h" #include "Font.h"
#include "Screens.h" #include "screenids.h"
#include <Meanwhile.h> #include "Screens.h"
#include "HelpScreen.h" #include "Overhead.h"
#include "Overhead.h" #include "Isometric Utils.h"
#include "Event Pump.h" #include "sysutil.h"
#include "Font Control.h" #include "input.h"
#include "Timer Control.h" #include "Event Pump.h"
#include "Radar Screen.h" #include "Font Control.h"
#include "Render Dirty.h" #include "Timer Control.h"
#include "Interface.h" #include "Radar Screen.h"
#include "Handle UI.h" #include "Render Dirty.h"
#include "Cursors.h" #include "Interface.h"
#include "vobject_blitters.h" #include "Handle UI.h"
#include "Button System.h" #include <wchar.h>
#include "lighting.h" #include <tchar.h>
#include "Sys Globals.h" #include "Cursors.h"
#include "environment.h" #include "vobject_blitters.h"
#include "Bullets.h" #include "Button System.h"
#include <mousesystem.h> #include "lighting.h"
#include "message.h" #include "renderworld.h"
#include "overhead map.h" #include "Sys Globals.h"
#include "Strategic Exit GUI.h" #include "environment.h"
#include "Tactical Placement GUI.h" #include "Bullets.h"
#include "Air Raid.h" #include "Assignments.h"
#include "Game Clock.h" #include "message.h"
#include "Game Init.h" #include <string.h>
#include "overhead map.h"
#include "Strategic Exit GUI.h"
#include "Strategic Movement.h"
#include "Tactical Placement GUI.h"
#include "Air Raid.h"
#include "Game Clock.h"
#include "Game Init.h"
//DEF: Test Code
#ifdef NETWORKED
#include "Networking.h"
#endif
#include "Interface Control.h"
#include "Game Clock.h"
#include "physics.h"
#include "Fade Screen.h"
#include "Dialogue Control.h"
#include "Soldier macros.h"
#include "faces.h"
#include "strategicmap.h"
#include "gamescreen.h"
#include "Interface.h"
#include "Cursor Control.h"
#include "Strategic Turns.h"
#include "merc entering.h"
#include "Soldier Create.h"
#include "Soldier Init List.h"
#include "Interface Panels.h"
#include "Map Information.h"
#include "environment.h"
#include "Squads.h"
#include "interface Dialogue.h"
#include "Auto Bandage.h"
#include "Meanwhile.h"
#include "Strategic AI.h"
#include "HelpScreen.h"
#include "PreBattle Interface.h"
#include "Sound Control.h"
#include "MessageBoxScreen.h"
#include "Text.h"
#include "GameSettings.h"
#include "random.h"
#include "editscreen.h"
#include "Scheduling.h"
#include "Animated ProgressBar.h"
//DEF: Test Code
#ifdef NETWORKED
#include "Networking.h"
#endif
#include "Interface Control.h"
#include "physics.h"
#include "Fade Screen.h"
#include "Dialogue Control.h"
#include "Soldier macros.h"
#include "faces.h"
#include "strategicmap.h"
#include "gamescreen.h"
#include "Cursor Control.h"
#include "Strategic Turns.h"
#include "merc entering.h"
#include "Interface Panels.h"
#include "Map Information.h"
#include "Squads.h"
#include "interface Dialogue.h"
#include "Auto Bandage.h"
#include "PreBattle Interface.h"
#include "Sound Control.h"
#include "MessageBoxScreen.h"
#include "Text.h"
#include "GameSettings.h"
#include "random.h"
#include "editscreen.h"
#include "Scheduling.h"
#include "Animated ProgressBar.h"
#include "connect.h" #include "connect.h"
#ifdef JA2UB #ifdef JA2UB
+52 -39
View File
@@ -1,38 +1,51 @@
#include "builddefines.h" #include "builddefines.h"
#include <cstdio> #include <stdio.h>
#include "sgp.h" #include <time.h>
#include "gameloop.h" #include "sgp.h"
#include "himage.h" #include "gameloop.h"
#include "vobject.h" #include "himage.h"
#include "vobject_blitters.h" #include "vobject.h"
#include "WCheck.h" #include "vobject_blitters.h"
#include "input.h" #include "WCheck.h"
#include "Font.h" #include "input.h"
#include "screenids.h" #include "Font.h"
#include "Screens.h" #include "timer.h"
#include "Font Control.h" #include "mousesystem.h"
#include <Overhead Types.h> #include "screenids.h"
#include <Soldier Control.h> #include "Screens.h"
#include "Timer Control.h" #include "Font Control.h"
#include "Sys Globals.h" #include "sysutil.h"
#include <Handle UI.h> #include "tiledef.h"
#include "Overhead.h" #include "worlddef.h"
#include "Utilities.h" #include "editscreen.h"
#include "Render Dirty.h" #include <wchar.h>
#include "jascreens.h" #include <tchar.h>
#include "mainmenuscreen.h" #include "Timer Control.h"
#include "Game Init.h" #include "Sys Globals.h"
#include "Init.h" #include "Interface.h"
#include "Cursor Control.h" #include "Overhead.h"
#include "GameVersion.h" #include "Utilities.h"
#include "Game Clock.h" #include "Render Dirty.h"
#include "gamescreen.h" #include "jascreens.h"
#include "english.h" #include "gameloop.h"
#include "random.h" #include "Event Pump.h"
#include "WordWrap.h" #include "Animation Cache.h"
#include "Sound Control.h" #include "lighting.h"
#include "Text.h" #include "mainmenuscreen.h"
#include "INIReader.h" #include "Game Init.h"
#include "Init.h"
#include "Cursor Control.h"
#include "Utilities.h"
#include "GameVersion.h"
#include "Game Clock.h"
#include "gamescreen.h"
#include "english.h"
#include "random.h"
#include "WordWrap.h"
#include "Sound Control.h"
#include "WordWrap.h"
#include "Text.h"
#include "INIReader.h"
#include "sgp_logger.h" #include "sgp_logger.h"
#include <language.hpp> #include <language.hpp>
@@ -650,7 +663,7 @@ UINT32 DebugScreenInit(void)
} }
static BOOLEAN CheckForAndExitTacticalDebug( ) BOOLEAN CheckForAndExitTacticalDebug( )
{ {
if ( gfExitDebugScreen ) if ( gfExitDebugScreen )
{ {
@@ -667,7 +680,7 @@ static BOOLEAN CheckForAndExitTacticalDebug( )
return( FALSE ); return( FALSE );
} }
static void ExitDebugScreen( ) void ExitDebugScreen( )
{ {
if ( guiCurrentScreen == DEBUG_SCREEN ) if ( guiCurrentScreen == DEBUG_SCREEN )
{ {
@@ -922,7 +935,7 @@ UINT32 DemoExitScreenInit(void)
} }
static void DoneFadeOutForDemoExitScreen( void ) void DoneFadeOutForDemoExitScreen( void )
{ {
gfProgramIsRunning = FALSE; gfProgramIsRunning = FALSE;
} }
@@ -930,7 +943,7 @@ static void DoneFadeOutForDemoExitScreen( void )
// unused // unused
//extern INT8 gbFadeSpeed; //extern INT8 gbFadeSpeed;
static void DisplayTopwareGermanyAddress() void DisplayTopwareGermanyAddress()
{ {
VOBJECT_DESC vo_desc; VOBJECT_DESC vo_desc;
UINT32 uiTempID; UINT32 uiTempID;
+277
View File
@@ -0,0 +1,277 @@
//legion 2
#include "types.h"
#include "types.h"
#include "random.h"
#include "Campaign Types.h"
#include "Queen Command.h"
#include "Overhead.h"
#include "Strategic Movement.h"
#include "Strategic Status.h"
#include "GameSettings.h"
#include "Strategic AI.h"
#include "XML.h"
#include "INIReader.h"
#include "Game Event Hook.h"
#include "sgp.h"
#include "jascreens.h"
#include "laptop.h"
#include "worlddef.h"
#include "Soldier Control.h"
#include "Overhead.h"
#include "email.h"
#include "Soldier Profile.h"
#include "strategicmap.h"
#include "Game Init.h"
#include "Animation Data.h"
#include "Soldier Create.h"
#include "Soldier Init List.h"
#include "strategic.h"
#include "Squads.h"
#include "Strategic Town Loyalty.h"
#include "Strategic Mines.h"
#include "gameloop.h"
#include "random.h"
#include "Map Screen Interface.h"
#include "Tactical Save.h"
#include "Campaign Types.h"
#include "message.h"
#include "Game Event Hook.h"
#include "Strategic Movement.h"
#include "Quests.h"
#include "Strategic AI.h"
#include "Dialogue Control.h"
#include "GameSettings.h"
#include "INIReader.h"
#include "Soldier Profile.h"
#include "XML.h"
#include "Item Types.h"
#include "Items.h"
#include "Text.h"
#include "GameSettings.h"
#ifdef JA2UB
#include "Ja25 Strategic Ai.h"
#include "Ja25Update.h"
#endif
#include "legion cfg.h" //legion2
#include "Campaign Types.h"
#include "Interface.h"
#include "Map Screen Interface Map.h"
#include "renderworld.h"
#include "connect.h"
#include "XMLWriter.h"
#include "Debug Control.h"
#include <vfs/Core/vfs.h>
GAME_LEGION_OPTIONS gGameLegionOptions;
#define GAME_LEGION_OPTIONS_FILE "UB_Options.ini"
void LoadGameLegionOptions();
#ifdef JA2UB
void RandomAddEnemy( UINT8 SectorX, UINT8 SectorY, UINT8 Level );
#endif
void RandomStats ();
#ifdef JA2UB
void RandomAddEnemy( UINT8 SectorX, UINT8 SectorY, UINT8 Level )
{
UNDERGROUND_SECTORINFO *pSector;
UINT16 ubNumAdmins = 0;
UINT16 ubNumTroops = 0;
UINT16 ubNumElites = 0;
if ( Level != 0 )
{
pSector = FindUnderGroundSector( SectorX, SectorY, Level );
if ( pSector )
{
if ( pSector->fVisited != TRUE )
{
switch( gGameOptions.ubDifficultyLevel )
{
case DIF_LEVEL_EASY:
ubNumAdmins = Random( 0 );
ubNumTroops = 10 + Random( 5 );
ubNumElites = Random( 4 );
SetNumberJa25EnemiesInSector( SectorX, SectorY, Level, ubNumAdmins, ubNumTroops, ubNumElites );
break;
case DIF_LEVEL_MEDIUM:
ubNumAdmins = Random( 0 );
ubNumTroops = 15 + Random( 8 );
ubNumElites = 1 + Random( 2 );
SetNumberJa25EnemiesInSector( SectorX, SectorY, Level, ubNumAdmins, ubNumTroops, ubNumElites );
break;
case DIF_LEVEL_HARD:
ubNumAdmins = Random( 0 );
ubNumTroops = 20 + Random( 7 );
ubNumElites = 2 + Random( 2 );
SetNumberJa25EnemiesInSector( SectorX, SectorY, Level, ubNumAdmins, ubNumTroops, ubNumElites );
break;
case DIF_LEVEL_INSANE:
ubNumAdmins = Random( 0 );
ubNumTroops = 20 + Random( 3 );
ubNumElites = 6 + Random( 3 );
SetNumberJa25EnemiesInSector( SectorX, SectorY, Level, ubNumAdmins, ubNumTroops, ubNumElites );
break;
}
}
}
}
else
{
if ( !GetSectorFlagStatus( SectorX, SectorY, Level, SF_ALREADY_VISITED ) )
{
switch( gGameOptions.ubDifficultyLevel )
{
case DIF_LEVEL_EASY:
ubNumAdmins = Random( 0 );
ubNumTroops = 10 + Random( 5 );
ubNumElites = Random( 4 );
SetNumberJa25EnemiesInSector( SectorX, SectorY, Level, ubNumAdmins, ubNumTroops, ubNumElites );
break;
case DIF_LEVEL_MEDIUM:
ubNumAdmins = Random( 0 );
ubNumTroops = 15 + Random( 8 );
ubNumElites = 1 + Random( 2 );
SetNumberJa25EnemiesInSector( SectorX, SectorY, Level, ubNumAdmins, ubNumTroops, ubNumElites );
break;
case DIF_LEVEL_HARD:
ubNumAdmins = Random( 0 );
ubNumTroops = 23 + Random( 7);
ubNumElites = 2 + Random( 2 );
SetNumberJa25EnemiesInSector( SectorX, SectorY, Level, ubNumAdmins, ubNumTroops, ubNumElites );
break;
case DIF_LEVEL_INSANE:
ubNumAdmins = Random( 0 );
ubNumTroops = 20 + Random( 3 );
ubNumElites = 6 + Random( 3 );
SetNumberJa25EnemiesInSector( SectorX, SectorY, Level, ubNumAdmins, ubNumTroops, ubNumElites );
break;
}
}
}
}
#endif
void LoadGameLegionOptions()
{
#ifdef JA2UB
JA2_5_START_SECTOR_X = gGameExternalOptions.ubDefaultArrivalSectorX;
JA2_5_START_SECTOR_Y = gGameExternalOptions.ubDefaultArrivalSectorY;
#endif
gGameLegionOptions.MercStartingGear25XML = TRUE;
gGameLegionOptions.LOCATEGRIDNO = gGameExternalOptions.iInitialMercArrivalLocation;
gGameLegionOptions.LOCATEGRIDNO2 = 0;
gGameLegionOptions.OLDUBInventory = FALSE;
CIniReader iniReader(GAME_LEGION_OPTIONS_FILE);
// -----------------------
// Unfinished Business
// -----------------------
gGameLegionOptions.BorderTown = iniReader.ReadBoolean("Unfinished Business Settings","BORDER_TOWN", TRUE);
gGameLegionOptions.BorderMine = iniReader.ReadBoolean("Unfinished Business Settings","BORDER_MINE", TRUE);
gGameLegionOptions.BorderTeams = iniReader.ReadBoolean("Unfinished Business Settings","BORDER_TEAMS", TRUE);
gGameLegionOptions.BorderMilitia = iniReader.ReadBoolean("Unfinished Business Settings","BORDER_MILITIA", FALSE);
gGameLegionOptions.BorderAirspace = iniReader.ReadBoolean("Unfinished Business Settings","BORDER_AIRSPACE", TRUE);
gGameLegionOptions.BorderItem = iniReader.ReadBoolean("Unfinished Business Settings","BORDER_ITEM", TRUE);
gGameLegionOptions.EventAttackInitialSectorIfPlayerStillThere = iniReader.ReadBoolean("Unfinished Business Settings","EVENT_ATTACK_INITIAL_SECTOR_IF_PLAYER_STILL_THERE", TRUE);
gGameLegionOptions.HandleAddingEnemiesToTunnelMaps = iniReader.ReadBoolean("Unfinished Business Settings","HANDLE_ADDING_ENEMIES_TO_TUNNEL_MAPS", TRUE);
gGameLegionOptions.ubEndDefaultSectorX = iniReader.ReadInteger("Unfinished Business Settings","DEFAULT_END_SECTOR_X", 16, 1, 16);
gGameLegionOptions.ubEndDefaultSectorY = iniReader.ReadInteger("Unfinished Business Settings","DEFAULT_END_SECTOR_Y", 11, 1, 16);
gGameLegionOptions.ubEndDefaultSectorZ = iniReader.ReadInteger("Unfinished Business Settings","DEFAULT_END_SECTOR_Z", 0, 0, 16);
gGameLegionOptions.AutoResolove = iniReader.ReadBoolean("Unfinished Business Settings","AUTO_RESOLVE", FALSE);
gGameLegionOptions.InitialHeliGridNo[ 0 ] = iniReader.ReadInteger("Unfinished Business Settings","INITIAL_HELICOPTER_GRIDNO_1", 14947);
gGameLegionOptions.InitialHeliGridNo[ 1 ] = iniReader.ReadInteger("Unfinished Business Settings","INITIAL_HELICOPTER_GRIDNO_2", 15584);
gGameLegionOptions.InitialHeliGridNo[ 2 ] = iniReader.ReadInteger("Unfinished Business Settings","INITIAL_HELICOPTER_GRIDNO_3", 15754);
gGameLegionOptions.InitialHeliGridNo[ 3 ] = iniReader.ReadInteger("Unfinished Business Settings","INITIAL_HELICOPTER_GRIDNO_4", 16232);
gGameLegionOptions.InitialHeliGridNo[ 4 ] = iniReader.ReadInteger("Unfinished Business Settings","INITIAL_HELICOPTER_GRIDNO_5", 16067);
gGameLegionOptions.InitialHeliGridNo[ 5 ] = iniReader.ReadInteger("Unfinished Business Settings","INITIAL_HELICOPTER_GRIDNO_6", 16230);
gGameLegionOptions.InitialHeliGridNo[ 6 ] = iniReader.ReadInteger("Unfinished Business Settings","INITIAL_HELICOPTER_GRIDNO_7", 15272);
gGameLegionOptions.InitalHeliRandomTimes[ 0 ] = iniReader.ReadInteger("Unfinished Business Settings","INITIAL_HELICOPTER_RANDOM_TIME_1", 1300);
gGameLegionOptions.InitalHeliRandomTimes[ 1 ] = iniReader.ReadInteger("Unfinished Business Settings","INITIAL_HELICOPTER_RANDOM_TIME_2", 2000);
gGameLegionOptions.InitalHeliRandomTimes[ 2 ] = iniReader.ReadInteger("Unfinished Business Settings","INITIAL_HELICOPTER_RANDOM_TIME_3", 2750);
gGameLegionOptions.InitalHeliRandomTimes[ 3 ] = iniReader.ReadInteger("Unfinished Business Settings","INITIAL_HELICOPTER_RANDOM_TIME_4", 3400);
gGameLegionOptions.InitalHeliRandomTimes[ 4 ] = iniReader.ReadInteger("Unfinished Business Settings","INITIAL_HELICOPTER_RANDOM_TIME_5", 4160);
gGameLegionOptions.InitalHeliRandomTimes[ 5 ] = iniReader.ReadInteger("Unfinished Business Settings","INITIAL_HELICOPTER_RANDOM_TIME_6", 4700);
gGameLegionOptions.InitalHeliRandomTimes[ 6 ] = iniReader.ReadInteger("Unfinished Business Settings","INITIAL_HELICOPTER_RANDOM_TIME_7", 5630);
gGameLegionOptions.InGameHeliCrash = iniReader.ReadBoolean("Unfinished Business Settings","ENABLE_UB_HELICOPTER_CRASH", TRUE);
gGameLegionOptions.JerryQuotes = iniReader.ReadBoolean("Unfinished Business Settings","JERRY_QUOTES", TRUE);
gGameLegionOptions.InJerry = iniReader.ReadBoolean("Unfinished Business Settings","JERRY", TRUE);
gGameLegionOptions.JerryGridNo = iniReader.ReadInteger("Unfinished Business Settings","JERRY_GRIDNO", 15109);
gGameLegionOptions.InGameHeli = iniReader.ReadBoolean("Unfinished Business Settings","ENABLE_JA2_HELICOPTER_LANDING", FALSE);
gGameLegionOptions.SwitchInMorrisAreaGridNo = iniReader.ReadInteger("Unfinished Business Settings","SWITCH_IN_MORRIS_AREA_GRIDNO", 15231);
gGameLegionOptions.SwitchToLaunchMisslesGridNo1 = iniReader.ReadInteger("Unfinished Business Settings","SWITCH_TO_LAUNCH_MISSLES_GRIDNO_1", 14268);
gGameLegionOptions.SwitchToLaunchMisslesGridNo2 = iniReader.ReadInteger("Unfinished Business Settings","SWITCH_TO_LAUNCH_MISSLES_GRIDNO_2", 15708);
gGameLegionOptions.RadioLocatorsGridNo1 = iniReader.ReadInteger("Unfinished Business Settings","RADIO_LOCATORS_GRIDNO_1", 15070);
gGameLegionOptions.RadioLocatorsGridNo2 = iniReader.ReadInteger("Unfinished Business Settings","RADIO_LOCATORS_GRIDNO_2", 14744);
gGameLegionOptions.PowergenSectorGridNo1 = iniReader.ReadInteger("Unfinished Business Settings","POWERGEN_SECTOR_GRIDNO_1", 15100);
gGameLegionOptions.PowergenSectorGridNo2 = iniReader.ReadInteger("Unfinished Business Settings","POWERGEN_SECTOR_GRIDNO_2", 12220);
gGameLegionOptions.PowergenSectorGridNo3 = iniReader.ReadInteger("Unfinished Business Settings","POWERGEN_SECTOR_GRIDNO_3", 14155);
gGameLegionOptions.PowergenSectorGridNo4 = iniReader.ReadInteger("Unfinished Business Settings","POWERGEN_SECTOR_GRIDNO_4", 13980);
gGameLegionOptions.PowergenSectorExitgridGridNo = iniReader.ReadInteger("Unfinished Business Settings","POWERGEN_SECTOR_EXITGRID_GRIDNO", 19749);
gGameLegionOptions.PowergenFanSoundGridNo1 = iniReader.ReadInteger("Unfinished Business Settings","POWERGEN_FAN_SOUND_GRIDNO_1", 10979);
gGameLegionOptions.PowergenFanSoundGridNo2 = iniReader.ReadInteger("Unfinished Business Settings","POWERGEN_FAN_SOUND_GRIDNO_2", 19749);
gGameLegionOptions.StartFanbackupAgainGridNo = iniReader.ReadInteger("Unfinished Business Settings","START_FANBACKUP_AGAIN_GRIDNO", 10980);
gGameLegionOptions.StopPowergenFanGridNo = iniReader.ReadInteger("Unfinished Business Settings","STOP_POWERGEN_FAN_GRIDNO", 10980);
//sec J13
gGameLegionOptions.FanGridNo[0] = iniReader.ReadInteger("Unfinished Business Settings","FAN_GRIDNO_1", 10978);
gGameLegionOptions.FanGridNo[1] = iniReader.ReadInteger("Unfinished Business Settings","FAN_GRIDNO_2", 10979);
gGameLegionOptions.FanGridNo[2] = iniReader.ReadInteger("Unfinished Business Settings","FAN_GRIDNO_3", 10980);
gGameLegionOptions.FanGridNo[3] = iniReader.ReadInteger("Unfinished Business Settings","FAN_GRIDNO_4", 10818);
gGameLegionOptions.FanGridNo[4] = iniReader.ReadInteger("Unfinished Business Settings","FAN_GRIDNO_5", 10819);
gGameLegionOptions.FanGridNo[5] = iniReader.ReadInteger("Unfinished Business Settings","FAN_GRIDNO_6", 10820);
gGameLegionOptions.FanGridNo[6] = iniReader.ReadInteger("Unfinished Business Settings","FAN_GRIDNO_7", 10658);
gGameLegionOptions.FanGridNo[7] = iniReader.ReadInteger("Unfinished Business Settings","FAN_GRIDNO_8", 10659);
gGameLegionOptions.FanGridNo[8] = iniReader.ReadInteger("Unfinished Business Settings","FAN_GRIDNO_9", 10660);
if ( gGameLegionOptions.InGameHeli == TRUE )
gGameLegionOptions.InGameHeliCrash = FALSE;
if ( gGameLegionOptions.InGameHeliCrash == TRUE )
gGameLegionOptions.InGameHeli = FALSE;
if ( gGameLegionOptions.InGameHeli == TRUE && gGameLegionOptions.InGameHeliCrash == TRUE )
{
gGameLegionOptions.InGameHeliCrash = TRUE;
gGameLegionOptions.InGameHeli = FALSE;
}
// -----------------------
// Campaign
// -----------------------
gGameLegionOptions.EnemyXML = iniReader.ReadBoolean("Campaign Settings","USE_ENEMY_ARMY_XMLS", TRUE);
gGameLegionOptions.AddRandomEnemyToSector = iniReader.ReadBoolean("Campaign Settings","ADD_RANDOM_ENEMY_TO_SECTOR", FALSE);
gGameLegionOptions.StrategicMovementCostsXML = iniReader.ReadBoolean("Campaign Settings","STRATEGIC_MOVEMENT_COSTS_XML", FALSE);
gGameLegionOptions.MakeStrategicMovementCosts = iniReader.ReadBoolean("Campaign Settings","MAKE_STRATEGIC_MOVEMENT_COSTS", FALSE);
gGameLegionOptions.LaptopQuestEnabled = iniReader.ReadBoolean("Campaign Settings","LAPTOP_QUEST", TRUE);
gGameLegionOptions.pJA2UB = iniReader.ReadBoolean("Campaign Settings","JA2UB", TRUE);
gGameLegionOptions.fDeadMerc = iniReader.ReadBoolean("Campaign Settings","NOTIFY_ON_DEAD_AIM_MERCS", FALSE);
// -----------------------
// Laptop
// -----------------------
gGameLegionOptions.LaptopIMPPassJA2 = iniReader.ReadBoolean("Laptop Settings","IMP_PASS_JA2", FALSE);
gGameLegionOptions.LaptopIMPPassUB = iniReader.ReadBoolean("Laptop Settings","IMP_PASS_UB", TRUE);
gGameLegionOptions.LaptopLinkInsurance = iniReader.ReadBoolean("Laptop Settings","LINK_INSURANCE", FALSE);
gGameLegionOptions.LaptopLinkFuneral = iniReader.ReadBoolean("Laptop Settings","LINK_FUNERAL", TRUE);
gGameLegionOptions.LaptopLinkBobby = iniReader.ReadBoolean("Laptop Settings","LINK_BOBBY", FALSE);
gGameLegionOptions.fBobbyRSite = iniReader.ReadBoolean("Laptop Settings","BOBBY_SITE_ACCESSED", FALSE);
}
+105
View File
@@ -0,0 +1,105 @@
#ifndef _LEGION_CFG_H
#define _LEGION_CFG_H
#include "soldier profile type.h"
extern void LoadGameLegionOptions();
typedef struct
{
BOOLEAN BorderTown;
BOOLEAN BorderMine;
BOOLEAN BorderTeams;
BOOLEAN BorderMilitia;
BOOLEAN BorderAirspace;
BOOLEAN BorderItem;
BOOLEAN EnemyXML;
BOOLEAN EventAttackInitialSectorIfPlayerStillThere;
BOOLEAN HandleAddingEnemiesToTunnelMaps;
BOOLEAN BobbyRayInventory_UB;
BOOLEAN InitTownLoyalty_UB;
BOOLEAN AutoResolove;
BOOLEAN AddRandomEnemyToSector;
BOOLEAN StrategicMovementCostsXML;
BOOLEAN MakeStrategicMovementCosts;
BOOLEAN MercStartingGear25XML;
UINT32 InitialHeliGridNo[ 7 ];
INT16 InitalHeliRandomTimes[ 7 ];
UINT32 LOCATEGRIDNO;
BOOLEAN LaptopIMPPassJA2;
BOOLEAN LaptopIMPPassUB;
UINT8 ubDefaultArrivalSectorX;
UINT8 ubDefaultArrivalSectorY;
INT32 iStartingCashNovice;
INT32 iStartingCashExperienced;
INT32 iStartingCashExpert;
INT32 iStartingCashInsane;
BOOLEAN TEX_AND_JOHN;
BOOLEAN Random_Manuel_Text;
BOOLEAN RISRAPORT;
BOOLEAN LaptopQuestEnabled;
BOOLEAN InGameHeliCrash;
BOOLEAN InGameHeli;
UINT32 LOCATEGRIDNO2;
BOOLEAN JerryQuotes;
BOOLEAN InJerry;
UINT32 JerryGridNo;
UINT32 SwitchInMorrisAreaGridNo;
UINT32 SwitchToLaunchMisslesGridNo1;
UINT32 SwitchToLaunchMisslesGridNo2;
UINT32 RadioLocatorsGridNo1;
UINT32 RadioLocatorsGridNo2;
UINT32 PowergenSectorGridNo1;
UINT32 PowergenSectorGridNo2;
UINT32 PowergenSectorGridNo3;
UINT32 PowergenSectorGridNo4;
UINT32 PowergenSectorExitgridGridNo;
UINT32 PowergenFanSoundGridNo1;
UINT32 PowergenFanSoundGridNo2;
UINT32 StartFanbackupAgainGridNo;
UINT32 StopPowergenFanGridNo;
BOOLEAN TestUB;
BOOLEAN LaptopLinkInsurance;
BOOLEAN LaptopLinkFuneral;
BOOLEAN LaptopLinkBobby;
UINT32 FanGridNo[9];
UINT8 ubEndDefaultSectorX;
UINT8 ubEndDefaultSectorY;
UINT8 ubEndDefaultSectorZ;
BOOLEAN pJA2UB;
BOOLEAN fBobbyRSite;
BOOLEAN fDeadMerc;
BOOLEAN OLDUBInventory;
} GAME_LEGION_OPTIONS;
extern GAME_LEGION_OPTIONS gGameLegionOptions;
#ifdef JA2UB
extern void RandomAddEnemy( UINT8 SectorX, UINT8 SectorY, UINT8 Level );
extern void RandomStats ();
#endif
extern void RandomStats ();
#endif
-10
View File
@@ -201,16 +201,6 @@ void LoadGameUBOptions()
gGameUBOptions.EventAttackInitialSectorIfPlayerStillThere = iniReader.ReadBoolean("Unfinished Business Settings","EVENT_ATTACK_INITIAL_SECTOR_IF_PLAYER_STILL_THERE", TRUE); gGameUBOptions.EventAttackInitialSectorIfPlayerStillThere = iniReader.ReadBoolean("Unfinished Business Settings","EVENT_ATTACK_INITIAL_SECTOR_IF_PLAYER_STILL_THERE", TRUE);
gGameUBOptions.HandleAddingEnemiesToTunnelMaps = iniReader.ReadBoolean("Unfinished Business Settings","HANDLE_ADDING_ENEMIES_TO_TUNNEL_MAPS", TRUE); gGameUBOptions.HandleAddingEnemiesToTunnelMaps = iniReader.ReadBoolean("Unfinished Business Settings","HANDLE_ADDING_ENEMIES_TO_TUNNEL_MAPS", TRUE);
//J14-1
gGameUBOptions.Tunnel1_SectorX = iniReader.ReadInteger("Unfinished Business Settings", "TUNNEL1_SECTOR_X", 14);
gGameUBOptions.Tunnel1_SectorY = iniReader.ReadInteger("Unfinished Business Settings", "TUNNEL1_SECTOR_Y", 10);
gGameUBOptions.Tunnel1_SectorZ = iniReader.ReadInteger("Unfinished Business Settings", "TUNNEL1_SECTOR_Z", 1);
//K14-1
gGameUBOptions.Tunnel2_SectorX = iniReader.ReadInteger("Unfinished Business Settings", "TUNNEL2_SECTOR_X", 14);
gGameUBOptions.Tunnel2_SectorY = iniReader.ReadInteger("Unfinished Business Settings", "TUNNEL2_SECTOR_Y", 11);
gGameUBOptions.Tunnel2_SectorZ = iniReader.ReadInteger("Unfinished Business Settings", "TUNNEL2_SECTOR_Z", 1);
gGameUBOptions.ubEndDefaultSectorX = iniReader.ReadInteger("Unfinished Business Settings","DEFAULT_END_SECTOR_X", 16, 1, 16); gGameUBOptions.ubEndDefaultSectorX = iniReader.ReadInteger("Unfinished Business Settings","DEFAULT_END_SECTOR_X", 16, 1, 16);
gGameUBOptions.ubEndDefaultSectorY = iniReader.ReadInteger("Unfinished Business Settings","DEFAULT_END_SECTOR_Y", 11, 1, 16); gGameUBOptions.ubEndDefaultSectorY = iniReader.ReadInteger("Unfinished Business Settings","DEFAULT_END_SECTOR_Y", 11, 1, 16);
gGameUBOptions.ubEndDefaultSectorZ = iniReader.ReadInteger("Unfinished Business Settings","DEFAULT_END_SECTOR_Z", 0, 0, 16); gGameUBOptions.ubEndDefaultSectorZ = iniReader.ReadInteger("Unfinished Business Settings","DEFAULT_END_SECTOR_Z", 0, 0, 16);
-8
View File
@@ -224,14 +224,6 @@ typedef struct
INT16 BettyBloodCatSectorX; INT16 BettyBloodCatSectorX;
INT16 BettyBloodCatSectorY; INT16 BettyBloodCatSectorY;
INT8 BettyBloodCatSectorZ; INT8 BettyBloodCatSectorZ;
INT16 Tunnel1_SectorX;
INT16 Tunnel1_SectorY;
INT8 Tunnel1_SectorZ;
INT16 Tunnel2_SectorX;
INT16 Tunnel2_SectorY;
INT8 Tunnel2_SectorZ;
} GAME_UB_OPTIONS; } GAME_UB_OPTIONS;
extern GAME_UB_OPTIONS gGameUBOptions; extern GAME_UB_OPTIONS gGameUBOptions;
+2 -1
View File
@@ -3,6 +3,7 @@
#include "Utilities.h" #include "Utilities.h"
#include "WCheck.h" #include "WCheck.h"
#include "Timer Control.h" #include "Timer Control.h"
#include "DEBUG.H"
#include "WordWrap.h" #include "WordWrap.h"
#include "Encrypted File.h" #include "Encrypted File.h"
#include "email.h" #include "email.h"
@@ -15,7 +16,7 @@
#include "sysutil.h" #include "sysutil.h"
#include "LocalizedStrings.h" #include "LocalizedStrings.h"
#include <soldier profile type.h> #include "Soldier Profile.h"
UINT8 MAX_NUMBER_MERCS = 0; UINT8 MAX_NUMBER_MERCS = 0;
+104 -89
View File
@@ -1,81 +1,96 @@
#include "Assignments.h" #include "Assignments.h"
#include "strategic.h" #include "strategic.h"
#include "Items.h" #include "Items.h"
#include "Overhead.h" #include "Overhead.h"
#include "Game Clock.h" #include "Game Clock.h"
#include "stdlib.h" #include "stdlib.h"
#include "message.h" #include "message.h"
#include "Font Control.h" #include "Font Control.h"
#include "Map Screen Interface.h" #include "Map Screen Interface.h"
#include "soldier profile type.h" #include "soldier profile type.h"
#include "Soldier Profile.h" #include "Soldier Profile.h"
#include "Campaign.h" #include "Campaign.h"
#include "Queen Command.h" #include "Queen Command.h"
#include "strategicmap.h" #include "strategicmap.h"
#include "Text.h" #include "Text.h"
#include "Dialogue Control.h" #include "Dialogue Control.h"
#include "NPC.h" #include "NPC.h"
#include "Strategic Town Loyalty.h" #include "Strategic Town Loyalty.h"
#include "Animation Control.h" #include "Animation Control.h"
#include "mapscreen.h" #include "mapscreen.h"
#include "Squads.h" #include "Squads.h"
#include "Map Screen Helicopter.h" #include "Map Screen Helicopter.h"
#include "PopUpBox.h" #include "PopUpBox.h"
#include "Vehicles.h" #include "Vehicles.h"
#include "Merc Contract.h" #include "Merc Contract.h"
#include "Map Screen Interface Map.h" #include "Map Screen Interface Map.h"
#include "Strategic Movement.h" #include "Strategic Movement.h"
#include "laptop.h" #include "laptop.h"
#include "finances.h" #include "finances.h"
#include "LaptopSave.h" #include "LaptopSave.h"
#include "renderworld.h" #include "renderworld.h"
#include "Interface Control.h" #include "Interface Control.h"
#include "Interface.h" #include "Interface.h"
#include "Soldier Find.h" #include "Soldier Find.h"
#include <Rotting Corpses.h> #include "ai.h"
#include "Utilities.h" #include "Utilities.h"
#include "random.h" #include "random.h"
#include "Soldier Add.h" #include "line.h"
#include "GameSettings.h" #include "Soldier Add.h"
#include "Isometric Utils.h" #include "GameSettings.h"
#include "Soldier macros.h" #include "Isometric Utils.h"
#include "Explosion Control.h" #include "Soldier macros.h"
#include "SkillCheck.h" #include "Explosion Control.h"
#include "Quests.h" #include "SkillCheck.h"
#include "Town Militia.h" #include "Quests.h"
#include "Map Screen Interface Border.h" #include "Town Militia.h"
#include "math.h" #include "Map Screen Interface Border.h"
#include "Game Event Hook.h" #include "math.h"
#include "Map Information.h" #include "SkillCheck.h"
#include "Strategic Status.h" #include "Strategic Pathing.h"
#include "history.h" #include "Game Event Hook.h"
#include "Map Screen Interface Map Inventory.h" #include "Strategic Event Handler.h"
#include "interface Dialogue.h" #include "Map Information.h"
// added by SANDRO #include "Strategic Status.h"
#include "AIInternals.h" #include "history.h"
#include "Morale.h" #include "Map Screen Interface Map Inventory.h"
#include "Food.h" #include "interface Dialogue.h"
#include "Tactical Save.h" // added by Flugente // added by SANDRO
#include "Campaign Types.h" // added by Flugente #include "AIInternals.h"
#include "DynamicDialogue.h" // added by Flugente #include "Morale.h"
#include "Disease.h" // added by Flugente #include "Food.h"
#include "PMC.h" // added by Flugente #include "Tactical Save.h" // added by Flugente
#include "Drugs And Alcohol.h" // added by Flugente for DoesMercHaveDisability( ... ) #include "Campaign Types.h" // added by Flugente
#include "MilitiaIndividual.h" // added by Flugente #include "Strategic Town Loyalty.h"
#include "Militia Control.h" // added by Flugente #include "DynamicDialogue.h" // added by Flugente
#include "ASD.h" // added by Flugente #include "Disease.h" // added by Flugente
#include "Strategic AI.h" #include "Queen Command.h" // added by Flugente
#include "MiniEvents.h" #include "PMC.h" // added by Flugente
#include "Rebel Command.h" #include "Drugs And Alcohol.h" // added by Flugente for DoesMercHaveDisability( ... )
#include "MilitiaIndividual.h" // added by Flugente
#include "Militia Control.h" // added by Flugente
#include "ASD.h" // added by Flugente
#include "Strategic AI.h"
#include "MiniEvents.h"
#include "Rebel Command.h"
#include <vector> #include <vector>
#include <queue> #include <queue>
#include "Vehicles.h"
#include "GameInitOptionsScreen.h" #include "GameInitOptionsScreen.h"
#include "Facilities.h"
//forward declarations of common classes to eliminate includes //forward declarations of common classes to eliminate includes
class OBJECTTYPE;
class SOLDIERTYPE;
extern int POP_UP_BOX_X; extern int POP_UP_BOX_X;
extern WorldItems gAllWorldItems; extern WorldItems gAllWorldItems;
#include "MilitiaSquads.h"
// HEADROCK HAM 3.5: Include Facility data
#include "Facilities.h"
#include "Vehicles.h"
#ifdef JA2UB #ifdef JA2UB
#include "Explosion Control.h" #include "Explosion Control.h"
@@ -767,7 +782,7 @@ void ChangeSoldiersAssignment( SOLDIERTYPE *pSoldier, INT8 bAssignment )
fMapPanelDirty = TRUE; fMapPanelDirty = TRUE;
} }
static BOOLEAN BasicCanCharacterAssignment( SOLDIERTYPE * pSoldier, BOOLEAN fNotInCombat ) BOOLEAN BasicCanCharacterAssignment( SOLDIERTYPE * pSoldier, BOOLEAN fNotInCombat )
{ {
AssertNotNIL(pSoldier); AssertNotNIL(pSoldier);
// global conditions restricting all assignment changes // global conditions restricting all assignment changes
@@ -1350,7 +1365,7 @@ BOOLEAN DoesCharacterHaveAnyItemsToRepair( SOLDIERTYPE *pSoldier, INT8 bHighestP
return( FALSE ); return( FALSE );
} }
static BOOLEAN BasicCanCharacterRepair( SOLDIERTYPE * pSoldier ) BOOLEAN BasicCanCharacterRepair( SOLDIERTYPE * pSoldier )
{ {
AssertNotNIL(pSoldier); AssertNotNIL(pSoldier);
@@ -2433,7 +2448,7 @@ BOOLEAN CanCharacterTrainTeammates( SOLDIERTYPE *pSoldier )
return( TRUE ); return( TRUE );
} }
static BOOLEAN CanCharacterBeTrainedByOther( SOLDIERTYPE *pSoldier ) BOOLEAN CanCharacterBeTrainedByOther( SOLDIERTYPE *pSoldier )
{ {
AssertNotNIL(pSoldier); AssertNotNIL(pSoldier);
@@ -2818,7 +2833,7 @@ BOOLEAN CanCharacterSnitch( SOLDIERTYPE *pSoldier )
return( FALSE ); return( FALSE );
} }
static BOOLEAN CanCharacterSpreadPropaganda( SOLDIERTYPE *pSoldier ) BOOLEAN CanCharacterSpreadPropaganda( SOLDIERTYPE *pSoldier )
{ {
AssertNotNIL(pSoldier); AssertNotNIL(pSoldier);
@@ -2849,7 +2864,7 @@ static BOOLEAN CanCharacterSpreadPropaganda( SOLDIERTYPE *pSoldier )
return( TRUE ); return( TRUE );
} }
static BOOLEAN CanCharacterGatherInformation( SOLDIERTYPE *pSoldier ) BOOLEAN CanCharacterGatherInformation( SOLDIERTYPE *pSoldier )
{ {
AssertNotNIL(pSoldier); AssertNotNIL(pSoldier);
@@ -2880,7 +2895,7 @@ static BOOLEAN CanCharacterGatherInformation( SOLDIERTYPE *pSoldier )
return( TRUE ); return( TRUE );
} }
static BOOLEAN CanCharacterSnitchInPrison( SOLDIERTYPE *pSoldier ) BOOLEAN CanCharacterSnitchInPrison( SOLDIERTYPE *pSoldier )
{ {
AssertNotNIL(pSoldier); AssertNotNIL(pSoldier);
@@ -3158,7 +3173,7 @@ UINT8 GetNumberThatCanBeDoctored( SOLDIERTYPE *pDoctor, BOOLEAN fThisHour, BOOLE
return( ubNumberOfPeople ); return( ubNumberOfPeople );
} }
static SOLDIERTYPE* GetPatientThatCanBeDoctored( SOLDIERTYPE *pDoctor, BOOLEAN fThisHour, BOOLEAN fSkipKitCheck, BOOLEAN fSkipSkillCheck, BOOLEAN fCheckForSurgery ) SOLDIERTYPE* GetPatientThatCanBeDoctored( SOLDIERTYPE *pDoctor, BOOLEAN fThisHour, BOOLEAN fSkipKitCheck, BOOLEAN fSkipSkillCheck, BOOLEAN fCheckForSurgery )
{ {
int cnt; int cnt;
SOLDIERTYPE *pSoldier = MercPtrs[0], *pTeamSoldier = NULL; SOLDIERTYPE *pSoldier = MercPtrs[0], *pTeamSoldier = NULL;
@@ -3579,7 +3594,7 @@ UINT32 CalculatePrisonGuardValue(SOLDIERTYPE *pSoldier )
return( usValue ); return( usValue );
} }
static UINT32 CalculateSnitchGuardValue(SOLDIERTYPE *pSoldier ) UINT32 CalculateSnitchGuardValue(SOLDIERTYPE *pSoldier )
{ {
// this is an assignment // this is an assignment
UINT32 usValue = 0; UINT32 usValue = 0;
@@ -3615,7 +3630,7 @@ static UINT32 CalculateSnitchGuardValue(SOLDIERTYPE *pSoldier )
return( usValue ); return( usValue );
} }
static UINT32 CalculateAllGuardsValueInPrison( INT16 sMapX, INT16 sMapY, INT8 bZ ) UINT32 CalculateAllGuardsValueInPrison( INT16 sMapX, INT16 sMapY, INT8 bZ )
{ {
UINT32 prisonguardvalue = 0; UINT32 prisonguardvalue = 0;
@@ -3636,7 +3651,7 @@ static UINT32 CalculateAllGuardsValueInPrison( INT16 sMapX, INT16 sMapY, INT8 bZ
return( prisonguardvalue ); return( prisonguardvalue );
} }
static UINT32 CalculateAllSnitchesGuardValueInPrison( INT16 sMapX, INT16 sMapY, INT8 bZ ) UINT32 CalculateAllSnitchesGuardValueInPrison( INT16 sMapX, INT16 sMapY, INT8 bZ )
{ {
UINT32 prisonguardvalue = 0; UINT32 prisonguardvalue = 0;
@@ -3657,7 +3672,7 @@ static UINT32 CalculateAllSnitchesGuardValueInPrison( INT16 sMapX, INT16 sMapY,
return( prisonguardvalue ); return( prisonguardvalue );
} }
static UINT32 CalculateAllGuardsNumberInPrison( INT16 sMapX, INT16 sMapY, INT8 bZ ) UINT32 CalculateAllGuardsNumberInPrison( INT16 sMapX, INT16 sMapY, INT8 bZ )
{ {
UINT8 numprisonguards = 0; UINT8 numprisonguards = 0;
@@ -3832,7 +3847,7 @@ INT16 GetTrainWorkerPts(SOLDIERTYPE *pSoldier)
} }
// anv: handle prisoners exposing snitch as a snitch // anv: handle prisoners exposing snitch as a snitch
static BOOL HandleSnitchExposition(SOLDIERTYPE *pSoldier) BOOL HandleSnitchExposition(SOLDIERTYPE *pSoldier)
{ {
UINT32 uiSuspicion = 0; UINT32 uiSuspicion = 0;
UINT32 uiCoverQuality = 0; UINT32 uiCoverQuality = 0;
@@ -5090,7 +5105,7 @@ OBJECTTYPE* FindRepairableItemInSpecificPocket(SOLDIERTYPE * pSoldier, OBJECTTYP
} }
// Flugente: changed this function so that it repairs items up to a variable threshold instead of always 100%. This will only happen if the option gGameExternalOptions.fAdvRepairSystem is used // Flugente: changed this function so that it repairs items up to a variable threshold instead of always 100%. This will only happen if the option gGameExternalOptions.fAdvRepairSystem is used
static void DoActualRepair( SOLDIERTYPE * pSoldier, UINT16 usItem, INT16 * pbStatus, INT16 sThreshold, UINT8 * pubRepairPtsLeft ) void DoActualRepair( SOLDIERTYPE * pSoldier, UINT16 usItem, INT16 * pbStatus, INT16 sThreshold, UINT8 * pubRepairPtsLeft )
{ {
INT16 sRepairCostAdj; INT16 sRepairCostAdj;
UINT16 usDamagePts, usPtsFixed; UINT16 usDamagePts, usPtsFixed;
@@ -6814,7 +6829,7 @@ struct admintmpstruct
FLOAT percentage; FLOAT percentage;
}; };
static UINT16 GetNumberofAdministratableMercs( INT16 sX, INT16 sY ) UINT16 GetNumberofAdministratableMercs( INT16 sX, INT16 sY )
{ {
UINT16 num = 0; UINT16 num = 0;
UINT8 townid_origin = GetTownIdForSector( sX, sY ); UINT8 townid_origin = GetTownIdForSector( sX, sY );
@@ -7927,7 +7942,7 @@ BOOLEAN TrainTownInSector( SOLDIERTYPE *pTrainer, INT16 sMapX, INT16 sMapY, INT1
return ( FALSE ); return ( FALSE );
} }
static void Interrogateprisoner(UINT8 aPrisonerType, FLOAT aChanceModifier, INT8& arMilitiaType, UINT32& arRansom, FLOAT& arIntel ) void Interrogateprisoner(UINT8 aPrisonerType, FLOAT aChanceModifier, INT8& arMilitiaType, UINT32& arRansom, FLOAT& arIntel )
{ {
arMilitiaType = -1; arMilitiaType = -1;
@@ -11454,7 +11469,7 @@ void ClearScreenMaskForMapScreenExit( void )
CreateDestroyMouseRegionsForPrisonerMenu( ); CreateDestroyMouseRegionsForPrisonerMenu( );
} }
static void CreateDestroyMouseRegions( void ) void CreateDestroyMouseRegions( void )
{ {
static BOOLEAN fCreated = FALSE; static BOOLEAN fCreated = FALSE;
UINT32 iCounter = 0; UINT32 iCounter = 0;
@@ -12671,7 +12686,7 @@ void RemoveMercMenuBtnCallback( MOUSE_REGION * pRegion, INT32 iReason )
} }
} }
static void BeginRemoveMercFromContract( SOLDIERTYPE *pSoldier ) void BeginRemoveMercFromContract( SOLDIERTYPE *pSoldier )
{ {
// This function will setup the quote, then start dialogue beginning the actual leave sequence // This function will setup the quote, then start dialogue beginning the actual leave sequence
if( ( pSoldier->stats.bLife > 0 ) && ( pSoldier->bAssignment != ASSIGNMENT_POW ) ) if( ( pSoldier->stats.bLife > 0 ) && ( pSoldier->bAssignment != ASSIGNMENT_POW ) )
@@ -12774,7 +12789,7 @@ static void BeginRemoveMercFromContract( SOLDIERTYPE *pSoldier )
} }
static void MercDismissConfirmCallBack( UINT8 bExitValue ) void MercDismissConfirmCallBack( UINT8 bExitValue )
{ {
if ( bExitValue == MSG_BOX_RETURN_YES ) if ( bExitValue == MSG_BOX_RETURN_YES )
{ {
@@ -21371,7 +21386,7 @@ void PayFacilityCostsYesNoBoxCallback( UINT8 bExitValue )
} }
// HEADROCK HAM 3.6: Callback on agreeing to pay off facility debts before you can assign another character to facility work. // HEADROCK HAM 3.6: Callback on agreeing to pay off facility debts before you can assign another character to facility work.
static void PayFacilityDebtManuallyYesNoBoxCallback( UINT8 bExitValue ) void PayFacilityDebtManuallyYesNoBoxCallback( UINT8 bExitValue )
{ {
// This callback should only be called if the player can pay off the ENTIRE debt!! // This callback should only be called if the player can pay off the ENTIRE debt!!
Assert( LaptopSaveInfo.iCurrentBalance >= giTotalOwedForFacilityOperationsToday ); Assert( LaptopSaveInfo.iCurrentBalance >= giTotalOwedForFacilityOperationsToday );
+97 -90
View File
@@ -1,68 +1,75 @@
#include "builddefines.h" #include "builddefines.h"
#include <stdio.h> #include <stdio.h>
#include "types.h" #include "types.h"
#include "Auto Resolve.h" #include "Auto Resolve.h"
#include "Strategic Movement.h" #include "Strategic Movement.h"
#include "Queen Command.h" #include "Queen Command.h"
#include "Music Control.h" #include "Music Control.h"
#include "PreBattle Interface.h" #include "PreBattle Interface.h"
#include "Player Command.h" #include "Player Command.h"
#include "mousesystem.h" #include "mousesystem.h"
#include "Button System.h" #include "Button System.h"
#include "gameloop.h" #include "gameloop.h"
#include "screenids.h" #include "screenids.h"
#include "mapscreen.h" #include "mapscreen.h"
#include "vobject.h" #include "vobject.h"
#include "video.h" #include "video.h"
#include "input.h" #include "input.h"
#include "gamescreen.h" #include "gamescreen.h"
#include "Render Dirty.h" #include "Render Dirty.h"
#include "vobject_blitters.h" #include "vobject_blitters.h"
#include "sysutil.h" #include "sysutil.h"
#include "Font Control.h" #include "Font Control.h"
#include "Soldier Create.h" #include "Soldier Create.h"
#include "Overhead.h" #include "Overhead.h"
#include "Items.h" #include "Interface.h"
#include "Weapons.h" #include "Items.h"
#include "Sound Control.h" #include "Weapons.h"
#include "Game Clock.h" #include "Sound Control.h"
#include "Soldier Profile.h" #include "Game Clock.h"
#include "Campaign.h" #include "Soldier Profile.h"
#include "Tactical Save.h" #include "Campaign.h"
#include "Strategic Status.h" #include "Tactical Save.h"
#include "Text.h" #include "Strategic Status.h"
#include "WordWrap.h" #include "Map Screen Interface.h"
#include "Squads.h" #include "Text.h"
#include "random.h" #include "WordWrap.h"
#include "line.h" #include "Squads.h"
#include "english.h" #include "random.h"
#include "Strategic Merc Handler.h" #include "line.h"
#include "strategic.h" #include "english.h"
#include "message.h" #include "Strategic Pathing.h"
#include "Town Militia.h" #include "Strategic Merc Handler.h"
#include "Animation Data.h" #include "strategic.h"
#include "Creature Spreading.h" #include "message.h"
#include "Strategic AI.h" #include "Town Militia.h"
#include "Morale.h" #include "Animation Data.h"
#include "Strategic Town Loyalty.h" #include "Creature Spreading.h"
#include "GameSettings.h" #include "Strategic AI.h"
#include "Soldier macros.h" #include "SkillCheck.h"
#include "strategicmap.h" #include "rt time defines.h"
#include "Quests.h" #include "Morale.h"
#include "Meanwhile.h" #include "Strategic Town Loyalty.h"
#include "Inventory Choosing.h" #include "GameSettings.h"
#include "Game Event Hook.h" #include "Soldier macros.h"
#include "Assignments.h" #include "strategicmap.h"
#include "Cheats.h" #include "Quests.h"
#include "Map Information.h" #include "Meanwhile.h"
#include "MilitiaSquads.h" #include "Inventory Choosing.h"
#include "interface Dialogue.h" #include "Game Event Hook.h"
#include "AIInternals.h" // added by SANDRO #include "Assignments.h"
#include "Bullets.h" // HEADROCK HAM 5, for use with Bullet Impact. #include "Cheats.h"
#include "CampaignStats.h" // added by Flugente #include "Map Information.h"
#include "DynamicDialogue.h" // added by Flugente #include "MilitiaSquads.h"
#include "MilitiaIndividual.h" // added by Flugente // #include "Strategic AI.h"
#include "Rebel Command.h" #include "interface Dialogue.h"
#include "AIInternals.h" // added by SANDRO
#include "Bullets.h" // HEADROCK HAM 5, for use with Bullet Impact.
#include "CampaignStats.h" // added by Flugente
#include "DynamicDialogue.h" // added by Flugente
#include "MilitiaIndividual.h" // added by Flugente
#include "Rebel Command.h"
#include "Reinforcement.h" #include "Reinforcement.h"
//#define INVULNERABILITY //#define INVULNERABILITY
@@ -330,7 +337,7 @@ SOLDIERCELL *gpCivs = NULL;
SOLDIERCELL *gpEnemies = NULL; SOLDIERCELL *gpEnemies = NULL;
//Simple wrappers for autoresolve sounds that are played. //Simple wrappers for autoresolve sounds that are played.
static void PlayAutoResolveSample( UINT32 usNum, UINT32 usRate, UINT32 ubVolume, UINT32 ubLoops, UINT32 uiPan ) void PlayAutoResolveSample( UINT32 usNum, UINT32 usRate, UINT32 ubVolume, UINT32 ubLoops, UINT32 uiPan )
{ {
if( gpAR->fSound ) if( gpAR->fSound )
{ {
@@ -338,7 +345,7 @@ static void PlayAutoResolveSample( UINT32 usNum, UINT32 usRate, UINT32 ubVolume,
} }
} }
static void PlayAutoResolveSampleFromFile( STR8 szFileName, UINT32 usRate, UINT32 ubVolume, UINT32 ubLoops, UINT32 uiPan ) void PlayAutoResolveSampleFromFile( STR8 szFileName, UINT32 usRate, UINT32 ubVolume, UINT32 ubLoops, UINT32 uiPan )
{ {
if( gpAR->fSound ) if( gpAR->fSound )
{ {
@@ -349,7 +356,7 @@ static void PlayAutoResolveSampleFromFile( STR8 szFileName, UINT32 usRate, UINT3
extern void ClearPreviousAIGroupAssignment( GROUP *pGroup ); extern void ClearPreviousAIGroupAssignment( GROUP *pGroup );
static void EliminateAllMercs() void EliminateAllMercs()
{ {
SOLDIERCELL *pAttacker = NULL; SOLDIERCELL *pAttacker = NULL;
INT32 i, iNum = 0; INT32 i, iNum = 0;
@@ -380,7 +387,7 @@ static void EliminateAllMercs()
} }
} }
static void EliminateAllFriendlies() void EliminateAllFriendlies()
{ {
INT32 i; INT32 i;
if( gpAR ) if( gpAR )
@@ -496,7 +503,7 @@ void EliminateAllEnemies( UINT8 ubSectorX, UINT8 ubSectorY )
#define ORIG_RIGHT 92 #define ORIG_RIGHT 92
#define ORIG_BOTTOM 84 #define ORIG_BOTTOM 84
static void DoTransitionFromPreBattleInterfaceToAutoResolve() void DoTransitionFromPreBattleInterfaceToAutoResolve()
{ {
SGPRect SrcRect, DstRect; SGPRect SrcRect, DstRect;
UINT32 uiStartTime, uiCurrTime; UINT32 uiStartTime, uiCurrTime;
@@ -727,7 +734,7 @@ UINT32 AutoResolveScreenHandle()
return AUTORESOLVE_SCREEN; return AUTORESOLVE_SCREEN;
} }
static void RefreshMerc( SOLDIERTYPE *pSoldier ) void RefreshMerc( SOLDIERTYPE *pSoldier )
{ {
pSoldier->stats.bLife = pSoldier->stats.bLifeMax; pSoldier->stats.bLife = pSoldier->stats.bLifeMax;
pSoldier->bBleeding = 0; pSoldier->bBleeding = 0;
@@ -743,7 +750,7 @@ static void RefreshMerc( SOLDIERTYPE *pSoldier )
//Now assign the pSoldier->ubGroupIDs for the enemies, so we know where to remove them. Start with //Now assign the pSoldier->ubGroupIDs for the enemies, so we know where to remove them. Start with
//stationary groups first. //stationary groups first.
static void AssociateEnemiesWithStrategicGroups() void AssociateEnemiesWithStrategicGroups()
{ {
SECTORINFO *pSector; SECTORINFO *pSector;
GROUP *pGroup; GROUP *pGroup;
@@ -1186,7 +1193,7 @@ void CalculateSoldierCells( BOOLEAN fReset )
} }
static INT32 DetermineCellID( SOLDIERCELL *pCell ) INT32 DetermineCellID( SOLDIERCELL *pCell )
{ {
INT32 iIndex; INT32 iIndex;
@@ -1205,7 +1212,7 @@ static INT32 DetermineCellID( SOLDIERCELL *pCell )
return 0; return 0;
} }
static BOOLEAN IsItAllowedToRender( SOLDIERCELL *pCell ) BOOLEAN IsItAllowedToRender( SOLDIERCELL *pCell )
{ {
INT32 iID = DetermineCellID( pCell ); INT32 iID = DetermineCellID( pCell );
@@ -1348,7 +1355,7 @@ void RenderSoldierCellBars( SOLDIERCELL *pCell )
ColorFillVideoSurfaceArea( FRAME_BUFFER, pCell->xp+46, iStartY, pCell->xp+47, pCell->yp+29, Get16BPPColor( FROMRGB( 8, 107, 8 ) ) ); ColorFillVideoSurfaceArea( FRAME_BUFFER, pCell->xp+46, iStartY, pCell->xp+47, pCell->yp+29, Get16BPPColor( FROMRGB( 8, 107, 8 ) ) );
} }
static void BuildInterfaceBuffer() void BuildInterfaceBuffer()
{ {
VSURFACE_DESC vs_desc; VSURFACE_DESC vs_desc;
UINT16 usUselessWidth, usUselessHeight; UINT16 usUselessWidth, usUselessHeight;
@@ -1430,7 +1437,7 @@ static void BuildInterfaceBuffer()
SetClippingRect( &ClipRect ); SetClippingRect( &ClipRect );
} }
static void ExpandWindow() void ExpandWindow()
{ {
SGPRect OldRect; SGPRect OldRect;
UINT32 uiDestPitchBYTES; UINT32 uiDestPitchBYTES;
@@ -1525,7 +1532,7 @@ static void ExpandWindow()
} }
static OBJECTTYPE* FindMedicalKit() OBJECTTYPE* FindMedicalKit()
{ {
INT32 i; INT32 i;
INT32 iSlot; INT32 iSlot;
@@ -1540,7 +1547,7 @@ static OBJECTTYPE* FindMedicalKit()
return NULL; return NULL;
} }
static UINT32 AutoBandageMercs() UINT32 AutoBandageMercs()
{ {
INT32 i, iBest; INT32 i, iBest;
UINT32 uiPointsUsed, uiCurrPointsUsed, uiMaxPointsUsed, uiParallelPointsUsed; UINT32 uiPointsUsed, uiCurrPointsUsed, uiMaxPointsUsed, uiParallelPointsUsed;
@@ -3723,7 +3730,7 @@ void RenderSoldierCellHealth( SOLDIERCELL *pCell )
mprintf( xp, yp, pStr ); mprintf( xp, yp, pStr );
} }
static UINT8 GetUnusedMercProfileID() UINT8 GetUnusedMercProfileID()
{ {
UINT8 ubRandom=0; UINT8 ubRandom=0;
INT32 i; INT32 i;
@@ -3818,7 +3825,7 @@ void DetermineTeamLeader( BOOLEAN fFriendlyTeam )
} }
} }
static void ResetNextAttackCounter( SOLDIERCELL *pCell ) void ResetNextAttackCounter( SOLDIERCELL *pCell )
{ {
pCell->usNextAttack = min( 1000 - pCell->usAttack, 800 ); pCell->usNextAttack = min( 1000 - pCell->usAttack, 800 );
pCell->usNextAttack = (UINT16)(1000 + pCell->usNextAttack * 5 + PreRandom( 2000 - pCell->usAttack ) ); pCell->usNextAttack = (UINT16)(1000 + pCell->usNextAttack * 5 + PreRandom( 2000 - pCell->usAttack ) );
@@ -3828,7 +3835,7 @@ static void ResetNextAttackCounter( SOLDIERCELL *pCell )
} }
} }
static FLOAT CalcClassBonusOrPenalty( SOLDIERTYPE *pSoldier ) FLOAT CalcClassBonusOrPenalty( SOLDIERTYPE *pSoldier )
{ {
switch( pSoldier->ubSoldierClass ) switch( pSoldier->ubSoldierClass )
{ {
@@ -4108,7 +4115,7 @@ void DrawDebugText( SOLDIERCELL *pCell )
} }
} }
static SOLDIERCELL* ChooseTarget( SOLDIERCELL *pAttacker ) SOLDIERCELL* ChooseTarget( SOLDIERCELL *pAttacker )
{ {
INT32 iAvailableTargets; INT32 iAvailableTargets;
INT32 index; INT32 index;
@@ -4178,7 +4185,7 @@ static SOLDIERCELL* ChooseTarget( SOLDIERCELL *pAttacker )
return NULL; return NULL;
} }
static BOOLEAN FireAShot( SOLDIERCELL *pAttacker ) BOOLEAN FireAShot( SOLDIERCELL *pAttacker )
{ {
OBJECTTYPE *pItem; OBJECTTYPE *pItem;
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
@@ -4232,7 +4239,7 @@ static BOOLEAN FireAShot( SOLDIERCELL *pAttacker )
return FALSE; return FALSE;
} }
static BOOLEAN FireTankCannon( SOLDIERCELL *pAttacker ) BOOLEAN FireTankCannon( SOLDIERCELL *pAttacker )
{ {
OBJECTTYPE *pItem; OBJECTTYPE *pItem;
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
@@ -4274,7 +4281,7 @@ static BOOLEAN FireTankCannon( SOLDIERCELL *pAttacker )
return FALSE; return FALSE;
} }
static BOOLEAN FireAntiTankWeapon( SOLDIERCELL *pAttacker ) BOOLEAN FireAntiTankWeapon( SOLDIERCELL *pAttacker )
{ {
OBJECTTYPE *pItem; OBJECTTYPE *pItem;
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
@@ -4329,7 +4336,7 @@ static BOOLEAN FireAntiTankWeapon( SOLDIERCELL *pAttacker )
return FALSE; return FALSE;
} }
static BOOLEAN AttackerHasKnife( SOLDIERCELL *pAttacker ) BOOLEAN AttackerHasKnife( SOLDIERCELL *pAttacker )
{ {
UINT8 invsize = pAttacker->pSoldier->inv.size(); UINT8 invsize = pAttacker->pSoldier->inv.size();
for( UINT8 i = 0; i < invsize; ++i ) for( UINT8 i = 0; i < invsize; ++i )
@@ -4344,7 +4351,7 @@ static BOOLEAN AttackerHasKnife( SOLDIERCELL *pAttacker )
return FALSE; return FALSE;
} }
static BOOLEAN TargetHasLoadedGun( SOLDIERTYPE *pSoldier ) BOOLEAN TargetHasLoadedGun( SOLDIERTYPE *pSoldier )
{ {
OBJECTTYPE *pItem; OBJECTTYPE *pItem;
UINT8 invsize = pSoldier->inv.size(); UINT8 invsize = pSoldier->inv.size();
@@ -4366,7 +4373,7 @@ static BOOLEAN TargetHasLoadedGun( SOLDIERTYPE *pSoldier )
return FALSE; return FALSE;
} }
static void AttackTarget( SOLDIERCELL *pAttacker, SOLDIERCELL *pTarget ) void AttackTarget( SOLDIERCELL *pAttacker, SOLDIERCELL *pTarget )
{ {
INT16 sAttack; INT16 sAttack;
INT16 sDefence; INT16 sDefence;
@@ -4986,7 +4993,7 @@ static void AttackTarget( SOLDIERCELL *pAttacker, SOLDIERCELL *pTarget )
} }
} }
static void TargetHitCallback( SOLDIERCELL *pTarget, INT32 index ) void TargetHitCallback( SOLDIERCELL *pTarget, INT32 index )
{ {
INT32 iNewLife; INT32 iNewLife;
SOLDIERCELL *pAttacker; SOLDIERCELL *pAttacker;
@@ -5300,7 +5307,7 @@ static void TargetHitCallback( SOLDIERCELL *pTarget, INT32 index )
pTarget->uiFlags |= CELL_HITBYATTACKER | CELL_DIRTY; pTarget->uiFlags |= CELL_HITBYATTACKER | CELL_DIRTY;
} }
static void Delay( UINT32 uiMilliseconds ) void Delay( UINT32 uiMilliseconds )
{ {
INT32 iTime; INT32 iTime;
iTime = GetJA2Clock(); iTime = GetJA2Clock();
+5 -2
View File
@@ -3,6 +3,8 @@
#include "Campaign Init.h" #include "Campaign Init.h"
#include "random.h" #include "random.h"
#include "Campaign Types.h" #include "Campaign Types.h"
#include "Queen Command.h"
#include "Overhead.h"
#include "Strategic Movement.h" #include "Strategic Movement.h"
#include "Strategic Status.h" #include "Strategic Status.h"
#include "GameSettings.h" #include "GameSettings.h"
@@ -13,6 +15,7 @@
#include "Tactical Save.h" #include "Tactical Save.h"
#include "connect.h" #include "connect.h"
#include <vfs/Core/vfs.h>
#include "XMLWriter.h" #include "XMLWriter.h"
#include "UndergroundInit.h" #include "UndergroundInit.h"
@@ -306,7 +309,7 @@ void InitKnowFacilitiesFlags( )
//Mobile groups are handled separately from sectors, because they are on the move. //Mobile groups are handled separately from sectors, because they are on the move.
static void GeneratePatrolGroups() void GeneratePatrolGroups()
{ {
GROUP *pGroup; GROUP *pGroup;
UINT8 ubNumTroops; UINT8 ubNumTroops;
@@ -524,7 +527,7 @@ void BuildUndergroundSectorInfoList()
// Lesh: this function creates randomized world // Lesh: this function creates randomized world
// every sector can be randomized between common and alternative, chances 50/50 // every sector can be randomized between common and alternative, chances 50/50
// randomization of individual sectors can be switched off via array RandomSector[] // randomization of individual sectors can be switched off via array RandomSector[]
static void InitWorld() void InitWorld()
{ {
INT16 sSectorCounter; INT16 sSectorCounter;
+13 -8
View File
@@ -24,11 +24,16 @@
#include "Animation Data.h" #include "Animation Data.h"
#include "opplist.h" #include "opplist.h"
#include "Meanwhile.h" #include "Meanwhile.h"
#include "Strategic AI.h"
#include "MessageBoxScreen.h"
#include "Map Information.h" #include "Map Information.h"
#include "Queen Command.h" #include "Queen Command.h"
#include "ai.h" // added by Flugente #include "ai.h" // added by Flugente
#include "Isometric Utils.h" // added by Flugente
#include "Soldier Create.h" // added by Flugente #include "Soldier Create.h" // added by Flugente
#include "Player Command.h" // added by Flugente
#include "Strategic Mines.h"
#include "connect.h" #include "connect.h"
#include "GameInitOptionsScreen.h" #include "GameInitOptionsScreen.h"
@@ -155,7 +160,7 @@ extern SECTOR_EXT_DATA SectorExternalData[256][4];
//extern MINE_STATUS_TYPE gMineStatus[ MAX_NUMBER_OF_MINES ]; //extern MINE_STATUS_TYPE gMineStatus[ MAX_NUMBER_OF_MINES ];
static CREATURE_DIRECTIVE* NewDirective( UINT8 ubSectorID, UINT8 ubSectorZ, UINT8 ubCreatureHabitat ) CREATURE_DIRECTIVE* NewDirective( UINT8 ubSectorID, UINT8 ubSectorZ, UINT8 ubCreatureHabitat )
{ {
CREATURE_DIRECTIVE *curr; CREATURE_DIRECTIVE *curr;
UINT8 ubSectorX, ubSectorY; UINT8 ubSectorX, ubSectorY;
@@ -273,7 +278,7 @@ void InitLairGrumm()
} }
*/ */
static void InitLair(INT32 iChosenMine) void InitLair(INT32 iChosenMine)
{ {
CREATURE_DIRECTIVE *curr; CREATURE_DIRECTIVE *curr;
giLairID = iChosenMine; giLairID = iChosenMine;
@@ -512,7 +517,7 @@ void InitCreatureQuest()
} }
} }
static void AddCreatureToNode( CREATURE_DIRECTIVE *node ) void AddCreatureToNode( CREATURE_DIRECTIVE *node )
{ {
node->pLevel->ubNumCreatures++; node->pLevel->ubNumCreatures++;
@@ -524,7 +529,7 @@ static void AddCreatureToNode( CREATURE_DIRECTIVE *node )
} }
} }
static BOOLEAN PlaceNewCreature( CREATURE_DIRECTIVE *node, INT32 iDistance ) BOOLEAN PlaceNewCreature( CREATURE_DIRECTIVE *node, INT32 iDistance )
{ {
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,"CreatureSpreading1"); DebugMsg (TOPIC_JA2,DBG_LEVEL_3,"CreatureSpreading1");
if( !node ) if( !node )
@@ -672,7 +677,7 @@ void DecayCreatures()
} }
static void AddCreaturesToBattle( UINT8 ubNumYoungMales, UINT8 ubNumYoungFemales, UINT8 ubNumAdultMales, UINT8 ubNumAdultFemales ) void AddCreaturesToBattle( UINT8 ubNumYoungMales, UINT8 ubNumYoungFemales, UINT8 ubNumAdultMales, UINT8 ubNumAdultFemales )
{ {
INT32 iRandom; INT32 iRandom;
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
@@ -759,7 +764,7 @@ static void AddCreaturesToBattle( UINT8 ubNumYoungMales, UINT8 ubNumYoungFemales
AllTeamsLookForAll( FALSE ); AllTeamsLookForAll( FALSE );
} }
static void AddCreaturesToBattle_Other( UINT8 ubNum ) void AddCreaturesToBattle_Other( UINT8 ubNum )
{ {
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
MAPEDGEPOINTINFO MapEdgepointInfo = {}; MAPEDGEPOINTINFO MapEdgepointInfo = {};
@@ -846,7 +851,7 @@ static void AddCreaturesToBattle_Other( UINT8 ubNum )
AllTeamsLookForAll( FALSE ); AllTeamsLookForAll( FALSE );
} }
static void ChooseTownSectorToAttack( UINT8 ubSectorID, BOOLEAN fOverrideTest ) void ChooseTownSectorToAttack( UINT8 ubSectorID, BOOLEAN fOverrideTest )
{ {
INT32 iRandom, i; INT32 iRandom, i;
UINT8 ubSectorX, ubSectorY; UINT8 ubSectorX, ubSectorY;
@@ -1477,7 +1482,7 @@ void ChooseCreatureQuestStartDay()
} }
} }
static void DeleteDirectiveNode( CREATURE_DIRECTIVE **node ) void DeleteDirectiveNode( CREATURE_DIRECTIVE **node )
{ {
if( (*node)->next ) if( (*node)->next )
DeleteDirectiveNode( &((*node)->next) ); DeleteDirectiveNode( &((*node)->next) );
+6 -2
View File
@@ -12,6 +12,7 @@
#include "Facilities.h" #include "Facilities.h"
#include "Soldier Control.h" #include "Soldier Control.h"
#include "Map Screen Interface.h" #include "Map Screen Interface.h"
#include "Overhead.h"
#include "Assignments.h" #include "Assignments.h"
#include "GameSettings.h" #include "GameSettings.h"
#include "LaptopSave.h" #include "LaptopSave.h"
@@ -28,7 +29,10 @@
#include "Interface.h" #include "Interface.h"
#include "message.h" #include "message.h"
#include "Morale.h" #include "Morale.h"
#include "Points.h"
#include "Soldier Control.h"
#include "Isometric Utils.h" #include "Isometric Utils.h"
#include "MilitiaSquads.h"
#include "Tactical Save.h" #include "Tactical Save.h"
#include <random> #include <random>
@@ -1993,8 +1997,8 @@ INT32 GetTotalFacilityHourlyCosts( BOOLEAN fPositive )
pSoldier = gCharactersList[ ubCounter ].usSolID; pSoldier = gCharactersList[ ubCounter ].usSolID;
// Is character truly valid? // Is character truly valid?
if( pSoldier != NULL && !( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) && if( !( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) &&
pSoldier->bSectorZ == 0 && pSoldier->bSectorZ == 0 && pSoldier != NULL &&
pSoldier->stats.bLife >= OKLIFE && pSoldier->stats.bLife >= OKLIFE &&
!(pSoldier->flags.fMercAsleep) ) !(pSoldier->flags.fMercAsleep) )
{ {
+25 -21
View File
@@ -1,24 +1,28 @@
#include "sgp.h" #include "sgp.h"
#include "Game Clock.h" #include "Game Clock.h"
#include "Font.h" #include "Font.h"
#include "Render Dirty.h" #include "Render Dirty.h"
#include "Timer Control.h" #include "Timer Control.h"
#include "Overhead.h" #include "Overhead.h"
#include "environment.h" #include "environment.h"
#include "message.h" #include "Game Clock.h"
#include <mousesystem.h> #include "message.h"
#include "MercTextBox.h" #include "Game Events.h"
#include "renderworld.h" #include "Assignments.h"
#include "lighting.h" #include "MercTextBox.h"
#include "Map Screen Interface.h" #include "renderworld.h"
#include "Event Pump.h" #include "lighting.h"
#include "Text.h" #include "Map Screen Interface.h"
#include "Interface Control.h" #include "PreBattle Interface.h"
#include "Map Screen Interface Map.h" #include "Event Pump.h"
#include "Map Screen Interface Bottom.h" #include "Text.h"
#include "gamescreen.h" #include "Interface Control.h"
#include "Map Information.h" #include "Map Screen Interface Map.h"
#include "GameSettings.h" #include "Map Screen Interface Bottom.h"
#include "gamescreen.h"
#include "Map Information.h"
#include "GameSettings.h"
#include "LuaInitNPCs.h" #include "LuaInitNPCs.h"
//#define DEBUG_GAME_CLOCK //#define DEBUG_GAME_CLOCK
+5 -1
View File
@@ -17,12 +17,14 @@
#include "Strategic Movement.h" #include "Strategic Movement.h"
#include "Assignments.h" #include "Assignments.h"
#include "Strategic Mines.h" #include "Strategic Mines.h"
#include "Strategic Town Loyalty.h"
#include "message.h" #include "message.h"
#include "Map Screen Interface.h" #include "Map Screen Interface.h"
#include "Map Screen Helicopter.h" #include "Map Screen Helicopter.h"
#include "Scheduling.h" #include "Scheduling.h"
#include "Arms Dealer Init.h" #include "Arms Dealer Init.h"
#include "strategic town reputation.h" #include "strategic town reputation.h"
#include "Air Raid.h"
#include "Meanwhile.h" #include "Meanwhile.h"
#include "Overhead.h" #include "Overhead.h"
#include "random.h" #include "random.h"
@@ -30,6 +32,7 @@
#include "Strategic AI.h" #include "Strategic AI.h"
#include "Merc Contract.h" #include "Merc Contract.h"
#include "Strategic Status.h" #include "Strategic Status.h"
#include "INIReader.h"
#include "GameSettings.h" #include "GameSettings.h"
#include "english.h" #include "english.h"
#include "input.h" #include "input.h"
@@ -47,6 +50,7 @@
#include "Rebel Command.h" #include "Rebel Command.h"
#include "interface Dialogue.h" #include "interface Dialogue.h"
#include "connect.h"
#ifdef JA2UB #ifdef JA2UB
#include "Explosion Control.h" #include "Explosion Control.h"
@@ -81,7 +85,7 @@ void CrippledVersionEndGameCheck();
static BOOLEAN DelayEventIfBattleInProgress( STRATEGICEVENT *pEvent ) BOOLEAN DelayEventIfBattleInProgress( STRATEGICEVENT *pEvent )
{ {
STRATEGICEVENT *pNewEvent; STRATEGICEVENT *pNewEvent;
if( gTacticalStatus.fEnemyInSector ) if( gTacticalStatus.fEnemyInSector )
+1 -1
View File
@@ -214,7 +214,7 @@ BOOLEAN DeleteEventsWithDeletionPending()
} }
static void AdjustClockToEventStamp( STRATEGICEVENT *pEvent, UINT32 *puiAdjustment ) void AdjustClockToEventStamp( STRATEGICEVENT *pEvent, UINT32 *puiAdjustment )
{ {
UINT32 uiDiff; UINT32 uiDiff;
+13 -4
View File
@@ -9,9 +9,11 @@
#include "Soldier Profile.h" #include "Soldier Profile.h"
#include "strategicmap.h" #include "strategicmap.h"
#include "Game Init.h" #include "Game Init.h"
#include "finances.h" #include "Animation Data.h"
#include "finances.h"
#include "Soldier Create.h" #include "Soldier Create.h"
#include "strategic.h" #include "Soldier Init List.h"
#include "strategic.h"
#include "history.h" #include "history.h"
#include "merc entering.h" #include "merc entering.h"
#include "Squads.h" #include "Squads.h"
@@ -29,10 +31,12 @@
#include "Creature Spreading.h" #include "Creature Spreading.h"
#include "Quests.h" #include "Quests.h"
#include "Strategic AI.h" #include "Strategic AI.h"
#include "LaptopSave.h"
#include "AimMembers.h" #include "AimMembers.h"
#include "Dialogue Control.h" #include "Dialogue Control.h"
#include "NPC.h" #include "NPC.h"
#include "GameSettings.h" #include "GameSettings.h"
#include "interface Dialogue.h"
#include "Map Screen Interface Border.h" #include "Map Screen Interface Border.h"
#include "Map Screen Helicopter.h" #include "Map Screen Helicopter.h"
#include "Vehicles.h" #include "Vehicles.h"
@@ -47,17 +51,22 @@
// HEADROCK HAM 3.6: Include for adding facility debt reset // HEADROCK HAM 3.6: Include for adding facility debt reset
#include "Facilities.h" #include "Facilities.h"
// HEADROCK HAM 4: Include for initializing Manual Restrictions // HEADROCK HAM 4: Include for initializing Manual Restrictions
#include "MilitiaSquads.h"
#include "Map Screen Interface Map Inventory.h"//dnl ch51 081009 #include "Map Screen Interface Map Inventory.h"//dnl ch51 081009
#include "CampaignStats.h" // added by Flugente #include "CampaignStats.h" // added by Flugente
#include "PMC.h" // added by Flugente #include "PMC.h" // added by Flugente
#include "ASD.h" // added by Flugente
#include "MiniEvents.h" #include "MiniEvents.h"
#include "Rebel Command.h" #include "Rebel Command.h"
#include "World Items.h" #include "World Items.h"
#include "Vehicles.h"
#include "Text.h"
#include "connect.h" #include "connect.h"
#include "XML.h" #include "XML.h"
#include "mercs.h" #include "mercs.h"
#include "aim.h" #include "aim.h"
#include "Map Screen Interface.h"
#ifdef JA2UB #ifdef JA2UB
#include "Ja25 Strategic Ai.h" #include "Ja25 Strategic Ai.h"
#include "Ja25_Tactical.h" #include "Ja25_Tactical.h"
@@ -96,14 +105,14 @@ UINT8 gubCheatLevel = STARTING_CHEAT_LEVEL;
UINT8 gubScreenCount=0; UINT8 gubScreenCount=0;
#ifdef JA2UB #ifdef JA2UB
static void InitCustomStrategicLayer ( void ) void InitCustomStrategicLayer ( void )
{ {
LetLuaGameInit(2); //load custom InitStrategicLayer LetLuaGameInit(2); //load custom InitStrategicLayer
} }
#endif #endif
static void InitNPCs( void ) void InitNPCs( void )
{ {
#ifdef LUA_GAME_INIT_NPCS #ifdef LUA_GAME_INIT_NPCS
+3 -2
View File
@@ -4,6 +4,7 @@
#include "Strategic Mines.h" #include "Strategic Mines.h"
#include "Campaign.h" #include "Campaign.h"
#include "Morale.h" #include "Morale.h"
#include "Quests.h"
#include "Game Clock.h" #include "Game Clock.h"
#include "Overhead.h" #include "Overhead.h"
#include "jascreens.h" #include "jascreens.h"
@@ -908,7 +909,7 @@ void HourlyStealUpdate()
} }
} }
static BOOLEAN RemoveItemInSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ, UINT16 usItem, UINT32 usNumToRemove ) BOOLEAN RemoveItemInSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ, UINT16 usItem, UINT32 usNumToRemove )
{ {
UINT32 uiTotalNumberOfRealItems = 0; UINT32 uiTotalNumberOfRealItems = 0;
std::vector<WORLDITEM> pWorldItem;//dnl ch75 271013 std::vector<WORLDITEM> pWorldItem;//dnl ch75 271013
@@ -984,7 +985,7 @@ static BOOLEAN RemoveItemInSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ
return FALSE; return FALSE;
} }
static UINT32 CountAccessibleItemsInSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ, UINT16 usItem ) UINT32 CountAccessibleItemsInSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ, UINT16 usItem )
{ {
UINT32 numfound = 0; UINT32 numfound = 0;
UINT32 uiTotalNumberOfRealItems = 0; UINT32 uiTotalNumberOfRealItems = 0;
+56 -96
View File
@@ -145,6 +145,8 @@ void InitJohnKulbaInitialSector();
void FixEnemyCounterInSectorBug(); void FixEnemyCounterInSectorBug();
void AddEnemiesToFirstTunnelSector();
void AddEnemiesToSecondTunnelSector();
UINT8 NumEnemiesToAttackFirstTunnelSector( UINT8 *pAdmins, UINT8 *pTroops, UINT8 *pElites, UINT8 *pTanks, UINT8 *pJeeps, UINT8 *pRobots ); UINT8 NumEnemiesToAttackFirstTunnelSector( UINT8 *pAdmins, UINT8 *pTroops, UINT8 *pElites, UINT8 *pTanks, UINT8 *pJeeps, UINT8 *pRobots );
UINT8 NumEnemiesToAttackSecondTunnelSector( UINT8 *pAdmins, UINT8 *pTroops, UINT8 *pElites, UINT8 *pTanks, UINT8 *pJeeps, UINT8 *pRobots ); UINT8 NumEnemiesToAttackSecondTunnelSector( UINT8 *pAdmins, UINT8 *pTroops, UINT8 *pElites, UINT8 *pTanks, UINT8 *pJeeps, UINT8 *pRobots );
void RemoveAllEnemySoldierInitListLinks(); void RemoveAllEnemySoldierInitListLinks();
@@ -1270,69 +1272,10 @@ void InitJa25StrategicAiBloodcats( )
} }
static BOOLEAN AddEnemiesToSectorPlayerIsIn(INT16 sectorX, INT16 sectorY, INT8 sectorZ, UINT8 admins, UINT8 troops, UINT8 elites)
{
if ( gGameUBOptions.pJA2UB == TRUE )
{
if ( !(gTacticalStatus.uiFlags & INCOMBAT) )
{
SetEnemyEncounterCode(ENEMY_INVASION_CODE);
}
SetNumberJa25EnemiesInSector(sectorX, sectorY, sectorZ, admins, troops, elites, 0, 0, 0);
SetThisSectorAsEnemyControlled(sectorX, sectorY, sectorZ, FALSE);
//Set up flag so enemies will go and find the player in that sector
gJa25SaveStruct.fEnemyShouldImmediatelySeekThePlayer = TRUE;
gJa25SaveStruct.bSectorTheEnemyWillSeekEnemy = SECTOR(sectorX, sectorY);
}
return(TRUE);
}
static void AddEnemiesToFirstTunnelSector()
{
const auto x1 = gGameUBOptions.Tunnel1_SectorX;
const auto y1 = gGameUBOptions.Tunnel1_SectorY;
const auto z1 = gGameUBOptions.Tunnel1_SectorZ;
UINT8 ubNumAdmins = 0;
UINT8 ubNumTroops = 0;
UINT8 ubNumElites = 0;
UINT8 ubNumTanks = 0;
UINT8 ubNumJeeps = 0;
UINT8 ubNumRobots = 0;
NumEnemiesToAttackFirstTunnelSector(&ubNumAdmins, &ubNumTroops, &ubNumElites, &ubNumTanks, &ubNumJeeps, &ubNumRobots);
SetNumberJa25EnemiesInSector(x1, y1, z1, ubNumAdmins, ubNumTroops, ubNumElites, ubNumTanks, ubNumJeeps, ubNumRobots);
}
static void AddEnemiesToSecondTunnelSector()
{
const auto x2 = gGameUBOptions.Tunnel2_SectorX;
const auto y2 = gGameUBOptions.Tunnel2_SectorY;
const auto z2 = gGameUBOptions.Tunnel2_SectorZ;
UINT8 ubNumAdmins = 0;
UINT8 ubNumTroops = 0;
UINT8 ubNumElites = 0;
UINT8 ubNumTanks = 0;
UINT8 ubNumJeeps = 0;
UINT8 ubNumRobots = 0;
NumEnemiesToAttackSecondTunnelSector(&ubNumAdmins, &ubNumTroops, &ubNumElites, &ubNumTanks, &ubNumJeeps, &ubNumRobots);
SetNumberJa25EnemiesInSector(x2, y2, z2, ubNumAdmins, ubNumTroops, ubNumElites, ubNumTanks, ubNumJeeps, ubNumRobots);
}
void HandleAddingEnemiesToTunnelMaps() void HandleAddingEnemiesToTunnelMaps()
{ {
UINT8 ubNumEnemies = 0; BOOLEAN fInCombat = ( gTacticalStatus.uiFlags & INCOMBAT );
UINT8 ubNumAdmins = 0; UINT8 ubNumEnemies=0;
UINT8 ubNumTroops = 0;
UINT8 ubNumElites = 0;
//if the player has been in the complex //if the player has been in the complex
if( HaveMercsEverBeenInComplex() ) if( HaveMercsEverBeenInComplex() )
@@ -1341,35 +1284,21 @@ void HandleAddingEnemiesToTunnelMaps()
return; return;
} }
const auto x1 = gGameUBOptions.Tunnel1_SectorX;
const auto y1 = gGameUBOptions.Tunnel1_SectorY;
const auto z1 = gGameUBOptions.Tunnel1_SectorZ;
const auto x2 = gGameUBOptions.Tunnel2_SectorX;
const auto y2 = gGameUBOptions.Tunnel2_SectorY;
const auto z2 = gGameUBOptions.Tunnel2_SectorZ;
const bool isPlayerInFirstTunnel = AreAnyPlayerMercsStillInSector(x1, y1, z1);
const bool isPlayerInSecondTunnel = AreAnyPlayerMercsStillInSector(x2, y2, z2);
//if the player IS NOT in either of the tunnel sectors //if the player IS NOT in either of the tunnel sectors
if( !isPlayerInFirstTunnel && !isPlayerInSecondTunnel ) if( !AreAnyPlayerMercsStillInSector( 14, 10, 1 ) &&
!AreAnyPlayerMercsStillInSector( 14, 11, 1 ) )
{ {
// Add enemies to both sectors if fan was blown up AddEnemiesToJa25TunnelMaps();
if ( gJa25SaveStruct.ubHowPlayerGotThroughFan == PG__PLAYER_BLEW_UP_FAN_TO_GET_THROUGH )
{
AddEnemiesToFirstTunnelSector();
AddEnemiesToSecondTunnelSector();
}
} }
//else if the player IS NOT in the 2nd sector but is in the first sector //else if the player IS NOT in the 2nd sector but in the first sector
else if( isPlayerInFirstTunnel && !isPlayerInSecondTunnel ) else if( AreAnyPlayerMercsStillInSector( 14, 10, 1 ) &&
!AreAnyPlayerMercsStillInSector( 14, 11, 1 ) )
{ {
ubNumEnemies = NumEnemiesToAttackFirstTunnelSector(&ubNumAdmins, &ubNumTroops, &ubNumElites, NULL, NULL, NULL ); ubNumEnemies = NumEnemiesToAttackFirstTunnelSector( NULL, NULL, NULL, NULL, NULL, NULL );
//Add enemies to the first sector //Add enemies to the first sector
AddEnemiesToSectorPlayerIsIn( x1, y1, z1, ubNumAdmins, ubNumTroops, ubNumElites); HandleAddEnemiesToSectorPlayerIsntIn( JA25_J14_1, ubNumEnemies );
//Remember to move the enemies to be in the entrance to the tunnel //Remember to move the enemies to be in the entrance to the tunnel
SetJa25GeneralFlag( JA_GF__MOVE_ENEMIES_TO_EDGE_IN_TUNNEL_1 ); SetJa25GeneralFlag( JA_GF__MOVE_ENEMIES_TO_EDGE_IN_TUNNEL_1 );
@@ -1378,17 +1307,58 @@ void HandleAddingEnemiesToTunnelMaps()
} }
//else if the player is in the second sector //else if the player is in the second sector
else if( isPlayerInSecondTunnel ) else if( AreAnyPlayerMercsStillInSector( 14, 11, 1 ) )
{ {
ubNumEnemies = NumEnemiesToAttackSecondTunnelSector(&ubNumAdmins, &ubNumTroops, &ubNumElites, NULL, NULL, NULL ); ubNumEnemies = NumEnemiesToAttackSecondTunnelSector( NULL, NULL, NULL, NULL, NULL, NULL );
AddEnemiesToSectorPlayerIsIn(x2, y2, z2, ubNumAdmins, ubNumTroops, ubNumElites); //Add enemies to the first sector
HandleAddEnemiesToSectorPlayerIsntIn( JA25_K14_1, ubNumEnemies );
//Remember to move the enemies to be in the entrance to the tunnel //Remember to move the enemies to be in the entrance to the tunnel
SetJa25GeneralFlag( JA_GF__MOVE_ENEMIES_TO_EDGE_IN_TUNNEL_2 ); SetJa25GeneralFlag( JA_GF__MOVE_ENEMIES_TO_EDGE_IN_TUNNEL_2 );
} }
} }
void AddEnemiesToJa25TunnelMaps()
{
if( gJa25SaveStruct.ubHowPlayerGotThroughFan == PG__PLAYER_BLEW_UP_FAN_TO_GET_THROUGH )
{
//if the player blew up the fan, add a ton of enemies to the sector
AddEnemiesToFirstTunnelSector();
AddEnemiesToSecondTunnelSector();
}
else if( gJa25SaveStruct.ubHowPlayerGotThroughFan == PG__PLAYER_STOPPED_FAN_TO_GET_THROUGH )
{
}
}
void AddEnemiesToFirstTunnelSector()
{
UINT8 ubNumAdmins=0;
UINT8 ubNumTroops=0;
UINT8 ubNumElites=0;
UINT8 ubNumTanks=0;
UINT8 ubNumJeeps=0;
UINT8 ubNumRobots=0;
NumEnemiesToAttackFirstTunnelSector( &ubNumAdmins, &ubNumTroops, &ubNumElites, &ubNumTanks, &ubNumJeeps, &ubNumRobots );
SetNumberJa25EnemiesInSector( 14, 10, 1, ubNumAdmins, ubNumTroops, ubNumElites, ubNumTanks, ubNumJeeps, ubNumRobots );
}
void AddEnemiesToSecondTunnelSector()
{
UINT8 ubNumAdmins=0;
UINT8 ubNumTroops=0;
UINT8 ubNumElites=0;
UINT8 ubNumTanks=0;
UINT8 ubNumJeeps=0;
UINT8 ubNumRobots=0;
NumEnemiesToAttackSecondTunnelSector( &ubNumAdmins, &ubNumTroops, &ubNumElites, &ubNumTanks, &ubNumJeeps, &ubNumRobots );
SetNumberJa25EnemiesInSector( 14, 11, 1, ubNumAdmins, ubNumTroops, ubNumElites, ubNumTanks, ubNumJeeps, ubNumRobots );
}
UINT8 NumEnemiesToAttackFirstTunnelSector( UINT8 *pAdmins, UINT8 *pTroops, UINT8 *pElites, UINT8 *pTanks, UINT8 *pJeeps, UINT8 *pRobots ) UINT8 NumEnemiesToAttackFirstTunnelSector( UINT8 *pAdmins, UINT8 *pTroops, UINT8 *pElites, UINT8 *pTanks, UINT8 *pJeeps, UINT8 *pRobots )
{ {
@@ -1418,11 +1388,6 @@ UINT8 NumEnemiesToAttackFirstTunnelSector( UINT8 *pAdmins, UINT8 *pTroops, UINT8
ubNumTroops = 4 + Random( 0 ); ubNumTroops = 4 + Random( 0 );
ubNumElites = 4 + Random( 0 ); ubNumElites = 4 + Random( 0 );
break; break;
case DIF_LEVEL_INSANE:
ubNumAdmins = 0 + Random(0);
ubNumTroops = 0 + Random(0);
ubNumElites = 8 + Random(0);
break;
} }
if( pAdmins ) if( pAdmins )
@@ -1475,11 +1440,6 @@ UINT8 NumEnemiesToAttackSecondTunnelSector( UINT8 *pAdmins, UINT8 *pTroops, UINT
ubNumTroops = 6 + Random( 0 ); ubNumTroops = 6 + Random( 0 );
ubNumElites = 4 + Random( 3 ); ubNumElites = 4 + Random( 3 );
break; break;
case DIF_LEVEL_INSANE:
ubNumAdmins = 0 + Random(0);
ubNumTroops = 0 + Random(0);
ubNumElites = 10 + Random(0);
break;
} }
if( pAdmins ) if( pAdmins )
+1
View File
@@ -199,6 +199,7 @@ BOOLEAN SaveJa25SaveInfoToSaveGame( HWFILE hFile );
BOOLEAN LoadJa25SaveInfoFromSavedGame( HWFILE hFile ); BOOLEAN LoadJa25SaveInfoFromSavedGame( HWFILE hFile );
void AddEnemiesToJa25TunnelMaps();
void HandleAddingEnemiesToTunnelMaps(); void HandleAddingEnemiesToTunnelMaps();
void SetJa25GeneralFlag( UINT32 uiFlagToSet ); void SetJa25GeneralFlag( UINT32 uiFlagToSet );
+12 -31
View File
@@ -5,8 +5,7 @@
#include "Strategic Mines.h" #include "Strategic Mines.h"
#include "BobbyRMailOrder.h" #include "BobbyRMailOrder.h"
#include "Tactical Save.h" #include "Tactical Save.h"
#include "Strategic Movement.h" #include "connect.h"
#include <Soldier Create.h>
#include "FileMan.h" #include "FileMan.h"
#include "GameSettings.h" #include "GameSettings.h"
#include "Game Init.h" #include "Game Init.h"
@@ -30,6 +29,7 @@
#include "Explosion Control.h" #include "Explosion Control.h"
#include "soldier tile.h" #include "soldier tile.h"
#include "Soldier Profile.h" #include "Soldier Profile.h"
#include "Soldier Functions.h"
#include "Action Items.h" #include "Action Items.h"
#include "AIInternals.h" #include "AIInternals.h"
#include "Handle Doors.h" #include "Handle Doors.h"
@@ -72,6 +72,7 @@ extern "C" {
#include "lua_state.h" #include "lua_state.h"
#include "lua_function.h" #include "lua_function.h"
#include "Encrypted File.h"
#include "BriefingRoom_Data.h" #include "BriefingRoom_Data.h"
#include "MiniGame.h" // added by Flugente #include "MiniGame.h" // added by Flugente
@@ -949,7 +950,7 @@ void IniLuaGlobal()
} }
} }
static void IniGlobal_0(lua_State* L) void IniGlobal_0(lua_State* L)
{ {
lua_pushinteger(L, PROFILLUA_sSectorX); lua_pushinteger(L, PROFILLUA_sSectorX);
@@ -978,7 +979,7 @@ static void IniGlobal_0(lua_State* L)
} }
static void IniGlobal_1(lua_State* L) void IniGlobal_1(lua_State* L)
{ {
lua_pushinteger(L, PROFILLUA2_ubProfile); lua_pushinteger(L, PROFILLUA2_ubProfile);
lua_setglobal(L, "ProfileId"); lua_setglobal(L, "ProfileId");
@@ -999,7 +1000,7 @@ static void IniGlobal_1(lua_State* L)
lua_setglobal(L, "ProfileIdsGridNo"); lua_setglobal(L, "ProfileIdsGridNo");
} }
static void IniFunction(lua_State* L, BOOLEAN bQuests) void IniFunction(lua_State* L, BOOLEAN bQuests)
{ {
lua_register(L, "HireMerc", l_HireMerc); lua_register(L, "HireMerc", l_HireMerc);
@@ -2242,38 +2243,18 @@ static int l_SetNumberOfJa25BloodCatsInSector(lua_State* L)
static int l_SetNumberJa25EnemiesInSurfaceSector(lua_State* L) static int l_SetNumberJa25EnemiesInSurfaceSector(lua_State* L)
{ {
if ( lua_gettop(L) >= 3 ) if (lua_gettop(L) >= 6)
{ {
INT16 sSectorX = lua_tointeger(L, 1); INT16 sSectorX = lua_tointeger(L, 1);
INT16 sSectorY = lua_tointeger(L, 2); INT16 sSectorY = lua_tointeger(L, 2);
UINT8 ubNumAdmins = lua_tointeger(L, 3); UINT8 ubNumAdmins = lua_tointeger(L, 3);
UINT8 ubNumTroops = 0; UINT8 ubNumTroops = lua_tointeger(L, 4);
UINT8 ubNumElites = 0; UINT8 ubNumElites = lua_tointeger(L, 5);
UINT8 ubNumTanks = 0; UINT8 ubNumTanks = lua_tointeger(L, 6);
//TODO: expand lua call to include these two
UINT8 ubNumJeeps = 0; UINT8 ubNumJeeps = 0;
UINT8 ubNumRobots = 0; UINT8 ubNumRobots = 0;
if ( lua_gettop(L) >= 4 )
{
ubNumTroops = lua_tointeger(L, 4);
}
if ( lua_gettop(L) >= 5 )
{
ubNumElites = lua_tointeger(L, 5);
}
if ( lua_gettop(L) >= 6 )
{
ubNumTanks = lua_tointeger(L, 6);
}
if ( lua_gettop(L) >= 7 )
{
ubNumJeeps = lua_tointeger(L, 7);
}
if ( lua_gettop(L) >= 8 )
{
ubNumRobots = lua_tointeger(L, 8);
}
SetNumberJa25EnemiesInSurfaceSector(SECTOR(sSectorX, sSectorY), ubNumAdmins, ubNumTroops, ubNumElites, ubNumTanks, ubNumJeeps, ubNumRobots); SetNumberJa25EnemiesInSurfaceSector(SECTOR(sSectorX, sSectorY), ubNumAdmins, ubNumTroops, ubNumElites, ubNumTanks, ubNumJeeps, ubNumRobots);
} }
@@ -2900,7 +2881,7 @@ BOOLEAN LuaIDScripts(UINT8 Init, UINT8 ubTargetNPC, UINT16 usActionCode, UINT8 u
// Neither one of the function arguments are used inside the function and the only place where this is called // Neither one of the function arguments are used inside the function and the only place where this is called
// makes it look like it *is* supposed to match against specific profile *and* restrict the search to player mercs. // makes it look like it *is* supposed to match against specific profile *and* restrict the search to player mercs.
// That last part makes no sense since player mercs are part of OUR_TEAM // That last part makes no sense since player mercs are part of OUR_TEAM
static SOLDIERTYPE* FindSoldierByProfileID2(UINT8 ubProfileID, BOOLEAN fPlayerMercsOnly) SOLDIERTYPE* FindSoldierByProfileID2(UINT8 ubProfileID, BOOLEAN fPlayerMercsOnly)
{ {
SoldierID soldier = gTacticalStatus.Team[CIV_TEAM].bFirstID; SoldierID soldier = gTacticalStatus.Team[CIV_TEAM].bFirstID;
SoldierID lastid = gTacticalStatus.Team[CIV_TEAM].bLastID; SoldierID lastid = gTacticalStatus.Team[CIV_TEAM].bLastID;
+47 -40
View File
@@ -1,41 +1,48 @@
#include "Map Screen Helicopter.h" #include "Map Screen Helicopter.h"
#include "LaptopSave.h" #include "LaptopSave.h"
#include "Vehicles.h"
#include "finances.h"
#include "Quests.h"
#include "Game Clock.h"
#include "strategic.h"
#include "Queen Command.h"
#include "Strategic Pathing.h"
#include "random.h"
#include "Game Event Hook.h"
#include "string.h"
#include "Dialogue Control.h"
#include "message.h"
#include "Strategic Movement.h"
#include "Soldier Profile.h"
#include "Assignments.h"
#include "PreBattle Interface.h"
#include "strategicmap.h"
#include "worlddef.h"
#include "worldman.h"
#include "TileDat.h"
#include "Map Screen Interface.h"
#include "Text.h"
#include "Squads.h"
#include "Player Command.h"
#include "Sound Control.h"
#include "GameSettings.h"
#include "Meanwhile.h"
#include "Map Screen Interface Border.h"
#include "Strategic Event Handler.h"
#include "Overhead.h"
#include "Soldier Create.h"
#include "renderworld.h"
#include "soundman.h"
#include "Isometric Utils.h"
#include "Scheduling.h"
// HEADROCK HAM 3.5: Added facility-based skyrider costs modifier
#include "Facilities.h"
#include "Debug Control.h"
#include "expat.h"
#include "merc entering.h" // added by Flugente
#include "ASD.h" // added by Flugente
#include "Vehicles.h" #include "Vehicles.h"
#include "finances.h"
#include "Quests.h"
#include "Game Clock.h"
#include "strategic.h"
#include "Queen Command.h"
#include "Strategic Pathing.h"
#include "random.h"
#include "Game Event Hook.h"
#include "string.h"
#include "Dialogue Control.h"
#include "message.h"
#include "Strategic Movement.h"
#include "Soldier Profile.h"
#include "Assignments.h"
#include "strategicmap.h"
#include "worlddef.h"
#include "worldman.h"
#include "Map Screen Interface.h"
#include "Text.h"
#include "Squads.h"
#include "Sound Control.h"
#include "GameSettings.h"
#include "Meanwhile.h"
#include "Map Screen Interface Border.h"
#include "Overhead.h"
#include "Soldier Create.h"
#include "renderworld.h"
#include "Isometric Utils.h"
#include "Scheduling.h"
// HEADROCK HAM 3.5: Added facility-based skyrider costs modifier
#include "Facilities.h"
#include "Debug Control.h"
#include "expat.h"
#include "merc entering.h" // added by Flugente
#include "ASD.h" // added by Flugente
#include "NPC.h" #include "NPC.h"
#include "history.h" #include "history.h"
@@ -503,7 +510,7 @@ BOOLEAN ReadInHeliInfo(STR fileName)
return TRUE; return TRUE;
} }
static BOOLEAN WriteInInfo(STR fileName) BOOLEAN WriteInInfo(STR fileName)
{ {
HWFILE hFile; HWFILE hFile;
@@ -2439,7 +2446,7 @@ BOOLEAN WillAirRaidBeStopped( INT16 sSectorX, INT16 sSectorY )
return( FALSE ); return( FALSE );
} }
static void HeliCrashSoundStopCallback( void *pData ) void HeliCrashSoundStopCallback( void *pData )
{ {
SkyriderDestroyed( ); SkyriderDestroyed( );
} }
@@ -2582,7 +2589,7 @@ BOOLEAN CanHelicopterTakeOff( void )
return( FALSE ); return( FALSE );
} }
static void AddHeliPiece( INT32 iGridNo, UINT16 sOStruct ) void AddHeliPiece( INT32 iGridNo, UINT16 sOStruct )
{ {
UINT16 usDummy; UINT16 usDummy;
+13 -13
View File
@@ -303,7 +303,7 @@ BOOLEAN BeginAirRaid( )
} }
static INT32 PickLocationNearAnyMercInSector( ) INT32 PickLocationNearAnyMercInSector( )
{ {
UINT16 ubMercsInSector[ 20 ] = { 0 }; UINT16 ubMercsInSector[ 20 ] = { 0 };
UINT16 ubNumMercs = 0; UINT16 ubNumMercs = 0;
@@ -344,7 +344,7 @@ static INT32 PickLocationNearAnyMercInSector( )
return( NOWHERE ); return( NOWHERE );
} }
static INT32 PickRandomLocationAtMinSpacesAway( INT32 sGridNo, INT16 sMinValue, INT16 sRandomVar ) INT32 PickRandomLocationAtMinSpacesAway( INT32 sGridNo, INT16 sMinValue, INT16 sRandomVar )
{ {
INT32 sNewGridNo = NOWHERE; INT32 sNewGridNo = NOWHERE;
INT16 sX, sY, sNewX, sNewY; INT16 sX, sY, sNewX, sNewY;
@@ -382,7 +382,7 @@ static INT32 PickRandomLocationAtMinSpacesAway( INT32 sGridNo, INT16 sMinValue,
return( sNewGridNo ); return( sNewGridNo );
} }
static void TryToStartRaid( ) void TryToStartRaid( )
{ {
// OK, check conditions, // OK, check conditions,
@@ -414,7 +414,7 @@ static void TryToStartRaid( )
} }
static void AirRaidStart( ) void AirRaidStart( )
{ {
DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("AirRaidStart")); DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("AirRaidStart"));
// Begin ambient sound.... // Begin ambient sound....
@@ -434,7 +434,7 @@ static void AirRaidStart( )
} }
} }
static void AirRaidLookForDive( ) void AirRaidLookForDive( )
{ {
BOOLEAN fDoDive = FALSE; BOOLEAN fDoDive = FALSE;
BOOLEAN fDoQuote = FALSE; BOOLEAN fDoQuote = FALSE;
@@ -558,7 +558,7 @@ static void AirRaidLookForDive( )
} }
static void AirRaidStartEnding( ) void AirRaidStartEnding( )
{ {
DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("AirRaidStartEnding")); DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("AirRaidStartEnding"));
// Fade out sound..... // Fade out sound.....
@@ -566,7 +566,7 @@ static void AirRaidStartEnding( )
} }
static void BeginBombing( ) void BeginBombing( )
{ {
INT32 sGridNo; INT32 sGridNo;
UINT32 iSoundStartDelay; UINT32 iSoundStartDelay;
@@ -623,7 +623,7 @@ static void BeginBombing( )
static void BeginDive( ) void BeginDive( )
{ {
INT32 sGridNo; INT32 sGridNo;
UINT32 iSoundStartDelay; UINT32 iSoundStartDelay;
@@ -681,7 +681,7 @@ static void BeginDive( )
} }
static void MoveDiveAirplane( FLOAT dAngle ) void MoveDiveAirplane( FLOAT dAngle )
{ {
FLOAT dDeltaPos; FLOAT dDeltaPos;
@@ -701,7 +701,7 @@ static void MoveDiveAirplane( FLOAT dAngle )
} }
static void DoDive( ) void DoDive( )
{ {
INT16 sRange; INT16 sRange;
INT32 sGridNo, sOldGridNo; INT32 sGridNo, sOldGridNo;
@@ -877,7 +877,7 @@ static void DoDive( )
} }
static void DoBombing( ) void DoBombing( )
{ {
INT16 sRange; INT16 sRange;
INT32 sGridNo, sOldGridNo, sBombGridNo; INT32 sGridNo, sOldGridNo, sBombGridNo;
@@ -1498,7 +1498,7 @@ void EndAirRaid( )
} }
// Madd // Madd
static void CheckForAndSetupAirRaid () void CheckForAndSetupAirRaid ()
{ {
//INT16 sSectorX; //INT16 sSectorX;
//INT16 sSectorY; //INT16 sSectorY;
@@ -1577,7 +1577,7 @@ static void CheckForAndSetupAirRaid ()
//} //}
} }
static void EnemyCallInAirStrike (INT16 sSectorX, INT16 sSectorY) void EnemyCallInAirStrike (INT16 sSectorX, INT16 sSectorY)
{ {
//AIR_RAID_DEFINITION AirRaidDef; //AIR_RAID_DEFINITION AirRaidDef;
+6 -1
View File
@@ -1,14 +1,19 @@
#include "builddefines.h"
#include <stdio.h>
#include <string.h> #include <string.h>
#include "stdlib.h"
#include "DEBUG.H" #include "DEBUG.H"
#include "Animation Control.h" #include "Animation Control.h"
#include "Animation Data.h" #include "Animation Data.h"
#include "FileMan.h" #include "FileMan.h"
#include "Weapons.h"
#include "message.h" #include "message.h"
#include "structure.h" #include "structure.h"
#include "worlddef.h" #include "worlddef.h"
#include "worldman.h" #include "worldman.h"
#include "Rotting Corpses.h" #include "Rotting Corpses.h"
#include "Debug Control.h" #include "Debug Control.h"
#include "random.h"
#include "Soldier Control.h" #include "Soldier Control.h"
#include "connect.h" #include "connect.h"
@@ -3725,7 +3730,7 @@ BOOLEAN LoadAnimationStateInstructions( )
} }
//ddd Trick for loading more than 320 animation files (?) //ddd Trick for loading more than 320 animation files (?)
UINT16 fuckTheBoundz[320][100] {}; UINT16 fuckTheBoundz[320][100];
//Read in block //Read in block
//if ( !FileRead( hFile, gusAnimInst, sizeof( gusAnimInst ), &uiBytesRead ) ) //commentet by ddd //if ( !FileRead( hFile, gusAnimInst, sizeof( gusAnimInst ), &uiBytesRead ) ) //commentet by ddd
+1 -1
View File
@@ -913,7 +913,7 @@ BOOLEAN DeInitAnimationSystem( )
static STRUCTURE_FILE_REF *InternalGetAnimationStructureRef( SoldierID usSoldierID, UINT16 usSurfaceIndex, UINT16 usAnimState, BOOLEAN fUseAbsolute ) STRUCTURE_FILE_REF *InternalGetAnimationStructureRef( SoldierID usSoldierID, UINT16 usSurfaceIndex, UINT16 usAnimState, BOOLEAN fUseAbsolute )
{ {
INT8 bStructDataType; INT8 bStructDataType;
+7 -3
View File
@@ -1,17 +1,20 @@
#include "types.h" #include "types.h"
#include <cstdlib> #include "stdlib.h"
#include "Arms Dealer Init.h" #include "Arms Dealer Init.h"
#include "string.h"
#include "DEBUG.H" #include "DEBUG.H"
#include "random.h" #include "random.h"
#include "Weapons.h" #include "Weapons.h"
#include "FileMan.h" #include "FileMan.h"
#include "Game Clock.h" #include "Game Clock.h"
#include "ArmsDealerInvInit.h" #include "ArmsDealerInvInit.h"
#include "message.h"
#include "Soldier Profile.h" #include "Soldier Profile.h"
#include "Handle Items.h" #include "Handle Items.h"
#include "Quests.h" #include "Quests.h"
#include "Scheduling.h" #include "Scheduling.h"
#include "GameSettings.h" #include "GameSettings.h"
#include "Overhead.h" // added by Flugente for MercPtrs[]
#include "LuaInitNPCs.h" // added by Flugente #include "LuaInitNPCs.h" // added by Flugente
#ifdef JA2UB #ifdef JA2UB
@@ -73,6 +76,8 @@ UINT8 DetermineDealerItemCondition( UINT8 ubArmsDealer, UINT16 usItemIndex );
BOOLEAN DoesItemAppearInDealerInventoryList( UINT8 ubArmsDealer, UINT16 usItemIndex, BOOLEAN fPurchaseFromPlayer ); BOOLEAN DoesItemAppearInDealerInventoryList( UINT8 ubArmsDealer, UINT16 usItemIndex, BOOLEAN fPurchaseFromPlayer );
#ifdef JA2UB #ifdef JA2UB
UINT8 GetFirstValidSpecialItemFromDealer( UINT8 ubArmsDealer, INT16 sItemIndex );
void AddTexsVideosToBettysInventory(); void AddTexsVideosToBettysInventory();
BOOLEAN CanThisItemBeSoldToSimulatedCustomer( UINT8 ubArmsDealerID, UINT16 usItemIndex ); BOOLEAN CanThisItemBeSoldToSimulatedCustomer( UINT8 ubArmsDealerID, UINT16 usItemIndex );
#endif #endif
@@ -197,7 +202,7 @@ void AddArmsDealerAdditionalIntelData( UINT16 ausDealer, UINT16 usItem, INT16 sI
gArmsDealerAdditionalIntelData[ausDealer].push_back( data ); gArmsDealerAdditionalIntelData[ausDealer].push_back( data );
} }
static void ArmsDealers_ReadIntelData() void ArmsDealers_ReadIntelData()
{ {
gArmsDealerAdditionalIntelData.clear(); gArmsDealerAdditionalIntelData.clear();
@@ -982,7 +987,6 @@ UINT32 GetArmsDealerItemTypeFromItemNumber( UINT16 usItem )
return( 0 ); return( 0 );
} }
// else treat as blade // else treat as blade
[[fallthrough]];
case IC_BLADE: case IC_BLADE:
case IC_THROWING_KNIFE: case IC_THROWING_KNIFE:
return( ARMS_DEALER_BLADE ); return( ARMS_DEALER_BLADE );
+3 -2
View File
@@ -10,6 +10,7 @@
#include "LaptopSave.h" #include "LaptopSave.h"
#include "BobbyR.h" #include "BobbyR.h"
#include "random.h" #include "random.h"
#include "ShopKeeper Interface.h"
#include "connect.h" #include "connect.h"
#include "Rebel Command.h" #include "Rebel Command.h"
@@ -688,7 +689,7 @@ DEALER_POSSIBLE_INV gArmsDealerAdditional[ADDITIONAL_ARMS_DEALERS][MAXITEMS+1];
// prototypes // prototypes
static INT8 GetMaxItemAmount( DEALER_POSSIBLE_INV *pInv, UINT16 usItemIndex ) INT8 GetMaxItemAmount( DEALER_POSSIBLE_INV *pInv, UINT16 usItemIndex )
{ {
UINT16 usCnt = 0; UINT16 usCnt = 0;
@@ -926,7 +927,7 @@ DEALER_POSSIBLE_INV *GetPointerToDealersPossibleInventory( UINT16 ubArmsDealerID
} }
//Madd: added boolean fUsed //Madd: added boolean fUsed
static UINT8 GetCurrentSuitabilityForItem( INT8 bArmsDealer, UINT16 usItemIndex, BOOLEAN fUsed ) UINT8 GetCurrentSuitabilityForItem( INT8 bArmsDealer, UINT16 usItemIndex, BOOLEAN fUsed )
{ {
unsigned ubItemCoolness; unsigned ubItemCoolness;
unsigned ubMinCoolness, ubMaxCoolness; unsigned ubMinCoolness, ubMaxCoolness;
+6 -1
View File
@@ -21,9 +21,12 @@
#include "Map Screen Interface.h" #include "Map Screen Interface.h"
#include "Soldier Profile.h" #include "Soldier Profile.h"
#include "Assignments.h" #include "Assignments.h"
#include "WordWrap.h"
#include "Cursors.h" #include "Cursors.h"
#include "english.h" #include "english.h"
#include "SkillCheck.h" // added by Flugente
#include "Music Control.h"
// max number of merc faces per row in autobandage box // max number of merc faces per row in autobandage box
#define NUMBER_MERC_FACES_AUTOBANDAGE_BOX 4 #define NUMBER_MERC_FACES_AUTOBANDAGE_BOX 4
@@ -66,11 +69,13 @@ std::vector<INT32> giAutoBandagesSoldierFaces (2*CODE_MAXIMUM_NUMBER_OF_PLAYER_S
BOOLEAN fAutoEndBandageButtonCreated = FALSE; BOOLEAN fAutoEndBandageButtonCreated = FALSE;
void BeginAutoBandageCallBack( UINT8 bExitValue ); void BeginAutoBandageCallBack( UINT8 bExitValue );
void CancelAutoBandageCallBack( UINT8 bExitValue );
// the update box for autobandaging mercs // the update box for autobandaging mercs
void CreateTerminateAutoBandageButton( INT16 sX, INT16 sY ); void CreateTerminateAutoBandageButton( INT16 sX, INT16 sY );
void DestroyTerminateAutoBandageButton( void ); void DestroyTerminateAutoBandageButton( void );
void DisplayAutoBandageUpdatePanel( void ); void DisplayAutoBandageUpdatePanel( void );
void EndAutobandageButtonCallback(GUI_BUTTON *btn,INT32 reason);
void SetUpAutoBandageUpdatePanel( void ); void SetUpAutoBandageUpdatePanel( void );
BOOLEAN AddFacesToAutoBandageBox( void ); BOOLEAN AddFacesToAutoBandageBox( void );
BOOLEAN RenderSoldierSmallFaceForAutoBandagePanel( INT32 iIndex, INT16 sCurrentXPosition, INT16 sCurrentYPosition ); BOOLEAN RenderSoldierSmallFaceForAutoBandagePanel( INT32 iIndex, INT16 sCurrentXPosition, INT16 sCurrentYPosition );
@@ -298,7 +303,7 @@ BOOLEAN HandleAutoBandage( )
} }
static BOOLEAN CreateAutoBandageString( void ) BOOLEAN CreateAutoBandageString( void )
{ {
// WDS - make number of mercenaries, etc. be configurable // WDS - make number of mercenaries, etc. be configurable
UINT16 ubDoctor[CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS], ubDoctors = 0; UINT16 ubDoctor[CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS], ubDoctors = 0;
+4 -3
View File
@@ -8,6 +8,7 @@
#include "NPC.h" #include "NPC.h"
#include "opplist.h" #include "opplist.h"
#include "ai.h" #include "ai.h"
#include "Dialogue Control.h"
#include "Handle UI.h" #include "Handle UI.h"
#include "Points.h" #include "Points.h"
#include "Interface.h" #include "Interface.h"
@@ -18,9 +19,9 @@
#include "strategicmap.h" #include "strategicmap.h"
#include "Game Clock.h" #include "Game Clock.h"
#include "Animation Data.h" #include "Animation Data.h"
#include "Font Control.h"
#include "message.h"
#include "GameSettings.h" // added by SANDRO #include "GameSettings.h" // added by SANDRO
#include <Font Control.h>
#include <message.h>
INT32 gsBoxerGridNo[ NUM_BOXERS ] = { 11393, 11233, 11073 }; INT32 gsBoxerGridNo[ NUM_BOXERS ] = { 11393, 11233, 11073 };
SoldierID gubBoxerID[ NUM_BOXERS ] = { NOBODY, NOBODY, NOBODY }; SoldierID gubBoxerID[ NUM_BOXERS ] = { NOBODY, NOBODY, NOBODY };
@@ -209,7 +210,7 @@ UINT8 CountPeopleInBoxingRing( void )
return( ubTotalInRing ); return( ubTotalInRing );
} }
static void CountPeopleInBoxingRingAndDoActions( void ) void CountPeopleInBoxingRingAndDoActions( void )
{ {
UINT32 uiLoop; UINT32 uiLoop;
UINT8 ubTotalInRing = 0; UINT8 ubTotalInRing = 0;
+4 -1
View File
@@ -1,13 +1,16 @@
#include "builddefines.h" #include "builddefines.h"
#include <wchar.h>
#include <stdio.h> #include <stdio.h>
#include <string.h>
#include "stdlib.h" #include "stdlib.h"
#include "DEBUG.H" #include "DEBUG.H"
#include "MemMan.h"
#include "Overhead Types.h" #include "Overhead Types.h"
#include "random.h" #include "random.h"
#include "Campaign.h" #include "Campaign.h"
#include "Dialogue Control.h" #include "Dialogue Control.h"
#include "Font Control.h" #include "Map Screen Interface.h"
#include "message.h" #include "message.h"
#include "Game Clock.h" #include "Game Clock.h"
#include "Strategic Mines.h" #include "Strategic Mines.h"
+26 -21
View File
@@ -1,4 +1,5 @@
#include "sgp.h" #include "sgp.h"
//#include "Soldier Control.h"
#include "Encrypted File.h" #include "Encrypted File.h"
#include "faces.h" #include "faces.h"
#include "WCheck.h" #include "WCheck.h"
@@ -38,6 +39,7 @@
#include "Meanwhile.h" #include "Meanwhile.h"
#include "SkillCheck.h" #include "SkillCheck.h"
#include "Interface Control.h" #include "Interface Control.h"
#include "finances.h"
#include "Civ Quotes.h" #include "Civ Quotes.h"
#include "Map Screen Interface Map.h" #include "Map Screen Interface Map.h"
#include "opplist.h" #include "opplist.h"
@@ -48,8 +50,10 @@
#include "End Game.h" #include "End Game.h"
#include "LOS.h" #include "LOS.h"
#include "qarray.h" #include "qarray.h"
#include "Soldier Profile.h"
#include <vector> #include <vector>
#include <queue> #include <queue>
#include "Auto Resolve.h"
#include "connect.h" #include "connect.h"
#ifdef JA2UB #ifdef JA2UB
@@ -58,9 +62,9 @@
#include "Ja25 Strategic Ai.h" #include "Ja25 Strategic Ai.h"
#include "Ja25_Tactical.h" #include "Ja25_Tactical.h"
#include "Animation Control.h" #include "Animation Control.h"
#include "ub_config.h"
#endif #endif
#include "ub_config.h"
#include "history.h" #include "history.h"
#include <language.hpp> #include <language.hpp>
@@ -462,22 +466,6 @@ void HandleDialogueUIAdjustments( )
} }
// Flugente: additional dialogue
extern void LuaHandleAdditionalDialogue(INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ, UINT8 ubProfile, INT32 iFaceIndex, UINT16 usEventNr, UINT32 aData1, UINT32 aData2, UINT32 aData3);
static BOOLEAN ExecuteAdditionalCharacterDialogue(UINT8 ubProfile, INT32 iFaceIndex, UINT16 usEventNr, UINT32 aData1, UINT32 aData2, UINT32 aData3)
{
SOLDIERTYPE* pSoldier = FindSoldierByProfileID(ubProfile, TRUE);
if ( !pSoldier )
return FALSE;
// call Lua script on whether we can play something here, and get text and sound file
LuaHandleAdditionalDialogue(pSoldier->sSectorX, pSoldier->sSectorY, pSoldier->bSectorZ, ubProfile, iFaceIndex, usEventNr, aData1, aData2, aData3);
return(TRUE);
}
void HandleDialogue( ) void HandleDialogue( )
{ {
@@ -1343,6 +1331,8 @@ void HandleDialogue( )
gubCurrentTalkingID = QItem.iFaceIndex; gubCurrentTalkingID = QItem.iFaceIndex;
extern BOOLEAN ExecuteAdditionalCharacterDialogue( UINT8 ubProfile, INT32 iFaceIndex, UINT16 usEventNr, UINT32 aData1, UINT32 aData2, UINT32 aData3 );
ExecuteAdditionalCharacterDialogue( QItem.ubCharacterNum, QItem.iFaceIndex, QItem.usQuoteNum, QItem.uiSpecialEventData2, QItem.uiSpecialEventData3, QItem.uiSpecialEventData4 ); ExecuteAdditionalCharacterDialogue( QItem.ubCharacterNum, QItem.iFaceIndex, QItem.usQuoteNum, QItem.uiSpecialEventData2, QItem.uiSpecialEventData3, QItem.uiSpecialEventData4 );
} }
@@ -2190,6 +2180,21 @@ BOOLEAN ExecuteSnitchCharacterDialogue( UINT8 ubCharacterNum, UINT16 usQuoteNum,
return( TRUE ); return( TRUE );
} }
// Flugente: additional dialogue
extern void LuaHandleAdditionalDialogue( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ, UINT8 ubProfile, INT32 iFaceIndex, UINT16 usEventNr, UINT32 aData1, UINT32 aData2, UINT32 aData3 );
BOOLEAN ExecuteAdditionalCharacterDialogue( UINT8 ubProfile, INT32 iFaceIndex, UINT16 usEventNr, UINT32 aData1, UINT32 aData2, UINT32 aData3 )
{
SOLDIERTYPE *pSoldier = FindSoldierByProfileID( ubProfile, TRUE );
if ( !pSoldier )
return FALSE;
// call Lua script on whether we can play something here, and get text and sound file
LuaHandleAdditionalDialogue( pSoldier->sSectorX, pSoldier->sSectorY, pSoldier->bSectorZ, ubProfile, iFaceIndex, usEventNr, aData1, aData2, aData3 );
return( TRUE );
}
void SetQuoteStr( STR16 aStr ) void SetQuoteStr( STR16 aStr )
{ {
@@ -2301,7 +2306,7 @@ void CreateTalkingUI( INT8 bUIHandlerID, INT32 iFaceIndex, UINT8 ubCharacterNum,
} }
static CHAR8 *GetDialogueDataFilename( UINT8 ubCharacterNum, UINT16 usQuoteNum, BOOLEAN fWavFile ) CHAR8 *GetDialogueDataFilename( UINT8 ubCharacterNum, UINT16 usQuoteNum, BOOLEAN fWavFile )
{ {
static CHAR8 zFileName[164]; static CHAR8 zFileName[164];
static CHAR8 zFileNameHelper[164]; static CHAR8 zFileNameHelper[164];
@@ -2439,7 +2444,7 @@ static CHAR8 *GetDialogueDataFilename( UINT8 ubCharacterNum, UINT16 usQuoteNum,
return( zFileName ); return( zFileName );
} }
static CHAR8 *GetSnitchDialogueDataFilename( UINT8 ubCharacterNum, UINT16 usQuoteNum, BOOLEAN fWavFile, BOOLEAN fName ) CHAR8 *GetSnitchDialogueDataFilename( UINT8 ubCharacterNum, UINT16 usQuoteNum, BOOLEAN fWavFile, BOOLEAN fName )
{ {
static CHAR8 zFileName[164]; static CHAR8 zFileName[164];
static CHAR8 zFilename_Used[164]; static CHAR8 zFilename_Used[164];
@@ -2488,7 +2493,7 @@ BOOLEAN DialogueDataFileExistsForProfile( UINT8 ubCharacterNum, UINT16 usQuoteNu
return( FileExists( pFilename ) ); return( FileExists( pFilename ) );
} }
static BOOLEAN SnitchDialogueDataFileExistsForProfile( UINT8 ubCharacterNum, UINT16 usQuoteNum, BOOLEAN fWavFile, STR8 *ppStr, BOOLEAN fName ) BOOLEAN SnitchDialogueDataFileExistsForProfile( UINT8 ubCharacterNum, UINT16 usQuoteNum, BOOLEAN fWavFile, STR8 *ppStr, BOOLEAN fName )
{ {
STR8 pFilename; STR8 pFilename;
@@ -3608,7 +3613,7 @@ void UnSetEngagedInConvFromPCAction( SOLDIERTYPE *pSoldier )
} }
static BOOLEAN IsStopTimeQuote( UINT16 usQuoteNum ) BOOLEAN IsStopTimeQuote( UINT16 usQuoteNum )
{ {
INT32 cnt; INT32 cnt;
+4
View File
@@ -8,7 +8,9 @@
#include "Overhead.h" #include "Overhead.h"
#include "random.h" #include "random.h"
#include "Assignments.h" #include "Assignments.h"
#include "message.h"
#include "Soldier Profile.h" #include "Soldier Profile.h"
#include "Map Screen Interface Map.h"
#include "Queen Command.h" #include "Queen Command.h"
#include "Quests.h" #include "Quests.h"
#include "finances.h" #include "finances.h"
@@ -16,7 +18,9 @@
#include "LaptopSave.h" #include "LaptopSave.h"
#include "strategic.h" #include "strategic.h"
#include "DynamicDialogue.h" #include "DynamicDialogue.h"
#include <math.h>
#include "Drugs And Alcohol.h" // for DoesMercHaveDisability( ... ) #include "Drugs And Alcohol.h" // for DoesMercHaveDisability( ... )
#include "environment.h"
//GLOBALS //GLOBALS
DISEASE Disease[NUM_DISEASES]; DISEASE Disease[NUM_DISEASES];
+10 -4
View File
@@ -1,6 +1,7 @@
#include "builddefines.h" #include "builddefines.h"
#include "types.h" #include "types.h"
#include "Isometric Utils.h" #include "Isometric Utils.h"
//#include "Soldier Control.h"
#include "Overhead.h" #include "Overhead.h"
#include "DisplayCover.h" #include "DisplayCover.h"
#include "Font Control.h" #include "Font Control.h"
@@ -9,6 +10,8 @@
#include "GameSettings.h" #include "GameSettings.h"
#include "renderworld.h" #include "renderworld.h"
#include "Interface.h" #include "Interface.h"
#include "DEBUG.H"
#include "PATHAI.H"
#include "worldman.h" #include "worldman.h"
#include "opplist.h" #include "opplist.h"
#include "LOS.h" #include "LOS.h"
@@ -16,6 +19,9 @@
#include "Game Clock.h" #include "Game Clock.h"
#include "Animation Control.h" #include "Animation Control.h"
#include "lighting.h" #include "lighting.h"
#include "Text.h"
#include "strategicmap.h"
#include "Render Fun.h"
// HEADROCK HAM B2.7: Allow calling a CTH approximation function for the CTH display ("F" key) // HEADROCK HAM B2.7: Allow calling a CTH approximation function for the CTH display ("F" key)
#include "UI Cursors.h" #include "UI Cursors.h"
#include "soldier profile type.h" #include "soldier profile type.h"
@@ -92,7 +98,7 @@ BOOLEAN IsTheRoofVisible( const INT32& sGridNo );
BOOLEAN HasAdjTile(const INT32& ubX, const INT32& ubY, const INT32& ubZ); BOOLEAN HasAdjTile(const INT32& ubX, const INT32& ubY, const INT32& ubZ);
static TileDefines GetOverlayIndex( INT8 bOverlayType ) TileDefines GetOverlayIndex( INT8 bOverlayType )
{ {
switch ( bOverlayType ) switch ( bOverlayType )
{ {
@@ -435,7 +441,7 @@ void RemoveCoverObjectsFromViewArea()
gNoRedraw = (gubDrawMode == DRAW_MODE_OFF); gNoRedraw = (gubDrawMode == DRAW_MODE_OFF);
} }
static void updateCoverViewArea() void updateCoverViewArea()
{ {
INT16 usTmp; INT16 usTmp;
GetScreenXYWorldCell(gsVIEWPORT_START_X, gsVIEWPORT_START_Y, &gsMinCellX, &usTmp); GetScreenXYWorldCell(gsVIEWPORT_START_X, gsVIEWPORT_START_Y, &gsMinCellX, &usTmp);
@@ -1524,7 +1530,7 @@ void AddTraitObjectsToViewArea()
} }
} }
static BOOLEAN TraitTileHasAdjTile( const INT32& ubX, const INT32& ubY, const INT32& ubZ ) BOOLEAN TraitTileHasAdjTile( const INT32& ubX, const INT32& ubY, const INT32& ubZ )
{ {
INT32 ubTX, ubTY; INT32 ubTX, ubTY;
@@ -1678,7 +1684,7 @@ void AddTrackerObjectsToViewArea( )
} }
} }
static BOOLEAN TrackerTileHasAdjTile( const INT32& ubX, const INT32& ubY, const INT32& ubZ ) BOOLEAN TrackerTileHasAdjTile( const INT32& ubX, const INT32& ubY, const INT32& ubZ )
{ {
INT32 ubTX, ubTY; INT32 ubTX, ubTY;
+8 -5
View File
@@ -1,9 +1,13 @@
#include "Overhead.h" #include "Overhead.h"
#include "Render Fun.h"
#include "random.h"
#include "worldman.h" #include "worldman.h"
#include "Soldier Profile.h" #include "Soldier Profile.h"
#include "NPC.h" #include "NPC.h"
#include "ai.h"
#include "Dialogue Control.h" #include "Dialogue Control.h"
#include "Handle UI.h"
#include "End Game.h" #include "End Game.h"
#include "Intro.h" #include "Intro.h"
#include "Exit Grids.h" #include "Exit Grids.h"
@@ -37,7 +41,6 @@
#include "Game Init.h" #include "Game Init.h"
#include "interface Dialogue.h" #include "interface Dialogue.h"
#include "ub_config.h" #include "ub_config.h"
#include "Handle UI.h"
void HandleAddingTheEndGameEmails(); void HandleAddingTheEndGameEmails();
void EndFadeToCredits( void ); void EndFadeToCredits( void );
@@ -146,7 +149,7 @@ void ChangeO3SectorStatue( BOOLEAN fFromExplosion )
#ifdef JA2UB #ifdef JA2UB
//Ja25 no queen //Ja25 no queen
#else #else
static void DeidrannaTimerCallback( void ) void DeidrannaTimerCallback( void )
{ {
HandleDeidrannaDeath( gpKillerSoldier, gsGridNo, gbLevel ); HandleDeidrannaDeath( gpKillerSoldier, gsGridNo, gbLevel );
} }
@@ -216,7 +219,7 @@ void HandleDeidrannaDeath( SOLDIERTYPE *pKillerSoldier, INT32 sGridNo, INT8 bLev
SpecialCharacterDialogueEvent( DIALOGUE_SPECIAL_EVENT_MULTIPURPOSE, MULTIPURPOSE_SPECIAL_EVENT_DONE_KILLING_DEIDRANNA, 0,0,0,0 ); SpecialCharacterDialogueEvent( DIALOGUE_SPECIAL_EVENT_MULTIPURPOSE, MULTIPURPOSE_SPECIAL_EVENT_DONE_KILLING_DEIDRANNA, 0,0,0,0 );
} }
static void DoneFadeInKilledQueen( void ) void DoneFadeInKilledQueen( void )
{ {
SOLDIERTYPE *pNPCSoldier; SOLDIERTYPE *pNPCSoldier;
@@ -235,7 +238,7 @@ static void DoneFadeInKilledQueen( void )
} }
static void DoneFadeOutKilledQueen( void ) void DoneFadeOutKilledQueen( void )
{ {
SoldierID cnt; SoldierID cnt;
SOLDIERTYPE *pSoldier, *pTeamSoldier; SOLDIERTYPE *pSoldier, *pTeamSoldier;
@@ -417,7 +420,7 @@ EndQueenDeathEndgame( );
static void QueenBitchTimerCallback( void ) void QueenBitchTimerCallback( void )
{ {
#ifdef JA2UB #ifdef JA2UB
//no Ub //no Ub
+4 -2
View File
@@ -3,8 +3,11 @@
#include "DEBUG.H" #include "DEBUG.H"
#include "Items.h" #include "Items.h"
#include "GameSettings.h" #include "GameSettings.h"
#include "screenids.h"
#include "Action Items.h" // added by Flugente for the ACTION_ITEM_BLOW_UP value #include "Action Items.h" // added by Flugente for the ACTION_ITEM_BLOW_UP value
#include "random.h" // added by Flugente
#include "message.h" // added by BOB for missing LBE info messages #include "message.h" // added by BOB for missing LBE info messages
#include "Overhead.h" // added by BOB for missing LBE info messages
#include "Map Screen Interface.h" // added by BOB for missing LBE info messages #include "Map Screen Interface.h" // added by BOB for missing LBE info messages
@@ -24,7 +27,7 @@ extern UINT32 guiCurrentItemDescriptionScreen;
extern BOOLEAN fShowMapInventoryPool; extern BOOLEAN fShowMapInventoryPool;
//extern BOOLEAN AutoPlaceObjectInInventoryStash( OBJECTTYPE *pItemPtr, INT32 sGridNo ); //extern BOOLEAN AutoPlaceObjectInInventoryStash( OBJECTTYPE *pItemPtr, INT32 sGridNo );
static bool checkObjectLBEIntegrity(OBJECTTYPE * object) { bool checkObjectLBEIntegrity(OBJECTTYPE * object) {
bool integrityCheck = TRUE; bool integrityCheck = TRUE;
@@ -1586,7 +1589,6 @@ OBJECTTYPE& OBJECTTYPE::operator=(const OLD_OBJECTTYPE_101& src)
case IC_KEY: case IC_KEY:
(*this)[0]->data.key.ubKeyID = src.ugYucky.ubKeyID; (*this)[0]->data.key.ubKeyID = src.ugYucky.ubKeyID;
break; break;
case IC_MISC:
case IC_GRENADE: case IC_GRENADE:
case IC_BOMB: case IC_BOMB:
(*this)[0]->data.misc.bDetonatorType = src.ugYucky.bDetonatorType; (*this)[0]->data.misc.bDetonatorType = src.ugYucky.bDetonatorType;
+1 -1
View File
@@ -5118,7 +5118,7 @@ INT8 FireBulletGivenTargetNCTH( SOLDIERTYPE * pFirer, FLOAT dEndX, FLOAT dEndY,
fprintf(OutFile, "{ % 9.8f , % 9.8f , % 9.8f , % 9.8f }, //DEBUG: merc %4d fired pellet %4d of %4d using method %4d %12s with SpreadPattern %4d %s\n", fprintf(OutFile, "{ % 9.8f , % 9.8f , % 9.8f , % 9.8f }, //DEBUG: merc %4d fired pellet %4d of %4d using method %4d %12s with SpreadPattern %4d %s\n",
ddRawHorizAngle, ddRawVerticAngle, ddRawHorizAngle, ddRawVerticAngle,
ddHorizAngle, ddVerticAngle, ddHorizAngle, ddVerticAngle,
pFirer->ubID.i, ubLoop, ubShots, pFirer->ubID, ubLoop, ubShots,
gpSpreadPattern[ubSpreadIndex].method, gSpreadPatternMethodNames[gpSpreadPattern[ubSpreadIndex].method], gpSpreadPattern[ubSpreadIndex].method, gSpreadPatternMethodNames[gpSpreadPattern[ubSpreadIndex].method],
ubSpreadIndex, gpSpreadPattern[ubSpreadIndex].Name, ubSpreadIndex, gpSpreadPattern[ubSpreadIndex].Name,
NULL NULL
+42 -34
View File
@@ -5,6 +5,7 @@
#include "WCheck.h" #include "WCheck.h"
#include "stdlib.h" #include "stdlib.h"
#include "DEBUG.H" #include "DEBUG.H"
#include "math.h"
#include "worlddef.h" #include "worlddef.h"
#include "worldman.h" #include "worldman.h"
#include "renderworld.h" #include "renderworld.h"
@@ -15,6 +16,7 @@
#include "Isometric Utils.h" #include "Isometric Utils.h"
#include "Event Pump.h" #include "Event Pump.h"
#include "Timer Control.h" #include "Timer Control.h"
#include "Render Fun.h"
#include "Render Dirty.h" #include "Render Dirty.h"
#include "mousesystem.h" #include "mousesystem.h"
#include "Interface.h" #include "Interface.h"
@@ -35,6 +37,7 @@
#include "screenids.h" #include "screenids.h"
#include "Weapons.h" #include "Weapons.h"
#include "Rotting Corpses.h" #include "Rotting Corpses.h"
#include "lighting.h"
#include "Handle UI Plan.h" #include "Handle UI Plan.h"
#include "structure.h" #include "structure.h"
#include "Interface Panels.h" #include "Interface Panels.h"
@@ -62,6 +65,7 @@
#include "Quests.h" #include "Quests.h"
#include "NPC.h" #include "NPC.h"
#include "strategicmap.h" #include "strategicmap.h"
#include "Soldier Profile.h"
#include "Soldier Functions.h" #include "Soldier Functions.h"
#include "Auto Bandage.h" #include "Auto Bandage.h"
#include "Game Event Hook.h" #include "Game Event Hook.h"
@@ -100,6 +104,7 @@
#include "PreBattle Interface.h" #include "PreBattle Interface.h"
#include "Militia Control.h" #include "Militia Control.h"
#include "Lua Interpreter.h" #include "Lua Interpreter.h"
#include "Bullets.h"
#include "Inventory Choosing.h" // added by Flugente for TakeMilitiaEquipmentfromSector() #include "Inventory Choosing.h" // added by Flugente for TakeMilitiaEquipmentfromSector()
#include "CampaignStats.h" // added by Flugente #include "CampaignStats.h" // added by Flugente
#include "DynamicDialogue.h" // added by Flugente for HandleDynamicOpinions() #include "DynamicDialogue.h" // added by Flugente for HandleDynamicOpinions()
@@ -113,7 +118,9 @@
#include "Luaglobal.h" #include "Luaglobal.h"
#include "LuaInitNPCs.h" #include "LuaInitNPCs.h"
#include "Interface.h"
#include "Vehicles.h" #include "Vehicles.h"
#include "Music Control.h"
#ifdef JA2UB #ifdef JA2UB
#include "Ja25 Strategic Ai.h" #include "Ja25 Strategic Ai.h"
#include "Ja25_Tactical.h" #include "Ja25_Tactical.h"
@@ -440,7 +447,7 @@ INT32 GetFreeMercSlot()
} }
// WTF? // WTF?
static void RecountMercSlots( ) void RecountMercSlots( )
{ {
INT32 iCount; INT32 iCount;
if ( guiNumMercSlots > 0 ) if ( guiNumMercSlots > 0 )
@@ -485,7 +492,7 @@ BOOLEAN RemoveMercSlot( SOLDIERTYPE *pSoldier )
return( FALSE ); return( FALSE );
} }
static INT32 GetFreeAwaySlot( ) INT32 GetFreeAwaySlot( )
{ {
UINT32 uiCount; UINT32 uiCount;
for(uiCount=0; uiCount < guiNumAwaySlots; uiCount++) for(uiCount=0; uiCount < guiNumAwaySlots; uiCount++)
@@ -498,7 +505,7 @@ static INT32 GetFreeAwaySlot( )
return(-1); return(-1);
} }
static void RecountAwaySlots( ) void RecountAwaySlots( )
{ {
INT32 iCount; INT32 iCount;
if ( guiNumAwaySlots > 0 ) if ( guiNumAwaySlots > 0 )
@@ -829,7 +836,7 @@ BOOLEAN GetSoldier( SOLDIERTYPE **ppSoldier, SoldierID usSoldierIndex )
} }
static BOOLEAN NextAIToHandle( UINT32 uiCurrAISlot ) BOOLEAN NextAIToHandle( UINT32 uiCurrAISlot )
{ {
UINT32 cnt; UINT32 cnt;
@@ -2006,7 +2013,7 @@ BOOLEAN ExecuteOverhead( )
return( TRUE ); return( TRUE );
} }
static void HaltGuyFromNewGridNoBecauseOfNoAPs( SOLDIERTYPE *pSoldier ) void HaltGuyFromNewGridNoBecauseOfNoAPs( SOLDIERTYPE *pSoldier )
{ {
HaltMoveForSoldierOutOfPoints( pSoldier ); HaltMoveForSoldierOutOfPoints( pSoldier );
pSoldier->usPendingAnimation = NO_PENDING_ANIMATION; pSoldier->usPendingAnimation = NO_PENDING_ANIMATION;
@@ -2023,7 +2030,7 @@ static void HaltGuyFromNewGridNoBecauseOfNoAPs( SOLDIERTYPE *pSoldier )
UnSetEngagedInConvFromPCAction( pSoldier ); UnSetEngagedInConvFromPCAction( pSoldier );
} }
static void HandleLocateToGuyAsHeWalks( SOLDIERTYPE *pSoldier ) void HandleLocateToGuyAsHeWalks( SOLDIERTYPE *pSoldier )
{ {
// Our guys if option set, // Our guys if option set,
if ( pSoldier->bTeam == gbPlayerNum ) if ( pSoldier->bTeam == gbPlayerNum )
@@ -2269,15 +2276,15 @@ BOOLEAN HandleGotoNewGridNo( SOLDIERTYPE *pSoldier, BOOLEAN *pfKeepMoving, BOOLE
if ( !( gTacticalStatus.uiFlags & INCOMBAT ) ) if ( !( gTacticalStatus.uiFlags & INCOMBAT ) )
{ {
SOLDIERTYPE *pSoldier2; SOLDIERTYPE *pSoldier2;
SoldierID id = gTacticalStatus.Team[gbPlayerNum].bFirstID; SoldierID id = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
// look for all mercs on the same team, // look for all mercs on the same team,
for ( ; id < gTacticalStatus.Team[gbPlayerNum].bLastID; ++id ) for ( ; id >= gTacticalStatus.Team[ gbPlayerNum ].bFirstID; --id )
{ {
pSoldier2 = id; pSoldier2 = id;
if ( pSoldier2->bActive ) if ( pSoldier2->bActive )
{ {
pSoldier2->EVENT_StopMerc(pSoldier2->sGridNo, pSoldier2->ubDirection); pSoldier2->EVENT_StopMerc( pSoldier2->sGridNo, pSoldier2->ubDirection );
} }
} }
} }
@@ -2651,7 +2658,7 @@ BOOLEAN HandleGotoNewGridNo( SOLDIERTYPE *pSoldier, BOOLEAN *pfKeepMoving, BOOLE
return( TRUE ); return( TRUE );
} }
static void HandleMaryArrival( SOLDIERTYPE * pSoldier ) void HandleMaryArrival( SOLDIERTYPE * pSoldier )
{ {
INT32 sDist; INT32 sDist;
@@ -2689,7 +2696,7 @@ static void HandleMaryArrival( SOLDIERTYPE * pSoldier )
} }
static void HandleJohnArrival( SOLDIERTYPE * pSoldier ) void HandleJohnArrival( SOLDIERTYPE * pSoldier )
{ {
SOLDIERTYPE * pSoldier2 = NULL; SOLDIERTYPE * pSoldier2 = NULL;
INT32 sDist; INT32 sDist;
@@ -2975,15 +2982,15 @@ BOOLEAN HandleAtNewGridNo( SOLDIERTYPE *pSoldier, BOOLEAN *pfKeepMoving )
if ( !( gTacticalStatus.uiFlags & INCOMBAT ) ) if ( !( gTacticalStatus.uiFlags & INCOMBAT ) )
{ {
SOLDIERTYPE *pSoldier2; SOLDIERTYPE *pSoldier2;
SoldierID cnt2 = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; SoldierID cnt2 = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
// look for all mercs on the same team, // look for all mercs on the same team,
for ( ; cnt2 < gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt2 ) for ( ; cnt2 >= gTacticalStatus.Team[ gbPlayerNum ].bFirstID; --cnt2 )
{ {
pSoldier2 = cnt2; pSoldier2 = cnt2;
if ( pSoldier2->bActive ) if ( pSoldier2->bActive )
{ {
pSoldier2->EVENT_StopMerc(pSoldier2->sGridNo, pSoldier2->ubDirection); pSoldier2->EVENT_StopMerc( pSoldier2->sGridNo, pSoldier2->ubDirection );
} }
} }
} }
@@ -4686,7 +4693,7 @@ void CivilianGroupChangesSides( UINT8 ubCivilianGroup )
*/ */
} }
static void HickCowAttacked( SOLDIERTYPE * pNastyGuy, SOLDIERTYPE * pTarget ) void HickCowAttacked( SOLDIERTYPE * pNastyGuy, SOLDIERTYPE * pTarget )
{ {
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
@@ -5173,7 +5180,7 @@ BOOLEAN NewOKDestination( SOLDIERTYPE * pCurrSoldier, INT32 sGridNo, BOOLEAN fPe
} }
// NB if making changes don't forget to update NewOKDestination // NB if making changes don't forget to update NewOKDestination
static INT16 NewOKDestinationAndDirection( SOLDIERTYPE * pCurrSoldier, INT32 sGridNo, INT8 bDirection, BOOLEAN fPeopleToo, INT8 bLevel ) INT16 NewOKDestinationAndDirection( SOLDIERTYPE * pCurrSoldier, INT32 sGridNo, INT8 bDirection, BOOLEAN fPeopleToo, INT8 bLevel )
{ {
SoldierID bPerson; SoldierID bPerson;
STRUCTURE *pStructure; STRUCTURE *pStructure;
@@ -6716,7 +6723,7 @@ void SetEnemyPresence()
extern SoldierID gfLastMercTalkedAboutKillingID; extern SoldierID gfLastMercTalkedAboutKillingID;
static BOOLEAN SoldierHasSeenEnemiesLastFewTurns( SOLDIERTYPE *pTeamSoldier ) BOOLEAN SoldierHasSeenEnemiesLastFewTurns( SOLDIERTYPE *pTeamSoldier )
{ {
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
INT32 cnt; INT32 cnt;
@@ -6796,7 +6803,7 @@ BOOLEAN NobodyAlerted( )
} }
static BOOLEAN WeSawSomeoneThisTurn( ) BOOLEAN WeSawSomeoneThisTurn( )
{ {
UINT32 uiLoop, uiLoop2; UINT32 uiLoop, uiLoop2;
SOLDIERTYPE * pSoldier; SOLDIERTYPE * pSoldier;
@@ -6822,7 +6829,7 @@ static BOOLEAN WeSawSomeoneThisTurn( )
} }
static void SayBattleSoundFromAnyBodyInSector( INT32 iBattleSnd ) void SayBattleSoundFromAnyBodyInSector( INT32 iBattleSnd )
{ {
// WDS - make number of mercenaries, etc. be configurable // WDS - make number of mercenaries, etc. be configurable
SoldierID ubMercsInSector[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ] = {}; SoldierID ubMercsInSector[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ] = {};
@@ -7040,7 +7047,7 @@ BOOLEAN CheckForEndOfCombatMode( BOOLEAN fIncrementTurnsNotSeen )
} }
static void DeathNoMessageTimerCallback( ) void DeathNoMessageTimerCallback( )
{ {
//CheckAndHandleUnloadingOfCurrentWorld(); //CheckAndHandleUnloadingOfCurrentWorld();
if(!is_client) if(!is_client)
@@ -7064,7 +7071,7 @@ static void DeathNoMessageTimerCallback( )
} }
// get a vector of all player-controlled sectors with prison facilities. It is assumed that a sector has max. one of these // get a vector of all player-controlled sectors with prison facilities. It is assumed that a sector has max. one of these
static BOOLEAN GetPlayerControlledPrisonList( std::vector<UINT8>& arSectorIDVector ) BOOLEAN GetPlayerControlledPrisonList( std::vector<UINT8>& arSectorIDVector )
{ {
arSectorIDVector.clear(); arSectorIDVector.clear();
@@ -7110,7 +7117,7 @@ extern void DoInterrogation( INT16 sMapX, INT16 sMapY, FLOAT aChanceModifier, IN
// we cannot simply move all prisoners of a sector. It might be a prison we are already using, so we would move all inmates, not just the new ones // we cannot simply move all prisoners of a sector. It might be a prison we are already using, so we would move all inmates, not just the new ones
INT16 gsNumPrisoner[PRISONER_MAX] = {0}; INT16 gsNumPrisoner[PRISONER_MAX] = {0};
static void PrisonerMessageBoxCallBack( UINT8 ubExitValue ) void PrisonerMessageBoxCallBack( UINT8 ubExitValue )
{ {
if ( DropDownTemplate<DROPDOWNNR_MSGBOX_1>::getInstance().GetSelectedEntryKey() < 0 ) if ( DropDownTemplate<DROPDOWNNR_MSGBOX_1>::getInstance().GetSelectedEntryKey() < 0 )
{ {
@@ -7157,7 +7164,7 @@ static void PrisonerMessageBoxCallBack( UINT8 ubExitValue )
CHAR16 gPrisonSectorNamesStr[256][128]; CHAR16 gPrisonSectorNamesStr[256][128];
static void RemoveCapturedEnemiesFromSectorInfo( INT16 sMapX, INT16 sMapY, INT8 bMapZ ) void RemoveCapturedEnemiesFromSectorInfo( INT16 sMapX, INT16 sMapY, INT8 bMapZ )
{ {
SOLDIERTYPE* pTeamSoldier; SOLDIERTYPE* pTeamSoldier;
INT32 cnt = 0; INT32 cnt = 0;
@@ -7338,7 +7345,7 @@ static void RemoveCapturedEnemiesFromSectorInfo( INT16 sMapX, INT16 sMapY, INT8
// Flugente: for campaign stats, we want to know how many people were wounded. // Flugente: for campaign stats, we want to know how many people were wounded.
// Each time we are wounded, we set a 'wounded'-flag // Each time we are wounded, we set a 'wounded'-flag
// Once combat ends, we count all these flags and remove them // Once combat ends, we count all these flags and remove them
static void UpdateWoundedFromSectorInfo( INT16 sMapX, INT16 sMapY, INT8 bMapZ ) void UpdateWoundedFromSectorInfo( INT16 sMapX, INT16 sMapY, INT8 bMapZ )
{ {
SOLDIERTYPE *pSoldier; SOLDIERTYPE *pSoldier;
INT32 cnt = 0; INT32 cnt = 0;
@@ -7363,7 +7370,7 @@ static void UpdateWoundedFromSectorInfo( INT16 sMapX, INT16 sMapY, INT8 bMapZ )
} }
} }
static void RemoveStaticEnemiesFromSectorInfo( INT16 sMapX, INT16 sMapY, INT8 bMapZ ) void RemoveStaticEnemiesFromSectorInfo( INT16 sMapX, INT16 sMapY, INT8 bMapZ )
{ {
if ( !bMapZ ) // Battle ended Above-ground if ( !bMapZ ) // Battle ended Above-ground
{ {
@@ -8572,7 +8579,7 @@ BOOLEAN KillIncompacitatedEnemyInSector( )
static BOOLEAN AttackOnGroupWitnessed( SOLDIERTYPE * pSoldier, SOLDIERTYPE * pTarget ) BOOLEAN AttackOnGroupWitnessed( SOLDIERTYPE * pSoldier, SOLDIERTYPE * pTarget )
{ {
UINT32 uiSlot; UINT32 uiSlot;
SOLDIERTYPE * pGroupMember; SOLDIERTYPE * pGroupMember;
@@ -8728,7 +8735,7 @@ INT8 CalcSuppressionTolerance( SOLDIERTYPE * pSoldier )
extern void IncrementWatchedLoc(UINT16 ubID, INT32 sGridNo, INT8 bLevel); extern void IncrementWatchedLoc(UINT16 ubID, INT32 sGridNo, INT8 bLevel);
static void HandleSuppressionFire( SoldierID ubTargetedMerc, SoldierID ubCausedAttacker ) void HandleSuppressionFire( SoldierID ubTargetedMerc, SoldierID ubCausedAttacker )
{ {
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
@@ -9501,7 +9508,7 @@ BOOLEAN ProcessImplicationsOfPCAttack( SOLDIERTYPE * pSoldier, SOLDIERTYPE ** pp
return( fEnterCombat ); return( fEnterCombat );
} }
static SOLDIERTYPE *InternalReduceAttackBusyCount( ) SOLDIERTYPE *InternalReduceAttackBusyCount( )
{ {
// Strange as this may seem, this function returns a pointer to // Strange as this may seem, this function returns a pointer to
// the *target* in case the target has changed sides as a result // the *target* in case the target has changed sides as a result
@@ -10160,7 +10167,7 @@ void RemoveSoldierFromTacticalSector( SOLDIERTYPE *pSoldier, BOOLEAN fAdjustSele
} }
static void DoneFadeOutDueToDeath( ) void DoneFadeOutDueToDeath( )
{ {
// Quit game.... // Quit game....
InternalLeaveTacticalScreen( MAINMENU_SCREEN ); InternalLeaveTacticalScreen( MAINMENU_SCREEN );
@@ -10234,7 +10241,7 @@ void InitializeTacticalStatusAtBattleStart( )
} }
static void DoneFadeOutDemoCreatureLevel( ) void DoneFadeOutDemoCreatureLevel( )
{ {
// OK, insertion data found, enter sector! // OK, insertion data found, enter sector!
SetCurrentWorldSector( 1, 16, 0 ); SetCurrentWorldSector( 1, 16, 0 );
@@ -10243,7 +10250,7 @@ static void DoneFadeOutDemoCreatureLevel( )
} }
static void DemoEndOKCallback( INT8 bExitCode ) void DemoEndOKCallback( INT8 bExitCode )
{ {
} }
@@ -10833,7 +10840,7 @@ void HandleDisplayingOfPlayerLostDialogue( )
static SoldierID prisonerdialoguetargetID = NOBODY; static SoldierID prisonerdialoguetargetID = NOBODY;
static void TurnCoatAttemptMessageBoxCallBack( UINT8 ubExitValue ) void TurnCoatAttemptMessageBoxCallBack( UINT8 ubExitValue )
{ {
// check ubExitValue to see whether we actually want to go through (2) // check ubExitValue to see whether we actually want to go through (2)
if ( ubExitValue != 2 if ( ubExitValue != 2
@@ -10966,7 +10973,7 @@ void HandleTurncoatAttempt( SOLDIERTYPE* pSoldier )
} }
} }
static void EscapeTimerCallback() void EscapeTimerCallback()
{ {
const bool chanceToEscape = Chance(75); const bool chanceToEscape = Chance(75);
bool escaped = false; bool escaped = false;
@@ -11069,7 +11076,7 @@ void AttemptToCapturePlayerSoldiers()
#endif #endif
} }
static void PrisonerSurrenderMessageBoxCallBack( UINT8 ubExitValue ) void PrisonerSurrenderMessageBoxCallBack( UINT8 ubExitValue )
{ {
SOLDIERTYPE *pSoldier = NULL; SOLDIERTYPE *pSoldier = NULL;
BOOLEAN success = FALSE; BOOLEAN success = FALSE;
@@ -11962,6 +11969,7 @@ BOOLEAN IsCivFactionMemberAliveInSector( UINT8 usCivilianGroup )
BOOLEAN IsFreeSlotAvailable( int aTeam ) BOOLEAN IsFreeSlotAvailable( int aTeam )
{ {
SOLDIERTYPE *pSoldier;
SoldierID cnt = gTacticalStatus.Team[aTeam].bFirstID; SoldierID cnt = gTacticalStatus.Team[aTeam].bFirstID;
// run through list // run through list
+4
View File
@@ -72,6 +72,7 @@
#include "Morale.h" #include "Morale.h"
#include "Meanwhile.h" #include "Meanwhile.h"
#include "Drugs And Alcohol.h" #include "Drugs And Alcohol.h"
#include "SkillCheck.h"
#include "Boxing.h" #include "Boxing.h"
#include "overhead map.h" #include "overhead map.h"
#include "Map Information.h" #include "Map Information.h"
@@ -112,6 +113,7 @@
#include "fresh_header.h" #include "fresh_header.h"
#include "Dialogue Control.h"
#include "IMP Skill Trait.h" // added by Flugente #include "IMP Skill Trait.h" // added by Flugente
#include "Food.h" // added by Flugente #include "Food.h" // added by Flugente
@@ -1674,6 +1676,7 @@ void MERCPROFILESTRUCT::CopyOldInventoryToNew( const OLD_MERCPROFILESTRUCT_101&
bInvNumber[SMALLPOCK8POS] = src.DO_NOT_USE_bInvNumber[OldInventory::SMALLPOCK8POS]; bInvNumber[SMALLPOCK8POS] = src.DO_NOT_USE_bInvNumber[OldInventory::SMALLPOCK8POS];
} }
BOOLEAN IsValidSecondHandShot( SOLDIERTYPE *pSoldier );
UINT8 *gubpNumReplacementsPerRange; UINT8 *gubpNumReplacementsPerRange;
PaletteSubRangeType *gpPaletteSubRanges; PaletteSubRangeType *gpPaletteSubRanges;
@@ -1738,6 +1741,7 @@ UINT16 PickSoldierReadyAnimation( SOLDIERTYPE *pSoldier, BOOLEAN fEndReady, BOOL
BOOLEAN CheckForFullStruct( INT32 sGridNo, UINT16 *pusIndex ); BOOLEAN CheckForFullStruct( INT32 sGridNo, UINT16 *pusIndex );
void SetSoldierLocatorOffsets( SOLDIERTYPE *pSoldier ); void SetSoldierLocatorOffsets( SOLDIERTYPE *pSoldier );
void CheckForFullStructures( SOLDIERTYPE *pSoldier ); void CheckForFullStructures( SOLDIERTYPE *pSoldier );
UINT16 GetNewSoldierStateFromNewStance( SOLDIERTYPE *pSoldier, UINT8 ubDesiredStance );
void SetSoldierAniSpeed( SOLDIERTYPE *pSoldier ); void SetSoldierAniSpeed( SOLDIERTYPE *pSoldier );
void AdjustForFastTurnAnimation( SOLDIERTYPE *pSoldier ); void AdjustForFastTurnAnimation( SOLDIERTYPE *pSoldier );
UINT16 SelectFireAnimation( SOLDIERTYPE *pSoldier, UINT8 ubHeight ); UINT16 SelectFireAnimation( SOLDIERTYPE *pSoldier, UINT8 ubHeight );
+12 -2
View File
@@ -1,10 +1,19 @@
#include "builddefines.h" #include "builddefines.h"
#include "math.h"
#include <stdio.h>
#include <errno.h>
#include "worlddef.h" #include "worlddef.h"
#include "renderworld.h"
#include "vsurface.h"
#include "sysutil.h" #include "sysutil.h"
#include "WCheck.h" #include "WCheck.h"
#include "video.h"
#include "vobject_blitters.h" #include "vobject_blitters.h"
#include "faces.h"
#include "Utilities.h"
#include "Overhead.h" #include "Overhead.h"
#include "Soldier Profile.h"
#include "Bullets.h" #include "Bullets.h"
#include "LOS.h" #include "LOS.h"
#include "worldman.h" #include "worldman.h"
@@ -12,6 +21,7 @@
#include "GameSettings.h" #include "GameSettings.h"
#include "FileMan.h" #include "FileMan.h"
#include "lighting.h" #include "lighting.h"
#include "Buildings.h"
// Defines // Defines
// HEADROCK HAM 5: Increasing... with the hope of making spectacular fragmenting explosives. // HEADROCK HAM 5: Increasing... with the hope of making spectacular fragmenting explosives.
@@ -28,7 +38,7 @@ int gXPATH[BULLET_TRACER_MAX_LENGTH]; // positions between bullet
int gYPATH[BULLET_TRACER_MAX_LENGTH]; // positions between bullet int gYPATH[BULLET_TRACER_MAX_LENGTH]; // positions between bullet
//afp-end //afp-end
static INT32 GetFreeBullet(void) INT32 GetFreeBullet(void)
{ {
UINT32 uiCount; UINT32 uiCount;
@@ -45,7 +55,7 @@ static INT32 GetFreeBullet(void)
} }
static void RecountBullets(void) void RecountBullets(void)
{ {
INT32 uiCount; INT32 uiCount;
+5 -3
View File
@@ -7,6 +7,7 @@
#include "worldman.h" #include "worldman.h"
#include "strategicmap.h" #include "strategicmap.h"
#include "Campaign Types.h" #include "Campaign Types.h"
#include "renderworld.h"
#include "Render Fun.h" #include "Render Fun.h"
#include "fov.h" #include "fov.h"
#include "worlddef.h" #include "worlddef.h"
@@ -15,6 +16,7 @@
#include "GameSettings.h" #include "GameSettings.h"
#include "Smell.h" #include "Smell.h"
#include <vfs/Core/vfs.h>
//SB: make size of gpRevealedMap dependable from variable tactical map dimensions //SB: make size of gpRevealedMap dependable from variable tactical map dimensions
#define NUM_REVEALED_BYTES (WORLD_MAX/8) #define NUM_REVEALED_BYTES (WORLD_MAX/8)
@@ -173,7 +175,7 @@ typedef std::map<ModifiedMapFile::Key, ModifiedMapFile, ltMMF> ModifiedMapFileSe
ModifiedMapFileSet g_mapFileSet; ModifiedMapFileSet g_mapFileSet;
BOOLEAN g_useSaveCache; BOOLEAN g_useSaveCache;
static void ClearTempFileSets() void ClearTempFileSets()
{ {
//for (ModifiedMapFileSet::iterator itr = g_mapFileSet.begin(), end = g_mapFileSet.end(); itr != end; ++itr ) //for (ModifiedMapFileSet::iterator itr = g_mapFileSet.begin(), end = g_mapFileSet.end(); itr != end; ++itr )
//{ //{
@@ -193,7 +195,7 @@ BOOLEAN EnableModifiedFileSetCache(BOOLEAN value)
return previousValue; return previousValue;
} }
static bool TryGetModifiedMapFile( UINT32 uiType, INT16 sMapX, INT16 sMapY, INT8 bMapZ, ModifiedMapFile** ppMMF ) bool TryGetModifiedMapFile( UINT32 uiType, INT16 sMapX, INT16 sMapY, INT8 bMapZ, ModifiedMapFile** ppMMF )
{ {
if (ppMMF == NULL) if (ppMMF == NULL)
return false; return false;
@@ -209,7 +211,7 @@ static bool TryGetModifiedMapFile( UINT32 uiType, INT16 sMapX, INT16 sMapY, INT8
return true; return true;
} }
static ModifiedMapFile& GetOrCreateModifiedMapFile(UINT32 uiType, INT16 sMapX, INT16 sMapY, INT8 bMapZ) ModifiedMapFile& GetOrCreateModifiedMapFile(UINT32 uiType, INT16 sMapX, INT16 sMapY, INT8 bMapZ)
{ {
ModifiedMapFile* pResult = NULL; ModifiedMapFile* pResult = NULL;
if ( TryGetModifiedMapFile(uiType, sMapX, sMapY, bMapZ, &pResult) ) if ( TryGetModifiedMapFile(uiType, sMapX, sMapY, bMapZ, &pResult) )
+4 -4
View File
@@ -133,7 +133,7 @@ void SelectNextUnplacedUnit();
BOOLEAN gfNorthValid, gfEastValid, gfSouthValid, gfWestValid; BOOLEAN gfNorthValid, gfEastValid, gfSouthValid, gfWestValid;
BOOLEAN gfChangedEntrySide = FALSE; BOOLEAN gfChangedEntrySide = FALSE;
static void FindValidInsertionCode( UINT8 *pubStrategicInsertionCode ) void FindValidInsertionCode( UINT8 *pubStrategicInsertionCode )
{ {
if( gMapInformation.sNorthGridNo == -1 && if( gMapInformation.sNorthGridNo == -1 &&
gMapInformation.sEastGridNo == -1 && gMapInformation.sEastGridNo == -1 &&
@@ -202,7 +202,7 @@ static void FindValidInsertionCode( UINT8 *pubStrategicInsertionCode )
} }
} }
static void CheckForValidMapEdge( UINT8 *pubStrategicInsertionCode ) void CheckForValidMapEdge( UINT8 *pubStrategicInsertionCode )
{ {
switch( *pubStrategicInsertionCode ) switch( *pubStrategicInsertionCode )
{ {
@@ -1464,7 +1464,7 @@ void RenderTacticalPlacementGUI()
} }
} }
static void EnsureDoneButtonStatus() void EnsureDoneButtonStatus()
{ {
INT32 i; INT32 i;
//static BOOLEAN fInside = FALSE; //static BOOLEAN fInside = FALSE;
@@ -1783,7 +1783,7 @@ void KillTacticalPlacementGUI()
MemFree( gMercPlacement); MemFree( gMercPlacement);
} }
static void ChooseRandomEdgepoints() void ChooseRandomEdgepoints()
{ {
INT32 i; INT32 i;
UINT8 lastValidICode = INSERTION_CODE_GRIDNO; UINT8 lastValidICode = INSERTION_CODE_GRIDNO;
+11 -9
View File
@@ -571,9 +571,11 @@ void RenderGridNoVisibleDebugInfo( INT16 sStartPointX_M, INT16 sStartPointY_M, I
void DeleteFromWorld( UINT16 usTileIndex, UINT32 uiRenderTiles, UINT16 usIndex ); void DeleteFromWorld( UINT16 usTileIndex, UINT32 uiRenderTiles, UINT16 usIndex );
void RenderHighlight( INT16 sMouseX_M, INT16 sMouseY_M, INT16 sStartPointX_M, INT16 sStartPointY_M, INT16 sStartPointX_S, INT16 sStartPointY_S, INT16 sEndXS, INT16 sEndYS );
BOOLEAN CheckRenderCenter( INT16 sNewCenterX, INT16 sNewCenterY );
// Flugente: display a riot shield // Flugente: display a riot shield
static void ShowRiotShield( SOLDIERTYPE* pSoldier, UINT16 *pBuffer, UINT32 uiDestPitchBYTES, UINT16 *pZBuffer, UINT16 usZValue ) void ShowRiotShield( SOLDIERTYPE* pSoldier, UINT16 *pBuffer, UINT32 uiDestPitchBYTES, UINT16 *pZBuffer, UINT16 usZValue )
{ {
if (pSoldier) if (pSoldier)
{ {
@@ -653,7 +655,7 @@ static void ShowRiotShield( SOLDIERTYPE* pSoldier, UINT16 *pBuffer, UINT32 uiDes
INT32 gDecalBackgroundRectangle[MAX_DECALS_ONSCREEN] = { 0 }; INT32 gDecalBackgroundRectangle[MAX_DECALS_ONSCREEN] = { 0 };
int gDecalBackgroundRectableCounter = 0; int gDecalBackgroundRectableCounter = 0;
static void ClearBackgroundRectanglesForDecal() void ClearBackgroundRectanglesForDecal()
{ {
for ( int i = 0; i < gDecalBackgroundRectableCounter; ++i ) for ( int i = 0; i < gDecalBackgroundRectableCounter; ++i )
{ {
@@ -667,7 +669,7 @@ static void ClearBackgroundRectanglesForDecal()
gDecalBackgroundRectableCounter = 0; gDecalBackgroundRectableCounter = 0;
} }
static bool SetupBackgroundRectanglesForDecal( UINT32 uiFlags, INT16 *pSaveArea, INT16 sLeft, INT16 sTop, INT16 sRight, INT16 sBottom ) bool SetupBackgroundRectanglesForDecal( UINT32 uiFlags, INT16 *pSaveArea, INT16 sLeft, INT16 sTop, INT16 sRight, INT16 sBottom )
{ {
if ( gDecalBackgroundRectableCounter < MAX_DECALS_ONSCREEN ) if ( gDecalBackgroundRectableCounter < MAX_DECALS_ONSCREEN )
{ {
@@ -687,7 +689,7 @@ static bool SetupBackgroundRectanglesForDecal( UINT32 uiFlags, INT16 *pSaveArea,
} }
// Flugente: display decal // Flugente: display decal
static void ShowDecal( UINT16 *pBuffer, UINT32 uiDestPitchBYTES, UINT16 *pZBuffer, UINT16 usZValue, INT32 sGridNo ) void ShowDecal( UINT16 *pBuffer, UINT32 uiDestPitchBYTES, UINT16 *pZBuffer, UINT16 usZValue, INT32 sGridNo )
{ {
// we mark locations with decals with the 'DAMAGED' flag for easier filtering // we mark locations with decals with the 'DAMAGED' flag for easier filtering
if ( gGameExternalOptions.fAdditionalDecals if ( gGameExternalOptions.fAdditionalDecals
@@ -994,7 +996,7 @@ void ResetSpecificLayerOptimizing( UINT32 uiRowFlag )
} }
static void SumAddiviveLayerOptimization( void ) void SumAddiviveLayerOptimization( void )
{ {
uiLayerUsedFlags = uiAdditiveLayerUsedFlags; uiLayerUsedFlags = uiAdditiveLayerUsedFlags;
} }
@@ -1026,7 +1028,7 @@ void RenderSetShadows(BOOLEAN fShadows)
} }
} }
inline static UINT16 * GetShadeTable(LEVELNODE * pNode, SOLDIERTYPE * pSoldier, SOLDIERTYPE * pPaletteTable, UINT32 uiFlags, INT16 * gsForceSoldierZLevel) inline UINT16 * GetShadeTable(LEVELNODE * pNode, SOLDIERTYPE * pSoldier, SOLDIERTYPE * pPaletteTable, UINT32 uiFlags, INT16 * gsForceSoldierZLevel)
{ {
UINT16 * pShadeTable; UINT16 * pShadeTable;
// Shade guy always lighter than scene default! // Shade guy always lighter than scene default!
@@ -1184,7 +1186,7 @@ inline static UINT16 * GetShadeTable(LEVELNODE * pNode, SOLDIERTYPE * pSoldier,
/* /*
MONSTERS BE HERE! MONSTERS BE HERE!
*/ */
static void RenderTiles(UINT32 uiFlags, INT32 iStartPointX_M, INT32 iStartPointY_M, INT32 iStartPointX_S, INT32 iStartPointY_S, INT32 iEndXS, INT32 iEndYS, UINT8 ubNumLevels, UINT32 *puiLevels, UINT16 *psLevelIDs) void RenderTiles(UINT32 uiFlags, INT32 iStartPointX_M, INT32 iStartPointY_M, INT32 iStartPointX_S, INT32 iStartPointY_S, INT32 iEndXS, INT32 iEndYS, UINT8 ubNumLevels, UINT32 *puiLevels, UINT16 *psLevelIDs)
{ {
//#if 0 //#if 0
@@ -3664,7 +3666,7 @@ void RenderDynamicWorld( )
static BOOLEAN HandleScrollDirections( UINT32 ScrollFlags, INT16 sScrollXStep, INT16 sScrollYStep, INT16 *psTempRenderCenterX, INT16 *psTempRenderCenterY, BOOLEAN fCheckOnly ) BOOLEAN HandleScrollDirections( UINT32 ScrollFlags, INT16 sScrollXStep, INT16 sScrollYStep, INT16 *psTempRenderCenterX, INT16 *psTempRenderCenterY, BOOLEAN fCheckOnly )
{ {
BOOLEAN fAGoodMove = FALSE, fMovedPos = FALSE; BOOLEAN fAGoodMove = FALSE, fMovedPos = FALSE;
INT16 sTempX_W, sTempY_W; INT16 sTempX_W, sTempY_W;
@@ -9009,7 +9011,7 @@ void RenderCoverDebug( )
RenderCoverDebugInfo( gsStartPointX_M, gsStartPointY_M, gsStartPointX_S, gsStartPointY_S, gsEndXS, gsEndYS ); RenderCoverDebugInfo( gsStartPointX_M, gsStartPointY_M, gsStartPointX_S, gsStartPointY_S, gsEndXS, gsEndYS );
} }
static void RenderGridNoVisibleDebug( ) void RenderGridNoVisibleDebug( )
{ {
RenderGridNoVisibleDebugInfo( gsStartPointX_M, gsStartPointY_M, gsStartPointX_S, gsStartPointY_S, gsEndXS, gsEndYS ); RenderGridNoVisibleDebugInfo( gsStartPointX_M, gsStartPointY_M, gsStartPointX_S, gsStartPointY_S, gsEndXS, gsEndYS );
} }
+63 -47
View File
@@ -1,39 +1,52 @@
#include <string.h> #include <string.h>
#include "types.h" #include "types.h"
#include "WCheck.h" #include "WCheck.h"
#include "DEBUG.H" #include "DEBUG.H"
#include "FileMan.h" #include "FileMan.h"
#include "MemMan.h" #include "MemMan.h"
#include "structure.h" #include "structure.h"
#include "tiledef.h" #include "tiledef.h"
#include "worlddef.h" #include "worlddef.h"
#include "worldman.h" #include "worldman.h"
#include "Interface.h"
#include "Isometric Utils.h" #include "Interface.h"
#include "Font.h"
#include "Font Control.h" #include "Isometric Utils.h"
#include "Smell.h" #include "Font.h"
#include "SaveLoadMap.h" #include "Font Control.h"
#include "strategicmap.h" #include "LOS.h"
#include "sgp_logger.h"
#include "Sys Globals.h" //for access to gfEditMode flag #include "lighting.h"
//Kris: #include "Smell.h"
#ifdef JA2EDITOR #include "SaveLoadMap.h"
#include "Editor Undo.h" //for access to AddToUndoList( iMapIndex ) #include "strategicmap.h"
#endif #include "sgp_logger.h"
#include "Explosion Control.h"
#include "Sound Control.h" #include "Sys Globals.h" //for access to gfEditMode flag
#include "Buildings.h"
#include "random.h" //Kris:
#include "Tile Animation.h" #ifdef JA2EDITOR
// anv: for ramming people with vehicles #include "Editor Undo.h" //for access to AddToUndoList( iMapIndex )
#include "Soldier macros.h" #endif
#include "Overhead.h"
#include "Animation Control.h" #include "Explosion Control.h"
#include "ASD.h" // added by Flugente #include "Sound Control.h"
#include "renderworld.h" // added by Flugente for SetRenderFlags( RENDER_FLAG_FULL );
#include <vfs/Core/vfs.h> #include "Buildings.h"
#include "XML_StructureData.hpp"
#include "random.h"
#include "Tile Animation.h"
#include "Explosion Control.h" // added by Flugente
// anv: for ramming people with vehicles
#include "Soldier macros.h"
#include "Overhead.h"
#include "Soldier Functions.h"
#include "Animation Control.h"
#include "Soldier Ani.h"
#include "ASD.h" // added by Flugente
#include "renderworld.h" // added by Flugente for SetRenderFlags( RENDER_FLAG_FULL );
#ifdef COUNT_PATHS #ifdef COUNT_PATHS
extern UINT32 guiSuccessfulPathChecks; extern UINT32 guiSuccessfulPathChecks;
@@ -149,7 +162,7 @@ index 25, indestructable metal
}; };
// Function operating on a structure tile // Function operating on a structure tile
static UINT8 FilledTilePositions( DB_STRUCTURE_TILE * pTile ) UINT8 FilledTilePositions( DB_STRUCTURE_TILE * pTile )
{ {
UINT8 ubFilled = 0, ubShapeValue; UINT8 ubFilled = 0, ubShapeValue;
INT8 bLoopX, bLoopY, bLoopZ; INT8 bLoopX, bLoopY, bLoopZ;
@@ -254,7 +267,7 @@ BOOLEAN FreeStructureFile( STRUCTURE_FILE_REF * pStructureFile )
return( TRUE ); return( TRUE );
} }
static BOOLEAN LoadStructureData( STR szFileName, STRUCTURE_FILE_REF * pFileRef, UINT32 * puiStructureDataSize ) BOOLEAN LoadStructureData( STR szFileName, STRUCTURE_FILE_REF * pFileRef, UINT32 * puiStructureDataSize )
//UINT8 **ppubStructureData, UINT32 * puiDataSize, STRUCTURE_FILE_HEADER * pHeader ) //UINT8 **ppubStructureData, UINT32 * puiDataSize, STRUCTURE_FILE_HEADER * pHeader )
{ {
// Loads a structure file's data as a honking chunk o' memory // Loads a structure file's data as a honking chunk o' memory
@@ -354,7 +367,7 @@ static BOOLEAN LoadStructureData( STR szFileName, STRUCTURE_FILE_REF * pFileRef,
return( TRUE ); return( TRUE );
} }
static BOOLEAN CreateFileStructureArrays( STRUCTURE_FILE_REF * pFileRef, UINT32 uiDataSize ) BOOLEAN CreateFileStructureArrays( STRUCTURE_FILE_REF * pFileRef, UINT32 uiDataSize )
{ {
// Based on a file chunk, creates all the dynamic arrays for the // Based on a file chunk, creates all the dynamic arrays for the
// structure definitions contained within // structure definitions contained within
@@ -425,8 +438,11 @@ static BOOLEAN CreateFileStructureArrays( STRUCTURE_FILE_REF * pFileRef, UINT32
return( TRUE ); return( TRUE );
} }
#include <vfs/Core/vfs_file_raii.h>
#include <vfs/Core/vfs.h>
#include "XML_StructureData.hpp"
static void checkStructureValidity(STRUCTURE_FILE_REF *str1, STRUCTURE_FILE_REF* str2, UINT32 size1, UINT32 size2) void checkStructureValidity(STRUCTURE_FILE_REF *str1, STRUCTURE_FILE_REF* str2, UINT32 size1, UINT32 size2)
{ {
if(str1 == str2 && str1 == NULL) if(str1 == str2 && str1 == NULL)
{ {
@@ -563,7 +579,7 @@ STRUCTURE_FILE_REF * LoadStructureFile( STR szFileName )
// //
static STRUCTURE * CreateStructureFromDB( DB_STRUCTURE_REF * pDBStructureRef, UINT8 ubTileNum ) STRUCTURE * CreateStructureFromDB( DB_STRUCTURE_REF * pDBStructureRef, UINT8 ubTileNum )
{ {
// Creates a STRUCTURE struct for one tile of a structure // Creates a STRUCTURE struct for one tile of a structure
STRUCTURE * pStructure; STRUCTURE * pStructure;
@@ -616,7 +632,7 @@ static STRUCTURE * CreateStructureFromDB( DB_STRUCTURE_REF * pDBStructureRef, UI
extern SoldierID gusTempDragBuildSoldierID; extern SoldierID gusTempDragBuildSoldierID;
static BOOLEAN OkayToAddStructureToTile( INT32 sBaseGridNo, INT16 sCubeOffset, DB_STRUCTURE_REF * pDBStructureRef, UINT8 ubTileIndex, INT16 sExclusionID, BOOLEAN fAddingForReal = FALSE, SoldierID sSoldierID = NOBODY ) BOOLEAN OkayToAddStructureToTile( INT32 sBaseGridNo, INT16 sCubeOffset, DB_STRUCTURE_REF * pDBStructureRef, UINT8 ubTileIndex, INT16 sExclusionID, BOOLEAN fAddingForReal = FALSE, SoldierID sSoldierID = NOBODY )
{ {
// Verifies whether a structure is blocked from being added to the map at a particular point // Verifies whether a structure is blocked from being added to the map at a particular point
DB_STRUCTURE * pDBStructure; DB_STRUCTURE * pDBStructure;
@@ -990,7 +1006,7 @@ BOOLEAN OkayToAddStructureToWorld( INT32 sBaseGridNo, INT8 bLevel, DB_STRUCTURE_
return( InternalOkayToAddStructureToWorld( sBaseGridNo, bLevel, pDBStructureRef, sExclusionID, fAddingForReal, sSoldierID ) ); return( InternalOkayToAddStructureToWorld( sBaseGridNo, bLevel, pDBStructureRef, sExclusionID, fAddingForReal, sSoldierID ) );
} }
static BOOLEAN AddStructureToTile( MAP_ELEMENT * pMapElement, STRUCTURE * pStructure, UINT16 usStructureID ) BOOLEAN AddStructureToTile( MAP_ELEMENT * pMapElement, STRUCTURE * pStructure, UINT16 usStructureID )
{ {
// adds a STRUCTURE to a MAP_ELEMENT (adds part of a structure to a location on the map) // adds a STRUCTURE to a MAP_ELEMENT (adds part of a structure to a location on the map)
STRUCTURE * pStructureTail; STRUCTURE * pStructureTail;
@@ -1017,7 +1033,7 @@ static BOOLEAN AddStructureToTile( MAP_ELEMENT * pMapElement, STRUCTURE * pStruc
} }
static STRUCTURE * InternalAddStructureToWorld( INT32 sBaseGridNo, INT8 bLevel, DB_STRUCTURE_REF * pDBStructureRef, LEVELNODE * pLevelNode ) STRUCTURE * InternalAddStructureToWorld( INT32 sBaseGridNo, INT8 bLevel, DB_STRUCTURE_REF * pDBStructureRef, LEVELNODE * pLevelNode )
{ {
// Adds a complete structure to the world at a location plus all other locations covered by the structure // Adds a complete structure to the world at a location plus all other locations covered by the structure
INT32 sGridNo; INT32 sGridNo;
@@ -1319,7 +1335,7 @@ BOOLEAN DeleteStructureFromWorld( STRUCTURE * pStructure )
return( TRUE ); return( TRUE );
} }
static STRUCTURE * InternalSwapStructureForPartner( INT32 sGridNo, STRUCTURE * pStructure, BOOLEAN fFlipSwitches, BOOLEAN fStoreInMap ) STRUCTURE * InternalSwapStructureForPartner( INT32 sGridNo, STRUCTURE * pStructure, BOOLEAN fFlipSwitches, BOOLEAN fStoreInMap )
{ {
// switch structure // switch structure
LEVELNODE * pLevelNode; LEVELNODE * pLevelNode;
@@ -2503,13 +2519,13 @@ BOOLEAN AddZStripInfoToVObject( HVOBJECT hVObject, STRUCTURE_FILE_REF * pStructu
return( TRUE ); return( TRUE );
} }
static BOOLEAN InitStructureDB( void ) BOOLEAN InitStructureDB( void )
{ {
gusNextAvailableStructureID = FIRST_AVAILABLE_STRUCTURE_ID; gusNextAvailableStructureID = FIRST_AVAILABLE_STRUCTURE_ID;
return( TRUE ); return( TRUE );
} }
static BOOLEAN FiniStructureDB( void ) BOOLEAN FiniStructureDB( void )
{ {
gusNextAvailableStructureID = FIRST_AVAILABLE_STRUCTURE_ID; gusNextAvailableStructureID = FIRST_AVAILABLE_STRUCTURE_ID;
return( TRUE ); return( TRUE );
+14 -10
View File
@@ -122,6 +122,7 @@ BOOLEAN gfInitAnimateLoading = FALSE;
BOOLEAN LoadTileSurfaces( char pTileSurfaceFilenames[][32], UINT8 ubTilesetID ); BOOLEAN LoadTileSurfaces( char pTileSurfaceFilenames[][32], UINT8 ubTilesetID );
BOOLEAN AddTileSurface( SGPFILENAME cFilename, UINT32 ubType, UINT8 ubTilesetID, BOOLEAN fGetFromRoot ); BOOLEAN AddTileSurface( SGPFILENAME cFilename, UINT32 ubType, UINT8 ubTilesetID, BOOLEAN fGetFromRoot );
void DestroyTileSurfaces( void ); void DestroyTileSurfaces( void );
void ProcessTilesetNamesForBPP(void);
BOOLEAN IsRoofVisibleForWireframe( INT32 sMapPos ); BOOLEAN IsRoofVisibleForWireframe( INT32 sMapPos );
#ifdef JA2UBMAPS #ifdef JA2UBMAPS
@@ -224,7 +225,7 @@ BOOLEAN GridNoIndoors( INT32 iMapIndex )
return FALSE; return FALSE;
} }
static void DOIT( ) void DOIT( )
{ {
// LEVELNODE * pLand; // LEVELNODE * pLand;
//LEVELNODE * pObject; //LEVELNODE * pObject;
@@ -271,6 +272,9 @@ BOOLEAN InitializeWorld( )
SetNumberOfTiles(); SetNumberOfTiles();
// DB Adds the _8 to the names if we're in 8 bit mode.
//ProcessTilesetNamesForBPP();
// Memset tileset list // Memset tileset list
memset( TileSurfaceFilenames, '\0', sizeof( TileSurfaceFilenames ) ); memset( TileSurfaceFilenames, '\0', sizeof( TileSurfaceFilenames ) );
@@ -339,7 +343,7 @@ void DeinitializeWorld()
} }
static BOOLEAN ReloadTilesetSlot( INT32 iSlot ) BOOLEAN ReloadTilesetSlot( INT32 iSlot )
{ {
return(TRUE); return(TRUE);
} }
@@ -768,7 +772,7 @@ void DestroyTileSurfaces( )
} }
} }
static void CompileWorldTerrainIDs( void ) void CompileWorldTerrainIDs( void )
{ {
INT32 sGridNo; INT32 sGridNo;
INT32 sTempGridNo; INT32 sTempGridNo;
@@ -823,7 +827,7 @@ static void CompileWorldTerrainIDs( void )
} }
} }
static BOOLEAN IsNotRestrictedWindow(STRUCTURE * pStructure) BOOLEAN IsNotRestrictedWindow(STRUCTURE * pStructure)
{ {
if ( (pStructure->fFlags & STRUCTURE_WALLNWINDOW) && gGameExternalOptions.fCanJumpThroughWindows if ( (pStructure->fFlags & STRUCTURE_WALLNWINDOW) && gGameExternalOptions.fCanJumpThroughWindows
@@ -861,7 +865,7 @@ static BOOLEAN IsNotRestrictedWindow(STRUCTURE * pStructure)
return FALSE; return FALSE;
} }
static void CompileTileMovementCosts( INT32 usGridNo ) void CompileTileMovementCosts( INT32 usGridNo )
{ {
UINT8 ubTerrainID; UINT8 ubTerrainID;
TILE_ELEMENT TileElem; TILE_ELEMENT TileElem;
@@ -2320,7 +2324,7 @@ INT8 bDirectionsForShadowSearch[ NUM_DIR_SEARCHES ] =
EAST EAST
}; };
static void OptimizeMapForShadows( ) void OptimizeMapForShadows( )
{ {
INT32 cnt, dir; INT32 cnt, dir;
INT32 sNewGridNo; INT32 sNewGridNo;
@@ -2350,7 +2354,7 @@ static void OptimizeMapForShadows( )
} }
} }
static void SetBlueFlagFlags( void ) void SetBlueFlagFlags( void )
{ {
INT32 cnt; INT32 cnt;
LEVELNODE * pNode; LEVELNODE * pNode;
@@ -3526,7 +3530,7 @@ void TrashWorld( void )
void TrashMapTile(INT32 MapTile) void TrashMapTile(INT16 MapTile)
{ {
MAP_ELEMENT *pMapTile; MAP_ELEMENT *pMapTile;
LEVELNODE *pLandNode; LEVELNODE *pLandNode;
@@ -3714,7 +3718,7 @@ void SetLoadOverrideParams( BOOLEAN fForceLoad, BOOLEAN fForceFile, CHAR8 *zLoad
} }
static void AddWireFrame( INT32 sGridNo, UINT16 usIndex, BOOLEAN fForced ) void AddWireFrame( INT32 sGridNo, UINT16 usIndex, BOOLEAN fForced )
{ {
LEVELNODE *pTopmost, *pTopmostTail; LEVELNODE *pTopmost, *pTopmostTail;
@@ -3741,7 +3745,7 @@ static void AddWireFrame( INT32 sGridNo, UINT16 usIndex, BOOLEAN fForced )
} }
static UINT16 GetWireframeGraphicNumToUseForWall( INT32 sGridNo, STRUCTURE *pStructure ) UINT16 GetWireframeGraphicNumToUseForWall( INT32 sGridNo, STRUCTURE *pStructure )
{ {
LEVELNODE *pNode = NULL; LEVELNODE *pNode = NULL;
UINT8 ubWallOrientation; UINT8 ubWallOrientation;
+47 -30
View File
@@ -1,48 +1,65 @@
/* $Id: sgp.c,v 1.4 2004/03/19 06:16:04 digicrab Exp $ */ /* $Id: sgp.c,v 1.4 2004/03/19 06:16:04 digicrab Exp $ */
//its test what doeas it do? //its test what doeas it do?
#include "builddefines.h" #include "types.h"
#include "types.h" #include <windows.h>
#include <windows.h> #include <stdio.h>
#include <string.h> #include <stdarg.h>
#include "sgp.h" #include <string.h>
#include "vobject.h" #include "sgp.h"
#include "Font.h" #include "vobject.h"
#include "local.h" #include "Font.h"
#include "FileMan.h" #include "local.h"
#include "input.h" #include "FileMan.h"
#include "random.h" #include "input.h"
#include "gameloop.h" #include "random.h"
#include "soundman.h" #include "gameloop.h"
#include "JA2 Splash.h" #include "soundman.h"
#include "Timer Control.h" #include "JA2 Splash.h"
#include "Utilities.h" #include "Timer Control.h"
#include "LibraryDataBase.h"
#include "Utilities.h"
#include "GameSettings.h" #include "GameSettings.h"
#include "input.h"
#include "zmouse.h" #include "zmouse.h"
#include <vfs/Aspects/vfs_settings.h> #include <vfs/Aspects/vfs_settings.h>
#include <vfs/Core/vfs.h> #include <vfs/Core/vfs.h>
#include <vfs/Core/vfs_init.h> #include <vfs/Core/vfs_init.h>
#include <vfs/Core/vfs_os_functions.h>
#include <vfs/Core/File/vfs_file.h>
#include <vfs/Tools/vfs_log.h> #include <vfs/Tools/vfs_log.h>
#include <vfs/Tools/vfs_parser_tools.h>
#include <vfs/Tools/vfs_file_logger.h> #include <vfs/Tools/vfs_file_logger.h>
#include "sgp_logger.h" #include "sgp_logger.h"
#include "Text.h" #include "Text.h"
#include "LocalizedStrings.h"
#include "ExportStrings.h" #include "ExportStrings.h"
#include "ImportStrings.h" #include "ImportStrings.h"
#include <excpt.h>
#include "INIReader.h"
#include "connect.h"
#include "wine.h"
#include "Intro.h"
#include <Music Control.h>
#include <language.hpp>
#define USE_CONSOLE 0 #define USE_CONSOLE 0
#ifndef WIN32_LEAN_AND_MEAN #include <iostream>
#define WIN32_LEAN_AND_MEAN #include <excpt.h>
#endif
#include "INIReader.h"
#include "Lua Interpreter.h"
#include "connect.h"
#include "english.h"
#include "wine.h"
#include "builddefines.h"
#include "Intro.h"
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
#include <Music Control.h>
#include <language.hpp>
static void MAGIC(std::string const& aarrrrgggh = "") static void MAGIC(std::string const& aarrrrgggh = "")
{} {}
@@ -56,7 +73,7 @@ static vfs::FileLogger *vfslog = NULL;
int iWindowedMode; int iWindowedMode;
static void SHOWEXCEPTION(sgp::Exception& ex) void SHOWEXCEPTION(sgp::Exception& ex)
{ {
try { try {
_ExceptionMessage(ex); _ExceptionMessage(ex);
@@ -67,7 +84,7 @@ static void SHOWEXCEPTION(sgp::Exception& ex)
} }
} }
static void SHOWEXCEPTION(vfs::Exception& ex) void SHOWEXCEPTION(vfs::Exception& ex)
{ {
try { try {
_ExceptionMessage(ex); _ExceptionMessage(ex);
@@ -617,7 +634,7 @@ void ShutdownStandardGamingPlatform(void)
#include "MPJoinScreen.h" #include "MPJoinScreen.h"
static vfs::String getGameID() vfs::String getGameID()
{ {
static vfs::String _id; static vfs::String _id;
static bool has_id = false; static bool has_id = false;