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
- name: Prepare build
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
run: |
cmake --build build/ -- -v
+1
View File
@@ -13,6 +13,7 @@
#include "Font Control.h"
#include "Cursors.h"
#include "Font.h"
#include "WordWrap.h"
#include "sysutil.h"
#include "input.h"
#include "english.h"
+37 -24
View File
@@ -1,27 +1,40 @@
#include "types.h"
#include "FeaturesScreen.h"
#include "video.h"
#include "Font Control.h"
#include "Game Clock.h"
#include "Text Input.h"
#include "WordWrap.h"
#include "SaveLoadScreen.h"
#include "Render Dirty.h"
#include "WCheck.h"
#include "Utilities.h"
#include "Sound Control.h"
#include "Ambient Control.h"
#include "GameSettings.h"
#include "Game Init.h"
#include "english.h"
#include "Cursors.h"
#include "sysutil.h"
#include "Text.h"
#include "Interface Control.h"
#include "message.h"
#include "Multi Language Graphic Utils.h"
#include "connect.h"
#include "mainmenuscreen.h"
#include "types.h"
#include "FeaturesScreen.h"
#include "video.h"
#include "Font Control.h"
#include "Game Clock.h"
#include "Text Input.h"
#include "WordWrap.h"
#include "SaveLoadScreen.h"
#include "Render Dirty.h"
#include "WordWrap.h"
#include "WCheck.h"
#include "Utilities.h"
#include "DEBUG.H"
#include "Sound Control.h"
#include "Ambient Control.h"
#include "WorldDat.h"
#include "worlddef.h"
#include "GameSettings.h"
#include "Game Init.h"
#include "english.h"
#include "Overhead.h"
#include "GAP.H"
#include "Cursors.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)
+32 -24
View File
@@ -1,30 +1,38 @@
#include "types.h"
#include "GameInitOptionsScreen.h"
#include "GameSettings.h"
#include "Utilities.h"
#include "WCheck.h"
#include "Font Control.h"
#include "WordWrap.h"
#include "Render Dirty.h"
#include "input.h"
#include "Options Screen.h"
#include "english.h"
#include "sysutil.h"
#include "Fade Screen.h"
#include "Cursor Control.h"
#include "Music Control.h"
#include "Cursors.h"
#include "Intro.h"
#include "Text.h"
#include "_Ja25EnglishText.h"
#include "Soldier Profile.h"
#include "SaveLoadScreen.h"
#include <vfs/Core/vfs.h>
#include <vfs/Tools/vfs_property_container.h>
#include "types.h"
#include "GameInitOptionsScreen.h"
#include "GameSettings.h"
#include "Utilities.h"
#include "WCheck.h"
#include "Font Control.h"
#include "WordWrap.h"
#include "Render Dirty.h"
#include "input.h"
#include "Options Screen.h"
#include "english.h"
#include "sysutil.h"
#include "Fade Screen.h"
#include "Cursor Control.h"
#include "Music Control.h"
#include "Cursors.h"
#include "Intro.h"
#include "Text.h"
#include "_Ja25EnglishText.h"
#include "Soldier Profile.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
#include "ub_config.h"
// *********************************
// Unfinished Business: Initial Game Screen
+4 -2
View File
@@ -13,6 +13,7 @@
#include "HelpScreen.h"
#include "INIReader.h"
#include "Shade Table Util.h"
#include "soldier profile type.h"
#include "random.h"
#include "SaveLoadGame.h"
#include "sgp.h"
@@ -35,6 +36,7 @@
#include "connect.h"
#include "sgp_logger.h"
#include "Map Information.h"
#include "GameInitOptionsScreen.h"
@@ -154,7 +156,7 @@ BOOLEAN UsingInventoryCostsAPSystem()
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
for(unsigned int i=0;i<strToConvert.length();i++)
{
@@ -183,7 +185,7 @@ BOOLEAN IsNIVModeValid(bool checkRes)
return isValid;
}
static void UpdateFeatureFlags()
void UpdateFeatureFlags()
{
// do we need to override some ini settings?
if (gGameSettings.fFeatures[FF_FEATURES_SCREEN])
+25 -20
View File
@@ -1,23 +1,27 @@
#include "sgp.h"
#include "sysutil.h"
#include "WCheck.h"
#include "Cursors.h"
#include "Font Control.h"
#include "Render Dirty.h"
#include "Text.h"
#include "Utilities.h"
#include "WordWrap.h"
#include "HelpScreen.h"
#include "HelpScreenText.h"
#include "line.h"
#include "Game Clock.h"
#include "GameSettings.h"
#include "laptop.h"
#include "Text Input.h"
#include "english.h"
#include "renderworld.h"
#include "Game Init.h"
#include "Overhead.h"
#include "sgp.h"
#include "sysutil.h"
#include "vobject_blitters.h"
#include "WCheck.h"
#include "Cursors.h"
#include "Font Control.h"
#include "Cursor Control.h"
#include "Render Dirty.h"
#include "Text.h"
#include "Utilities.h"
#include "WordWrap.h"
#include "Font Control.h"
#include "Text.h"
#include "HelpScreen.h"
#include "HelpScreenText.h"
#include "line.h"
#include "Game Clock.h"
#include "GameSettings.h"
#include "laptop.h"
#include "Text Input.h"
#include "english.h"
#include "renderworld.h"
#include "Game Init.h"
#include "Overhead.h"
extern INT16 gsVIEWPORT_END_Y;
extern void PrintDate( void );
@@ -304,6 +308,7 @@ void SelectHelpScrollAreaCallBack( MOUSE_REGION * pRegion, INT32 iReason );
// region to mask the background
MOUSE_REGION gHelpScreenScrollAreaArrows;
void SelectHelpScrollAreaArrowsCallBack( MOUSE_REGION * pRegion, INT32 iReason );
//checkbox to toggle show help again toggle
+143 -45
View File
@@ -1,47 +1,55 @@
#include "builddefines.h"
#include <stdio.h>
#include "sgp.h"
#include "Screens.h"
#include "vobject_blitters.h"
#include "sysutil.h"
#include "worlddef.h"
#include "Animation Data.h"
#include "Overhead.h"
#include "Font Control.h"
#include <himage.h>
#include <vobject.h>
#include "Timer Control.h"
#include "Utilities.h"
#include "Render Dirty.h"
#include "Sound Control.h"
#include "lighting.h"
#include "Cursor Control.h"
#include "Music Control.h"
#include "video.h"
#include "maputility.h"
#include "strategic.h"
#include "Dialogue Control.h"
#include "Text.h"
#include "laptop.h"
#include "MercTextBox.h"
#include "Tile Cache.h"
#include "strategicmap.h"
#include "Map Information.h"
#include "Shade Table Util.h"
#include "Exit Grids.h"
#include "Summary Info.h"
#include "GameSettings.h"
#include "Game Init.h"
#include "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 "builddefines.h"
#include <stdio.h>
#include "sgp.h"
#include "gameloop.h"
#include "Screens.h"
#include "INIReader.h"
#include "vobject_blitters.h"
#include "renderworld.h"
#include "mousesystem.h"
#include "sysutil.h"
#include "worlddef.h"
#include "Animation Data.h"
#include "Overhead.h"
#include "Font Control.h"
#include "Button System.h"
#include "Timer Control.h"
#include "Utilities.h"
#include "Radar Screen.h"
#include "Render Dirty.h"
#include "Sound Control.h"
#include "Event Pump.h"
#include "lighting.h"
#include "Cursor Control.h"
#include "Music Control.h"
#include "video.h"
#include "mapscreen.h"
#include "Interface Items.h"
#include "maputility.h"
#include "strategic.h"
#include "Dialogue Control.h"
#include "Text.h"
#include "laptop.h"
#include "NPC.h"
#include "MercTextBox.h"
#include "Tile Cache.h"
#include "strategicmap.h"
#include "Map Information.h"
#include "Shade Table Util.h"
#include "Exit Grids.h"
#include "Summary Info.h"
#include "GameSettings.h"
#include "Game Init.h"
#include "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 "MPXmlTeams.hpp"
#include "Strategic Mines LUA.h"
@@ -49,6 +57,8 @@
#include "lua_state.h"
#include "Interface.h"
#include "Strategic Town Loyalty.h"
#include "Soldier Profile.h"
#include "aim.h"
#include "mainmenuscreen.h"
#include "email.h"
@@ -60,6 +70,7 @@
#include "ub_config.h"
#include "Civ Quotes.h"
#include "LuaInitNPCs.h"
#include "BriefingRoom_Data.h"
#include "AimArchives.h"
@@ -85,6 +96,20 @@ extern BOOLEAN GetCDromDriveLetter( STR8 pString );
extern BOOLEAN gfUseConsecutiveQuickSaveSlots;
#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;
@@ -115,7 +140,7 @@ static void AddLanguagePrefix(STR fileName)
AddLanguagePrefix( fileName, GetLanguagePrefix());
}
static void ResetEmptyRPCFaceSlots()
void ResetEmptyRPCFaceSlots()
{
//legion by jazz (load small faces from rpcs)
// reset empty slots with "-1"
@@ -1387,6 +1412,11 @@ if( g_lang != i18n::Lang::en ) {
UINT32 InitializeJA2(void)
{
#ifdef LASERLOCK_ENABLED
HandleLaserLockResult( PrepareLaserLockSystem() );
#endif
HandleJA2CDCheck( );
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()
{
gubMaxActionPoints[REGMALE] = APBPConstants[AP_MAXIMUM];
+1
View File
@@ -7,6 +7,7 @@
#include "LogicalBodyTypes/SurfaceDB.h"
#include "LogicalBodyTypes/FilterDB.h"
#include "LogicalBodyTypes/EnumeratorDB.h"
#include "LogicalBodyTypes/BodyTypeDB.h"
#include "LogicalBodyTypes/PaletteDB.h"
#include <iostream>
+36 -13
View File
@@ -1,18 +1,41 @@
#include "sgp.h"
#include "sysutil.h"
#include "Cursor Control.h"
#include "Render Dirty.h"
#include "Utilities.h"
#include "Intro.h"
#include "Cinematics.h"
#include "Cinematics Bink.h"
#include "mainmenuscreen.h"
#include "Music Control.h"
#include "english.h"
#include "sgp_logger.h"
#include "INIReader.h"
#include "sgp.h"
#include "sysutil.h"
#include "vobject_blitters.h"
#include "Font Control.h"
#include "Cursor Control.h"
#include "Render Dirty.h"
#include "Text.h"
#include "Utilities.h"
#include "WordWrap.h"
#include "Text.h"
#include "line.h"
#include "Intro.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"
#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 "XML.h"
#include <language.hpp>
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
#include "Networking.h"
#include "NetworkEvent.h"
#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
#include "Ja25_Tactical.h"
#include "Ja25 Strategic Ai.h"
INT16 JA2_5_START_SECTOR_X;
INT16 JA2_5_START_SECTOR_Y;
+5
View File
@@ -5,6 +5,11 @@
#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
extern INT16 JA2_5_START_SECTOR_X;
extern INT16 JA2_5_START_SECTOR_Y;
+3 -2
View File
@@ -19,6 +19,7 @@ extern HVSURFACE ghFrameBuffer;
extern BOOLEAN gfSchedulesHosed;
#ifdef JA2UB
#include "Ja25_Tactical.h"
#include "Ja25 Strategic Ai.h"
#endif
UINT8 gubLastLoadingScreenID = LOADINGSCREEN_NOTHING;
@@ -343,7 +344,7 @@ static void BuildLoadscreenFilename(std::string& dst, const char* path, int reso
dst.append(".sti");
}
static std::string GetResolutionSuffix(SCREEN_RESOLUTION resolution)
std::string GetResolutionSuffix(SCREEN_RESOLUTION 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))
{
+21 -20
View File
@@ -1,23 +1,24 @@
#include "sgp.h"
#include "screenids.h"
#include "Timer Control.h"
#include "Fade Screen.h"
#include "sysutil.h"
#include "vobject_blitters.h"
#include "MercTextBox.h"
#include "Cursors.h"
#include "Font Control.h"
#include "Map Screen Interface.h"
#include "renderworld.h"
#include "gameloop.h"
#include "english.h"
#include "GameSettings.h"
#include "Cursor Control.h"
#include "Text.h"
#include "Text Input.h"
#include "overhead map.h"
#include "MPChatScreen.h"
#include "WordWrap.h"
#include "sgp.h"
#include "screenids.h"
#include "Timer Control.h"
#include "Fade Screen.h"
#include "sysutil.h"
#include "vobject_blitters.h"
#include "MercTextBox.h"
#include "Cursors.h"
#include "Font Control.h"
#include "Map Screen Interface.h"
#include "renderworld.h"
#include "gameloop.h"
#include "english.h"
#include "GameSettings.h"
#include "Cursor Control.h"
#include "laptop.h"
#include "Text.h"
#include "Text Input.h"
#include "overhead map.h"
#include "MPChatScreen.h"
#include "WordWrap.h"
#include "message.h"
#include "Utilities.h"
#include "connect.h"
+33 -22
View File
@@ -1,28 +1,38 @@
#include "sgp.h"
#include "screenids.h"
#include "Timer Control.h"
#include "sysutil.h"
#include "Cursors.h"
#include "Font Control.h"
#include "mainmenuscreen.h"
#include "Cursor Control.h"
#include "Render Dirty.h"
#include "Music Control.h"
#include "sgp.h"
#include "screenids.h"
#include "Timer Control.h"
#include "sysutil.h"
#include "vobject_blitters.h"
#include "MercTextBox.h"
#include "Cursors.h"
#include "Font Control.h"
#include "mainmenuscreen.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 "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 "strategic.h"
#include "Strategic Movement.h"
#include "Overhead.h"
#include "Init.h"
#include "XML.h"
#include <vfs/Core/vfs.h>
#include <vfs/Core/vfs_profile.h>
@@ -73,6 +83,7 @@ void MenuButtonCallback(GUI_BUTTON *btn, INT32 reason);
void HandleMainMenuKeyboardInput();
void HandleMainMenuInput();
void HandleMainMenuScreen();
void DisplayAssignmentText();
void ClearMainMenu();
void SelectMainMenuBackGroundRegionCallBack(MOUSE_REGION * pRegion, INT32 iReason );
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)
{
+2
View File
@@ -14,10 +14,12 @@
#include "GameSettings.h"
#include "Interface Control.h"
#include "Cursor Control.h"
#include "laptop.h"
#include "Text.h"
#include "Text Input.h"
#include "overhead map.h"
#include "DropDown.h" // added by Flugente
#include "Utilities.h" // added by Flugente for FilenameForBPP(...)
#include "FeaturesScreen.h"
#define MSGBOX_DEFAULT_WIDTH 300
+207 -112
View File
@@ -1,126 +1,162 @@
#include "types.h"
#include "Soldier Profile.h"
#include "FileMan.h"
#include <string.h>
#include <stdio.h>
#include "DEBUG.H"
#include "Overhead.h"
#include "Keys.h"
#include "finances.h"
#include "history.h"
#include "files.h"
#include "Font.h"
#include "Font Control.h"
#include "email.h"
#include "strategicmap.h"
#include "Game Events.h"
#include "Game Clock.h"
#include "Soldier Create.h"
#include "worlddef.h"
#include "LaptopSave.h"
#include "Queen Command.h"
#include "SaveLoadGame.h"
#include "Tactical Save.h"
#include "Squads.h"
#include "environment.h"
#include "lighting.h"
#include "Strategic Movement.h"
#include "strategic.h"
#include "Isometric Utils.h"
#include "Quests.h"
#include "opplist.h"
#include "message.h"
#include "NPC.h"
#include "Merc Hiring.h"
#include "SaveLoadScreen.h"
#include "GameVersion.h"
#include "GameSettings.h"
#include "Music Control.h"
#include "Options Screen.h"
#include "ai.h"
#include "renderworld.h"
#include "SmokeEffects.h"
#include "random.h"
#include "Map Screen Interface.h"
#include "Map Screen Interface Border.h"
#include "Map Screen Interface Bottom.h"
#include "Interface.h"
#include "Map Screen Helicopter.h"
#include "Arms Dealer Init.h"
#include "Tactical Placement GUI.h"
#include "Strategic Mines.h"
#include "Strategic Town Loyalty.h"
#include "Vehicles.h"
#include "Merc Contract.h"
#include "Bullets.h"
#include "Air Raid.h"
#include "physics.h"
#include "Strategic Pathing.h"
#include "TeamTurns.h"
#include "Explosion Control.h"
#include "Creature Spreading.h"
#include "Strategic Status.h"
#include "PreBattle Interface.h"
#include "Boxing.h"
#include "Strategic AI.h"
#include "Map Screen Interface Map.h"
#include "Meanwhile.h"
#include "Dialogue Control.h"
#include "Text.h"
#include "LightEffects.h"
#include "HelpScreen.h"
#include "Animated ProgressBar.h"
#include "MercTextBox.h"
#include "Render Dirty.h"
#include "Map Information.h"
#include "Interface Items.h"
#include "Civ Quotes.h"
#include "Scheduling.h"
#include "Animation Data.h"
#include "Game Init.h"
#include "Cheats.h"
#include "Strategic Event Handler.h"
#include "Interface Panels.h"
#include "interface Dialogue.h"
#include "Assignments.h"
#include "ShopKeeper Interface.h"
#include "PostalService.h"
#include "MilitiaSquads.h"
#include "Facilities.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 "types.h"
#include "Soldier Profile.h"
#include "FileMan.h"
#include <string.h>
#include <stdio.h>
#include "DEBUG.H"
#include "Overhead.h"
#include "Keys.h"
#include "finances.h"
#include "history.h"
#include "files.h"
#include "laptop.h"
#include "INIReader.h"
#include "email.h"
#include "strategicmap.h"
#include "Game Events.h"
#include "Game Clock.h"
#include "Soldier Create.h"
#include "worlddef.h"
#include "LaptopSave.h"
#include "strategicmap.h"
#include "Queen Command.h"
#include "SaveLoadGame.h"
#include "Tactical Save.h"
#include "Squads.h"
#include "environment.h"
#include "lighting.h"
#include "Strategic Movement.h"
#include "strategic.h"
#include "Isometric Utils.h"
#include "Quests.h"
#include "opplist.h"
#include "message.h"
#include "NPC.h"
#include "Merc Hiring.h"
#include "SaveLoadScreen.h"
#include "GameVersion.h"
#include "GameSettings.h"
#include "Music Control.h"
#include "Options Screen.h"
#include "ai.h"
#include "renderworld.h"
#include "SmokeEffects.h"
#include "random.h"
#include "Map Screen Interface.h"
#include "Map Screen Interface Border.h"
#include "Map Screen Interface Bottom.h"
#include "Interface.h"
#include "Map Screen Helicopter.h"
#include "environment.h"
#include "Arms Dealer Init.h"
#include "Tactical Placement GUI.h"
#include "Strategic Mines.h"
#include "Strategic Town Loyalty.h"
#include "Vehicles.h"
#include "Merc Contract.h"
#include "Bullets.h"
#include "Air Raid.h"
#include "physics.h"
#include "Strategic Pathing.h"
#include "TeamTurns.h"
#include "Explosion Control.h"
#include "Creature Spreading.h"
#include "Strategic Status.h"
#include "PreBattle Interface.h"
#include "Boxing.h"
#include "Strategic AI.h"
#include "Map Screen Interface Map.h"
#include "Meanwhile.h"
#include "Dialogue Control.h"
#include "Text.h"
#include "Map Screen Interface.h"
#include "LightEffects.h"
#include "HelpScreen.h"
#include "Animated ProgressBar.h"
#include "MercTextBox.h"
#include "Render Dirty.h"
#include "Map Information.h"
#include "Interface Items.h"
#include "Civ Quotes.h"
#include "Scheduling.h"
#include "Animation Data.h"
#include "Game Init.h"
#include "Cheats.h"
#include "Strategic Event Handler.h"
#include "Interface Panels.h"
#include "interface Dialogue.h"
#include "Assignments.h"
#include "Interface Items.h"
#include "ShopKeeper Interface.h"
#include "PostalService.h"
// HEADROCK HAM B1: Additional Include for HAM
#include "MilitiaSquads.h"
// HEADROCK HAM 3.5: Another include for HAM
#include "Facilities.h"
// HEADROCK HAM 3.6: Yet another include, goddammit
#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 "BobbyRMailOrder.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 "Vehicles.h"
#include "BriefingRoom_Data.h"
#include <vfs/Core/vfs.h>
//rain
//end rain
#include "connect.h"
#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(...)
/////////////////////////////////////////////////////
//
// Local Defines
//
/////////////////////////////////////////////////////
#include <language.hpp>
#ifdef JA2UB
#include "Ja25 Strategic Ai.h"
#include "Ja25_Tactical.h"
#include "Strategic Movement.h"
#include "LuaInitNPCs.h"
#include "ub_config.h"
#include "Ja25Update.h"
#endif
#include "LuaInitNPCs.h"
#include <language.hpp>
#ifdef JA2UB
//void ConvertWeapons( SOLDIERTYPE *pSoldier );
extern void MakeBadSectorListFromMapsOnHardDrive( BOOLEAN fDisplayMessages ); // ja25 UB
#endif
@@ -169,6 +205,8 @@ extern BOOLEAN gfCreatureMeanwhileScenePlayed;
BOOLEAN gMusicModeToPlay = FALSE;
//extern BOOLEAN gfFirstTimeInGameHeliCrash;
#ifdef JA2BETAVERSION
BOOLEAN gfDisplaySaveGamesNowInvalidatedMsg = FALSE;
#endif
@@ -176,13 +214,14 @@ BOOLEAN gfDisplaySaveGamesNowInvalidatedMsg = FALSE;
BOOLEAN gfUseConsecutiveQuickSaveSlots = FALSE;
UINT32 guiCurrentQuickSaveNumber = 0;
UINT32 guiLastSaveGameNum = 1;
BOOLEAN DoesAutoSaveFileExist( BOOLEAN fLatestAutoSave );
UINT32 guiJA2EncryptionSet = 0;
UINT32 CalcJA2EncryptionSet( SAVED_GAME_HEADER * pSaveGameHeader );
typedef struct
{
//The screen that the game was saved from
//The screen that the gaem was saved from
UINT32 uiCurrentScreen;
UINT32 uiCurrentUniqueSoldierId;
@@ -493,6 +532,10 @@ BOOLEAN LoadSavedMercProfiles( HWFILE hwFile );
BOOLEAN SaveSoldierStructure( 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 LoadPtrInfo( PTR *pData, UINT32 uiSizeOfObject, HWFILE hFile );
@@ -580,7 +623,28 @@ void ValidateStrategicGroups();
//if all that sounds compilcated, it is
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 )
{
UINT32 uiNumBytesRead;
@@ -596,7 +660,7 @@ BOOLEAN LBENODE::Load( HWFILE hFile )
//when combined with copy assignment which makes a new LBENODE
gLastLBEUniqueID = uniqueID + 1;
}
int size = 0;
int size;
if ( !FileRead( hFile, &size, sizeof(int), &uiNumBytesRead ) )
{
return(FALSE);
@@ -661,7 +725,7 @@ BOOLEAN LBENODE::Save( HWFILE hFile, bool fSavingMap )
return TRUE;
}
static BOOLEAN LoadArmsDealerInventoryFromSavedGameFile( HWFILE hFile )
BOOLEAN LoadArmsDealerInventoryFromSavedGameFile( HWFILE hFile )
{
UINT32 uiNumBytesRead;
UINT8 ubArmsDealer;
@@ -672,7 +736,7 @@ static BOOLEAN LoadArmsDealerInventoryFromSavedGameFile( HWFILE hFile )
if (guiCurrentSaveGameVersion >= NIV_SAVEGAME_DATATYPE_CHANGE)
{
int dealers = 0;
int dealers;
if (!FileRead( hFile, &dealers, sizeof( int ), &uiNumBytesRead ))
{
return( FALSE );
@@ -700,7 +764,7 @@ static BOOLEAN LoadArmsDealerInventoryFromSavedGameFile( HWFILE hFile )
//loop through all the dealers inventories
for( ubArmsDealer=0; ubArmsDealer<dealers; ++ubArmsDealer )
{
int size = 0;
int size;
if (!FileRead( hFile, &size, sizeof( int ), &uiNumBytesRead ))
{
return( FALSE );
@@ -1441,7 +1505,7 @@ BOOLEAN MERCPROFILESTRUCT::Load(HWFILE hFile, bool forceLoadOldVersion, bool for
numBytesRead = ReadFieldByField(hFile, &filler, sizeof(filler), sizeof(UINT8), numBytesRead);
//DBrot: More rooms
int size = 0;
int size;
if ( numBytesRead + buffer != SIZEOF_MERCPROFILESTRUCT_POD )
{
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
Menptr[cnt].ubNextToPreviousAttackerID = NOBODY;
@@ -8664,7 +8732,7 @@ BOOLEAN SaveGeneralInfo( HWFILE hFile )
extern UINT32 guiRainLoop;
//end rain
static void EnsureValidLoadScreen( UINT32* puiScreen )
void EnsureValidLoadScreen( UINT32* puiScreen )
{
if (!puiScreen)
return;
@@ -9734,3 +9802,30 @@ UINT32 CalcJA2EncryptionSet( SAVED_GAME_HEADER * pSaveGameHeader )
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 "WordWrap.h"
#include "strategicmap.h"
#include "finances.h"
#include "WCheck.h"
#include "Utilities.h"
#include "Cursors.h"
@@ -18,6 +19,7 @@
#include "Options Screen.h"
#include "GameVersion.h"
#include "sysutil.h"
#include "Tactical Save.h"
#include "Overhead.h"
#include "gamescreen.h"
#include "GameSettings.h"
@@ -29,6 +31,7 @@
#include "message.h"
#include "Map Screen Interface.h"
#include "Multi Language Graphic Utils.h"
#include "Campaign Types.h"
#include "PostalService.h"
#include "connect.h"
@@ -38,6 +41,10 @@
#include <vfs/Core/vfs_file_raii.h>
#ifdef JA2UB
#include "Strategic Movement.h"
//#include "Strategic Movement Costs.h"
#include "LuaInitNPCs.h"
#endif
+29 -21
View File
@@ -1,22 +1,30 @@
#include "builddefines.h"
#include <stdio.h>
#include <types.h>
#include <video.h>
#include <MemMan.h>
#include <Overhead Types.h>
#include <Soldier Control.h>
#include "renderworld.h"
#include "input.h"
#include "Font.h"
#include "screenids.h"
#include "Overhead.h"
#include "Font Control.h"
#include "Animation Control.h"
#include "Animation Data.h"
#include "Render Dirty.h"
#include "Sys Globals.h"
#include "english.h"
#include "MessageBoxScreen.h"
#include "builddefines.h"
#include <stdio.h>
#include <time.h>
#include "sgp.h"
#include "gameloop.h"
#include "himage.h"
#include "vobject.h"
#include "vobject_blitters.h"
#include "worlddef.h"
#include "renderworld.h"
#include "input.h"
#include "Font.h"
#include "screenids.h"
#include "Overhead.h"
#include "sysutil.h"
#include "Font Control.h"
#include "Animation Control.h"
#include "Animation Data.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
class OBJECTTYPE;
@@ -36,7 +44,7 @@ static UINT8 ubNumStates = 0;
static UINT16 *pusStates = NULL;
static INT8 ubCurLoadedState = 0;
static void CycleAnimations( )
void CycleAnimations( )
{
INT32 cnt;
@@ -310,7 +318,7 @@ UINT32 AniEditScreenHandle(void)
}
static UINT16 GetAnimStateFromName( STR8 zName )
UINT16 GetAnimStateFromName( STR8 zName )
{
INT32 cnt;
+6 -1
View File
@@ -1,3 +1,4 @@
#include <stdio.h>
#include <time.h>
#include "sgp.h"
#include "gameloop.h"
@@ -16,16 +17,20 @@
#include "Tactical Save.h"
#include "Interface.h"
#include "GameSettings.h"
#include "mapscreen.h"
#include "Interface Control.h"
#include "Text.h"
#include "HelpScreen.h"
#include "PreBattle Interface.h"
#include "Tactical Placement GUI.h"//dnl ch45 071009
#include "Map Screen Interface Map Inventory.h"//dnl ch51 081009
#include "World Items.h"//dnl ch77 191113
#include "Overhead.h" // added by Flugente
#include "Ambient Control.h" // sevenfm
#include "SaveLoadScreen.h"
#include "Lua Interpreter.h"
//**ddd direct link libraries
#pragma comment (lib, "user32.lib")
#pragma comment (lib, "gdi32.lib")
@@ -75,7 +80,7 @@ void HandleNewScreenChange( UINT32 uiNewScreen, UINT32 uiOldScreen );
#ifdef JA2BETAVERSION
BOOLEAN gubReportMapscreenLock = 0;
static void ReportMapscreenErrorLock()
void ReportMapscreenErrorLock()
{
switch( gubReportMapscreenLock )
{
+81 -64
View File
@@ -1,68 +1,85 @@
#include "builddefines.h"
#include <stdio.h>
#include "sgp.h"
#include "gameloop.h"
#include <Overhead Types.h>
#include <Soldier Control.h>
#include "renderworld.h"
#include "Font.h"
#include "screenids.h"
#include "Screens.h"
#include <Meanwhile.h>
#include "HelpScreen.h"
#include "Overhead.h"
#include "Event Pump.h"
#include "Font Control.h"
#include "Timer Control.h"
#include "Radar Screen.h"
#include "Render Dirty.h"
#include "Interface.h"
#include "Handle UI.h"
#include "Cursors.h"
#include "vobject_blitters.h"
#include "Button System.h"
#include "lighting.h"
#include "Sys Globals.h"
#include "environment.h"
#include "Bullets.h"
#include <mousesystem.h>
#include "message.h"
#include "overhead map.h"
#include "Strategic Exit GUI.h"
#include "Tactical Placement GUI.h"
#include "Air Raid.h"
#include "Game Clock.h"
#include "Game Init.h"
#include "builddefines.h"
#include <stdio.h>
#include <time.h>
#include "sgp.h"
#include "gameloop.h"
#include "vobject.h"
#include "worlddef.h"
#include "renderworld.h"
#include "Font.h"
#include "screenids.h"
#include "Screens.h"
#include "Overhead.h"
#include "Isometric Utils.h"
#include "sysutil.h"
#include "input.h"
#include "Event Pump.h"
#include "Font Control.h"
#include "Timer Control.h"
#include "Radar Screen.h"
#include "Render Dirty.h"
#include "Interface.h"
#include "Handle UI.h"
#include <wchar.h>
#include <tchar.h>
#include "Cursors.h"
#include "vobject_blitters.h"
#include "Button System.h"
#include "lighting.h"
#include "renderworld.h"
#include "Sys Globals.h"
#include "environment.h"
#include "Bullets.h"
#include "Assignments.h"
#include "message.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"
#ifdef JA2UB
+52 -39
View File
@@ -1,38 +1,51 @@
#include "builddefines.h"
#include <cstdio>
#include "sgp.h"
#include "gameloop.h"
#include "himage.h"
#include "vobject.h"
#include "vobject_blitters.h"
#include "WCheck.h"
#include "input.h"
#include "Font.h"
#include "screenids.h"
#include "Screens.h"
#include "Font Control.h"
#include <Overhead Types.h>
#include <Soldier Control.h>
#include "Timer Control.h"
#include "Sys Globals.h"
#include <Handle UI.h>
#include "Overhead.h"
#include "Utilities.h"
#include "Render Dirty.h"
#include "jascreens.h"
#include "mainmenuscreen.h"
#include "Game Init.h"
#include "Init.h"
#include "Cursor Control.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 "Text.h"
#include "INIReader.h"
#include "builddefines.h"
#include <stdio.h>
#include <time.h>
#include "sgp.h"
#include "gameloop.h"
#include "himage.h"
#include "vobject.h"
#include "vobject_blitters.h"
#include "WCheck.h"
#include "input.h"
#include "Font.h"
#include "timer.h"
#include "mousesystem.h"
#include "screenids.h"
#include "Screens.h"
#include "Font Control.h"
#include "sysutil.h"
#include "tiledef.h"
#include "worlddef.h"
#include "editscreen.h"
#include <wchar.h>
#include <tchar.h>
#include "Timer Control.h"
#include "Sys Globals.h"
#include "Interface.h"
#include "Overhead.h"
#include "Utilities.h"
#include "Render Dirty.h"
#include "jascreens.h"
#include "gameloop.h"
#include "Event Pump.h"
#include "Animation Cache.h"
#include "lighting.h"
#include "mainmenuscreen.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 <language.hpp>
@@ -650,7 +663,7 @@ UINT32 DebugScreenInit(void)
}
static BOOLEAN CheckForAndExitTacticalDebug( )
BOOLEAN CheckForAndExitTacticalDebug( )
{
if ( gfExitDebugScreen )
{
@@ -667,7 +680,7 @@ static BOOLEAN CheckForAndExitTacticalDebug( )
return( FALSE );
}
static void ExitDebugScreen( )
void ExitDebugScreen( )
{
if ( guiCurrentScreen == DEBUG_SCREEN )
{
@@ -922,7 +935,7 @@ UINT32 DemoExitScreenInit(void)
}
static void DoneFadeOutForDemoExitScreen( void )
void DoneFadeOutForDemoExitScreen( void )
{
gfProgramIsRunning = FALSE;
}
@@ -930,7 +943,7 @@ static void DoneFadeOutForDemoExitScreen( void )
// unused
//extern INT8 gbFadeSpeed;
static void DisplayTopwareGermanyAddress()
void DisplayTopwareGermanyAddress()
{
VOBJECT_DESC vo_desc;
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
+1 -11
View File
@@ -200,17 +200,7 @@ void LoadGameUBOptions()
gGameUBOptions.BorderItem = iniReader.ReadBoolean("Unfinished Business Settings","BORDER_ITEM", 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);
//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.HandleAddingEnemiesToTunnelMaps = iniReader.ReadBoolean("Unfinished Business Settings","HANDLE_ADDING_ENEMIES_TO_TUNNEL_MAPS", TRUE);
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.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 BettyBloodCatSectorY;
INT8 BettyBloodCatSectorZ;
INT16 Tunnel1_SectorX;
INT16 Tunnel1_SectorY;
INT8 Tunnel1_SectorZ;
INT16 Tunnel2_SectorX;
INT16 Tunnel2_SectorY;
INT8 Tunnel2_SectorZ;
} GAME_UB_OPTIONS;
extern GAME_UB_OPTIONS gGameUBOptions;
+2 -1
View File
@@ -3,6 +3,7 @@
#include "Utilities.h"
#include "WCheck.h"
#include "Timer Control.h"
#include "DEBUG.H"
#include "WordWrap.h"
#include "Encrypted File.h"
#include "email.h"
@@ -15,7 +16,7 @@
#include "sysutil.h"
#include "LocalizedStrings.h"
#include <soldier profile type.h>
#include "Soldier Profile.h"
UINT8 MAX_NUMBER_MERCS = 0;
+104 -89
View File
@@ -1,81 +1,96 @@
#include "Assignments.h"
#include "strategic.h"
#include "Items.h"
#include "Overhead.h"
#include "Game Clock.h"
#include "stdlib.h"
#include "message.h"
#include "Font Control.h"
#include "Map Screen Interface.h"
#include "soldier profile type.h"
#include "Soldier Profile.h"
#include "Campaign.h"
#include "Queen Command.h"
#include "strategicmap.h"
#include "Text.h"
#include "Dialogue Control.h"
#include "NPC.h"
#include "Strategic Town Loyalty.h"
#include "Animation Control.h"
#include "mapscreen.h"
#include "Squads.h"
#include "Map Screen Helicopter.h"
#include "PopUpBox.h"
#include "Vehicles.h"
#include "Merc Contract.h"
#include "Map Screen Interface Map.h"
#include "Strategic Movement.h"
#include "laptop.h"
#include "finances.h"
#include "LaptopSave.h"
#include "renderworld.h"
#include "Interface Control.h"
#include "Interface.h"
#include "Soldier Find.h"
#include <Rotting Corpses.h>
#include "Utilities.h"
#include "random.h"
#include "Soldier Add.h"
#include "GameSettings.h"
#include "Isometric Utils.h"
#include "Soldier macros.h"
#include "Explosion Control.h"
#include "SkillCheck.h"
#include "Quests.h"
#include "Town Militia.h"
#include "Map Screen Interface Border.h"
#include "math.h"
#include "Game Event Hook.h"
#include "Map Information.h"
#include "Strategic Status.h"
#include "history.h"
#include "Map Screen Interface Map Inventory.h"
#include "interface Dialogue.h"
// added by SANDRO
#include "AIInternals.h"
#include "Morale.h"
#include "Food.h"
#include "Tactical Save.h" // added by Flugente
#include "Campaign Types.h" // added by Flugente
#include "DynamicDialogue.h" // added by Flugente
#include "Disease.h" // added by Flugente
#include "PMC.h" // added by Flugente
#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 "Assignments.h"
#include "strategic.h"
#include "Items.h"
#include "Overhead.h"
#include "Game Clock.h"
#include "stdlib.h"
#include "message.h"
#include "Font Control.h"
#include "Map Screen Interface.h"
#include "soldier profile type.h"
#include "Soldier Profile.h"
#include "Campaign.h"
#include "Queen Command.h"
#include "strategicmap.h"
#include "Text.h"
#include "Dialogue Control.h"
#include "NPC.h"
#include "Strategic Town Loyalty.h"
#include "Animation Control.h"
#include "mapscreen.h"
#include "Squads.h"
#include "Map Screen Helicopter.h"
#include "PopUpBox.h"
#include "Vehicles.h"
#include "Merc Contract.h"
#include "Map Screen Interface Map.h"
#include "Strategic Movement.h"
#include "laptop.h"
#include "finances.h"
#include "LaptopSave.h"
#include "renderworld.h"
#include "Interface Control.h"
#include "Interface.h"
#include "Soldier Find.h"
#include "ai.h"
#include "Utilities.h"
#include "random.h"
#include "line.h"
#include "Soldier Add.h"
#include "GameSettings.h"
#include "Isometric Utils.h"
#include "Soldier macros.h"
#include "Explosion Control.h"
#include "SkillCheck.h"
#include "Quests.h"
#include "Town Militia.h"
#include "Map Screen Interface Border.h"
#include "math.h"
#include "SkillCheck.h"
#include "Strategic Pathing.h"
#include "Game Event Hook.h"
#include "Strategic Event Handler.h"
#include "Map Information.h"
#include "Strategic Status.h"
#include "history.h"
#include "Map Screen Interface Map Inventory.h"
#include "interface Dialogue.h"
// added by SANDRO
#include "AIInternals.h"
#include "Morale.h"
#include "Food.h"
#include "Tactical Save.h" // added by Flugente
#include "Campaign Types.h" // added by Flugente
#include "Strategic Town Loyalty.h"
#include "DynamicDialogue.h" // added by Flugente
#include "Disease.h" // added by Flugente
#include "Queen Command.h" // added by Flugente
#include "PMC.h" // added by Flugente
#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 <queue>
#include "Vehicles.h"
#include "GameInitOptionsScreen.h"
#include "Facilities.h"
//forward declarations of common classes to eliminate includes
class OBJECTTYPE;
class SOLDIERTYPE;
extern int POP_UP_BOX_X;
extern WorldItems gAllWorldItems;
#include "MilitiaSquads.h"
// HEADROCK HAM 3.5: Include Facility data
#include "Facilities.h"
#include "Vehicles.h"
#ifdef JA2UB
#include "Explosion Control.h"
@@ -767,7 +782,7 @@ void ChangeSoldiersAssignment( SOLDIERTYPE *pSoldier, INT8 bAssignment )
fMapPanelDirty = TRUE;
}
static BOOLEAN BasicCanCharacterAssignment( SOLDIERTYPE * pSoldier, BOOLEAN fNotInCombat )
BOOLEAN BasicCanCharacterAssignment( SOLDIERTYPE * pSoldier, BOOLEAN fNotInCombat )
{
AssertNotNIL(pSoldier);
// global conditions restricting all assignment changes
@@ -1350,7 +1365,7 @@ BOOLEAN DoesCharacterHaveAnyItemsToRepair( SOLDIERTYPE *pSoldier, INT8 bHighestP
return( FALSE );
}
static BOOLEAN BasicCanCharacterRepair( SOLDIERTYPE * pSoldier )
BOOLEAN BasicCanCharacterRepair( SOLDIERTYPE * pSoldier )
{
AssertNotNIL(pSoldier);
@@ -2433,7 +2448,7 @@ BOOLEAN CanCharacterTrainTeammates( SOLDIERTYPE *pSoldier )
return( TRUE );
}
static BOOLEAN CanCharacterBeTrainedByOther( SOLDIERTYPE *pSoldier )
BOOLEAN CanCharacterBeTrainedByOther( SOLDIERTYPE *pSoldier )
{
AssertNotNIL(pSoldier);
@@ -2818,7 +2833,7 @@ BOOLEAN CanCharacterSnitch( SOLDIERTYPE *pSoldier )
return( FALSE );
}
static BOOLEAN CanCharacterSpreadPropaganda( SOLDIERTYPE *pSoldier )
BOOLEAN CanCharacterSpreadPropaganda( SOLDIERTYPE *pSoldier )
{
AssertNotNIL(pSoldier);
@@ -2849,7 +2864,7 @@ static BOOLEAN CanCharacterSpreadPropaganda( SOLDIERTYPE *pSoldier )
return( TRUE );
}
static BOOLEAN CanCharacterGatherInformation( SOLDIERTYPE *pSoldier )
BOOLEAN CanCharacterGatherInformation( SOLDIERTYPE *pSoldier )
{
AssertNotNIL(pSoldier);
@@ -2880,7 +2895,7 @@ static BOOLEAN CanCharacterGatherInformation( SOLDIERTYPE *pSoldier )
return( TRUE );
}
static BOOLEAN CanCharacterSnitchInPrison( SOLDIERTYPE *pSoldier )
BOOLEAN CanCharacterSnitchInPrison( SOLDIERTYPE *pSoldier )
{
AssertNotNIL(pSoldier);
@@ -3158,7 +3173,7 @@ UINT8 GetNumberThatCanBeDoctored( SOLDIERTYPE *pDoctor, BOOLEAN fThisHour, BOOLE
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;
SOLDIERTYPE *pSoldier = MercPtrs[0], *pTeamSoldier = NULL;
@@ -3579,7 +3594,7 @@ UINT32 CalculatePrisonGuardValue(SOLDIERTYPE *pSoldier )
return( usValue );
}
static UINT32 CalculateSnitchGuardValue(SOLDIERTYPE *pSoldier )
UINT32 CalculateSnitchGuardValue(SOLDIERTYPE *pSoldier )
{
// this is an assignment
UINT32 usValue = 0;
@@ -3615,7 +3630,7 @@ static UINT32 CalculateSnitchGuardValue(SOLDIERTYPE *pSoldier )
return( usValue );
}
static UINT32 CalculateAllGuardsValueInPrison( INT16 sMapX, INT16 sMapY, INT8 bZ )
UINT32 CalculateAllGuardsValueInPrison( INT16 sMapX, INT16 sMapY, INT8 bZ )
{
UINT32 prisonguardvalue = 0;
@@ -3636,7 +3651,7 @@ static UINT32 CalculateAllGuardsValueInPrison( INT16 sMapX, INT16 sMapY, INT8 bZ
return( prisonguardvalue );
}
static UINT32 CalculateAllSnitchesGuardValueInPrison( INT16 sMapX, INT16 sMapY, INT8 bZ )
UINT32 CalculateAllSnitchesGuardValueInPrison( INT16 sMapX, INT16 sMapY, INT8 bZ )
{
UINT32 prisonguardvalue = 0;
@@ -3657,7 +3672,7 @@ static UINT32 CalculateAllSnitchesGuardValueInPrison( INT16 sMapX, INT16 sMapY,
return( prisonguardvalue );
}
static UINT32 CalculateAllGuardsNumberInPrison( INT16 sMapX, INT16 sMapY, INT8 bZ )
UINT32 CalculateAllGuardsNumberInPrison( INT16 sMapX, INT16 sMapY, INT8 bZ )
{
UINT8 numprisonguards = 0;
@@ -3832,7 +3847,7 @@ INT16 GetTrainWorkerPts(SOLDIERTYPE *pSoldier)
}
// anv: handle prisoners exposing snitch as a snitch
static BOOL HandleSnitchExposition(SOLDIERTYPE *pSoldier)
BOOL HandleSnitchExposition(SOLDIERTYPE *pSoldier)
{
UINT32 uiSuspicion = 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
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;
UINT16 usDamagePts, usPtsFixed;
@@ -6814,7 +6829,7 @@ struct admintmpstruct
FLOAT percentage;
};
static UINT16 GetNumberofAdministratableMercs( INT16 sX, INT16 sY )
UINT16 GetNumberofAdministratableMercs( INT16 sX, INT16 sY )
{
UINT16 num = 0;
UINT8 townid_origin = GetTownIdForSector( sX, sY );
@@ -7927,7 +7942,7 @@ BOOLEAN TrainTownInSector( SOLDIERTYPE *pTrainer, INT16 sMapX, INT16 sMapY, INT1
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;
@@ -11454,7 +11469,7 @@ void ClearScreenMaskForMapScreenExit( void )
CreateDestroyMouseRegionsForPrisonerMenu( );
}
static void CreateDestroyMouseRegions( void )
void CreateDestroyMouseRegions( void )
{
static BOOLEAN fCreated = FALSE;
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
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 )
{
@@ -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.
static void PayFacilityDebtManuallyYesNoBoxCallback( UINT8 bExitValue )
void PayFacilityDebtManuallyYesNoBoxCallback( UINT8 bExitValue )
{
// This callback should only be called if the player can pay off the ENTIRE debt!!
Assert( LaptopSaveInfo.iCurrentBalance >= giTotalOwedForFacilityOperationsToday );
+97 -90
View File
@@ -1,68 +1,75 @@
#include "builddefines.h"
#include <stdio.h>
#include "types.h"
#include "Auto Resolve.h"
#include "Strategic Movement.h"
#include "Queen Command.h"
#include "Music Control.h"
#include "PreBattle Interface.h"
#include "Player Command.h"
#include "mousesystem.h"
#include "Button System.h"
#include "gameloop.h"
#include "screenids.h"
#include "mapscreen.h"
#include "vobject.h"
#include "video.h"
#include "input.h"
#include "gamescreen.h"
#include "Render Dirty.h"
#include "vobject_blitters.h"
#include "sysutil.h"
#include "Font Control.h"
#include "Soldier Create.h"
#include "Overhead.h"
#include "Items.h"
#include "Weapons.h"
#include "Sound Control.h"
#include "Game Clock.h"
#include "Soldier Profile.h"
#include "Campaign.h"
#include "Tactical Save.h"
#include "Strategic Status.h"
#include "Text.h"
#include "WordWrap.h"
#include "Squads.h"
#include "random.h"
#include "line.h"
#include "english.h"
#include "Strategic Merc Handler.h"
#include "strategic.h"
#include "message.h"
#include "Town Militia.h"
#include "Animation Data.h"
#include "Creature Spreading.h"
#include "Strategic AI.h"
#include "Morale.h"
#include "Strategic Town Loyalty.h"
#include "GameSettings.h"
#include "Soldier macros.h"
#include "strategicmap.h"
#include "Quests.h"
#include "Meanwhile.h"
#include "Inventory Choosing.h"
#include "Game Event Hook.h"
#include "Assignments.h"
#include "Cheats.h"
#include "Map Information.h"
#include "MilitiaSquads.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 "builddefines.h"
#include <stdio.h>
#include "types.h"
#include "Auto Resolve.h"
#include "Strategic Movement.h"
#include "Queen Command.h"
#include "Music Control.h"
#include "PreBattle Interface.h"
#include "Player Command.h"
#include "mousesystem.h"
#include "Button System.h"
#include "gameloop.h"
#include "screenids.h"
#include "mapscreen.h"
#include "vobject.h"
#include "video.h"
#include "input.h"
#include "gamescreen.h"
#include "Render Dirty.h"
#include "vobject_blitters.h"
#include "sysutil.h"
#include "Font Control.h"
#include "Soldier Create.h"
#include "Overhead.h"
#include "Interface.h"
#include "Items.h"
#include "Weapons.h"
#include "Sound Control.h"
#include "Game Clock.h"
#include "Soldier Profile.h"
#include "Campaign.h"
#include "Tactical Save.h"
#include "Strategic Status.h"
#include "Map Screen Interface.h"
#include "Text.h"
#include "WordWrap.h"
#include "Squads.h"
#include "random.h"
#include "line.h"
#include "english.h"
#include "Strategic Pathing.h"
#include "Strategic Merc Handler.h"
#include "strategic.h"
#include "message.h"
#include "Town Militia.h"
#include "Animation Data.h"
#include "Creature Spreading.h"
#include "Strategic AI.h"
#include "SkillCheck.h"
#include "rt time defines.h"
#include "Morale.h"
#include "Strategic Town Loyalty.h"
#include "GameSettings.h"
#include "Soldier macros.h"
#include "strategicmap.h"
#include "Quests.h"
#include "Meanwhile.h"
#include "Inventory Choosing.h"
#include "Game Event Hook.h"
#include "Assignments.h"
#include "Cheats.h"
#include "Map Information.h"
#include "MilitiaSquads.h"
// #include "Strategic AI.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"
//#define INVULNERABILITY
@@ -330,7 +337,7 @@ SOLDIERCELL *gpCivs = NULL;
SOLDIERCELL *gpEnemies = NULL;
//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 )
{
@@ -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 )
{
@@ -349,7 +356,7 @@ static void PlayAutoResolveSampleFromFile( STR8 szFileName, UINT32 usRate, UINT3
extern void ClearPreviousAIGroupAssignment( GROUP *pGroup );
static void EliminateAllMercs()
void EliminateAllMercs()
{
SOLDIERCELL *pAttacker = NULL;
INT32 i, iNum = 0;
@@ -380,7 +387,7 @@ static void EliminateAllMercs()
}
}
static void EliminateAllFriendlies()
void EliminateAllFriendlies()
{
INT32 i;
if( gpAR )
@@ -496,7 +503,7 @@ void EliminateAllEnemies( UINT8 ubSectorX, UINT8 ubSectorY )
#define ORIG_RIGHT 92
#define ORIG_BOTTOM 84
static void DoTransitionFromPreBattleInterfaceToAutoResolve()
void DoTransitionFromPreBattleInterfaceToAutoResolve()
{
SGPRect SrcRect, DstRect;
UINT32 uiStartTime, uiCurrTime;
@@ -727,7 +734,7 @@ UINT32 AutoResolveScreenHandle()
return AUTORESOLVE_SCREEN;
}
static void RefreshMerc( SOLDIERTYPE *pSoldier )
void RefreshMerc( SOLDIERTYPE *pSoldier )
{
pSoldier->stats.bLife = pSoldier->stats.bLifeMax;
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
//stationary groups first.
static void AssociateEnemiesWithStrategicGroups()
void AssociateEnemiesWithStrategicGroups()
{
SECTORINFO *pSector;
GROUP *pGroup;
@@ -1186,7 +1193,7 @@ void CalculateSoldierCells( BOOLEAN fReset )
}
static INT32 DetermineCellID( SOLDIERCELL *pCell )
INT32 DetermineCellID( SOLDIERCELL *pCell )
{
INT32 iIndex;
@@ -1205,7 +1212,7 @@ static INT32 DetermineCellID( SOLDIERCELL *pCell )
return 0;
}
static BOOLEAN IsItAllowedToRender( SOLDIERCELL *pCell )
BOOLEAN IsItAllowedToRender( SOLDIERCELL *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 ) ) );
}
static void BuildInterfaceBuffer()
void BuildInterfaceBuffer()
{
VSURFACE_DESC vs_desc;
UINT16 usUselessWidth, usUselessHeight;
@@ -1430,7 +1437,7 @@ static void BuildInterfaceBuffer()
SetClippingRect( &ClipRect );
}
static void ExpandWindow()
void ExpandWindow()
{
SGPRect OldRect;
UINT32 uiDestPitchBYTES;
@@ -1525,7 +1532,7 @@ static void ExpandWindow()
}
static OBJECTTYPE* FindMedicalKit()
OBJECTTYPE* FindMedicalKit()
{
INT32 i;
INT32 iSlot;
@@ -1540,7 +1547,7 @@ static OBJECTTYPE* FindMedicalKit()
return NULL;
}
static UINT32 AutoBandageMercs()
UINT32 AutoBandageMercs()
{
INT32 i, iBest;
UINT32 uiPointsUsed, uiCurrPointsUsed, uiMaxPointsUsed, uiParallelPointsUsed;
@@ -3723,7 +3730,7 @@ void RenderSoldierCellHealth( SOLDIERCELL *pCell )
mprintf( xp, yp, pStr );
}
static UINT8 GetUnusedMercProfileID()
UINT8 GetUnusedMercProfileID()
{
UINT8 ubRandom=0;
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 = (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 )
{
@@ -4108,7 +4115,7 @@ void DrawDebugText( SOLDIERCELL *pCell )
}
}
static SOLDIERCELL* ChooseTarget( SOLDIERCELL *pAttacker )
SOLDIERCELL* ChooseTarget( SOLDIERCELL *pAttacker )
{
INT32 iAvailableTargets;
INT32 index;
@@ -4178,7 +4185,7 @@ static SOLDIERCELL* ChooseTarget( SOLDIERCELL *pAttacker )
return NULL;
}
static BOOLEAN FireAShot( SOLDIERCELL *pAttacker )
BOOLEAN FireAShot( SOLDIERCELL *pAttacker )
{
OBJECTTYPE *pItem;
SOLDIERTYPE *pSoldier;
@@ -4232,7 +4239,7 @@ static BOOLEAN FireAShot( SOLDIERCELL *pAttacker )
return FALSE;
}
static BOOLEAN FireTankCannon( SOLDIERCELL *pAttacker )
BOOLEAN FireTankCannon( SOLDIERCELL *pAttacker )
{
OBJECTTYPE *pItem;
SOLDIERTYPE *pSoldier;
@@ -4274,7 +4281,7 @@ static BOOLEAN FireTankCannon( SOLDIERCELL *pAttacker )
return FALSE;
}
static BOOLEAN FireAntiTankWeapon( SOLDIERCELL *pAttacker )
BOOLEAN FireAntiTankWeapon( SOLDIERCELL *pAttacker )
{
OBJECTTYPE *pItem;
SOLDIERTYPE *pSoldier;
@@ -4329,7 +4336,7 @@ static BOOLEAN FireAntiTankWeapon( SOLDIERCELL *pAttacker )
return FALSE;
}
static BOOLEAN AttackerHasKnife( SOLDIERCELL *pAttacker )
BOOLEAN AttackerHasKnife( SOLDIERCELL *pAttacker )
{
UINT8 invsize = pAttacker->pSoldier->inv.size();
for( UINT8 i = 0; i < invsize; ++i )
@@ -4344,7 +4351,7 @@ static BOOLEAN AttackerHasKnife( SOLDIERCELL *pAttacker )
return FALSE;
}
static BOOLEAN TargetHasLoadedGun( SOLDIERTYPE *pSoldier )
BOOLEAN TargetHasLoadedGun( SOLDIERTYPE *pSoldier )
{
OBJECTTYPE *pItem;
UINT8 invsize = pSoldier->inv.size();
@@ -4366,7 +4373,7 @@ static BOOLEAN TargetHasLoadedGun( SOLDIERTYPE *pSoldier )
return FALSE;
}
static void AttackTarget( SOLDIERCELL *pAttacker, SOLDIERCELL *pTarget )
void AttackTarget( SOLDIERCELL *pAttacker, SOLDIERCELL *pTarget )
{
INT16 sAttack;
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;
SOLDIERCELL *pAttacker;
@@ -5300,7 +5307,7 @@ static void TargetHitCallback( SOLDIERCELL *pTarget, INT32 index )
pTarget->uiFlags |= CELL_HITBYATTACKER | CELL_DIRTY;
}
static void Delay( UINT32 uiMilliseconds )
void Delay( UINT32 uiMilliseconds )
{
INT32 iTime;
iTime = GetJA2Clock();
+5 -2
View File
@@ -3,6 +3,8 @@
#include "Campaign Init.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"
@@ -13,6 +15,7 @@
#include "Tactical Save.h"
#include "connect.h"
#include <vfs/Core/vfs.h>
#include "XMLWriter.h"
#include "UndergroundInit.h"
@@ -306,7 +309,7 @@ void InitKnowFacilitiesFlags( )
//Mobile groups are handled separately from sectors, because they are on the move.
static void GeneratePatrolGroups()
void GeneratePatrolGroups()
{
GROUP *pGroup;
UINT8 ubNumTroops;
@@ -524,7 +527,7 @@ void BuildUndergroundSectorInfoList()
// Lesh: this function creates randomized world
// every sector can be randomized between common and alternative, chances 50/50
// randomization of individual sectors can be switched off via array RandomSector[]
static void InitWorld()
void InitWorld()
{
INT16 sSectorCounter;
+14 -9
View File
@@ -24,11 +24,16 @@
#include "Animation Data.h"
#include "opplist.h"
#include "Meanwhile.h"
#include "Strategic AI.h"
#include "MessageBoxScreen.h"
#include "Map Information.h"
#include "Queen Command.h"
#include "ai.h" // added by Flugente
#include "Isometric Utils.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 "GameInitOptionsScreen.h"
@@ -155,7 +160,7 @@ extern SECTOR_EXT_DATA SectorExternalData[256][4];
//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;
UINT8 ubSectorX, ubSectorY;
@@ -273,7 +278,7 @@ void InitLairGrumm()
}
*/
static void InitLair(INT32 iChosenMine)
void InitLair(INT32 iChosenMine)
{
CREATURE_DIRECTIVE *curr;
giLairID = iChosenMine;
@@ -512,7 +517,7 @@ void InitCreatureQuest()
}
}
static void AddCreatureToNode( CREATURE_DIRECTIVE *node )
void AddCreatureToNode( CREATURE_DIRECTIVE *node )
{
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");
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;
SOLDIERTYPE *pSoldier;
@@ -759,7 +764,7 @@ static void AddCreaturesToBattle( UINT8 ubNumYoungMales, UINT8 ubNumYoungFemales
AllTeamsLookForAll( FALSE );
}
static void AddCreaturesToBattle_Other( UINT8 ubNum )
void AddCreaturesToBattle_Other( UINT8 ubNum )
{
SOLDIERTYPE *pSoldier;
MAPEDGEPOINTINFO MapEdgepointInfo = {};
@@ -846,7 +851,7 @@ static void AddCreaturesToBattle_Other( UINT8 ubNum )
AllTeamsLookForAll( FALSE );
}
static void ChooseTownSectorToAttack( UINT8 ubSectorID, BOOLEAN fOverrideTest )
void ChooseTownSectorToAttack( UINT8 ubSectorID, BOOLEAN fOverrideTest )
{
INT32 iRandom, i;
UINT8 ubSectorX, ubSectorY;
@@ -1477,7 +1482,7 @@ void ChooseCreatureQuestStartDay()
}
}
static void DeleteDirectiveNode( CREATURE_DIRECTIVE **node )
void DeleteDirectiveNode( CREATURE_DIRECTIVE **node )
{
if( (*node)->next )
DeleteDirectiveNode( &((*node)->next) );
+6 -2
View File
@@ -12,6 +12,7 @@
#include "Facilities.h"
#include "Soldier Control.h"
#include "Map Screen Interface.h"
#include "Overhead.h"
#include "Assignments.h"
#include "GameSettings.h"
#include "LaptopSave.h"
@@ -28,7 +29,10 @@
#include "Interface.h"
#include "message.h"
#include "Morale.h"
#include "Points.h"
#include "Soldier Control.h"
#include "Isometric Utils.h"
#include "MilitiaSquads.h"
#include "Tactical Save.h"
#include <random>
@@ -1993,8 +1997,8 @@ INT32 GetTotalFacilityHourlyCosts( BOOLEAN fPositive )
pSoldier = gCharactersList[ ubCounter ].usSolID;
// Is character truly valid?
if( pSoldier != NULL && !( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) &&
pSoldier->bSectorZ == 0 &&
if( !( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) &&
pSoldier->bSectorZ == 0 && pSoldier != NULL &&
pSoldier->stats.bLife >= OKLIFE &&
!(pSoldier->flags.fMercAsleep) )
{
+25 -21
View File
@@ -1,24 +1,28 @@
#include "sgp.h"
#include "Game Clock.h"
#include "Font.h"
#include "Render Dirty.h"
#include "Timer Control.h"
#include "Overhead.h"
#include "environment.h"
#include "message.h"
#include <mousesystem.h>
#include "MercTextBox.h"
#include "renderworld.h"
#include "lighting.h"
#include "Map Screen Interface.h"
#include "Event Pump.h"
#include "Text.h"
#include "Interface Control.h"
#include "Map Screen Interface Map.h"
#include "Map Screen Interface Bottom.h"
#include "gamescreen.h"
#include "Map Information.h"
#include "GameSettings.h"
#include "sgp.h"
#include "Game Clock.h"
#include "Font.h"
#include "Render Dirty.h"
#include "Timer Control.h"
#include "Overhead.h"
#include "environment.h"
#include "Game Clock.h"
#include "message.h"
#include "Game Events.h"
#include "Assignments.h"
#include "MercTextBox.h"
#include "renderworld.h"
#include "lighting.h"
#include "Map Screen Interface.h"
#include "PreBattle Interface.h"
#include "Event Pump.h"
#include "Text.h"
#include "Interface Control.h"
#include "Map Screen Interface Map.h"
#include "Map Screen Interface Bottom.h"
#include "gamescreen.h"
#include "Map Information.h"
#include "GameSettings.h"
#include "LuaInitNPCs.h"
//#define DEBUG_GAME_CLOCK
+5 -1
View File
@@ -17,12 +17,14 @@
#include "Strategic Movement.h"
#include "Assignments.h"
#include "Strategic Mines.h"
#include "Strategic Town Loyalty.h"
#include "message.h"
#include "Map Screen Interface.h"
#include "Map Screen Helicopter.h"
#include "Scheduling.h"
#include "Arms Dealer Init.h"
#include "strategic town reputation.h"
#include "Air Raid.h"
#include "Meanwhile.h"
#include "Overhead.h"
#include "random.h"
@@ -30,6 +32,7 @@
#include "Strategic AI.h"
#include "Merc Contract.h"
#include "Strategic Status.h"
#include "INIReader.h"
#include "GameSettings.h"
#include "english.h"
#include "input.h"
@@ -47,6 +50,7 @@
#include "Rebel Command.h"
#include "interface Dialogue.h"
#include "connect.h"
#ifdef JA2UB
#include "Explosion Control.h"
@@ -81,7 +85,7 @@ void CrippledVersionEndGameCheck();
static BOOLEAN DelayEventIfBattleInProgress( STRATEGICEVENT *pEvent )
BOOLEAN DelayEventIfBattleInProgress( STRATEGICEVENT *pEvent )
{
STRATEGICEVENT *pNewEvent;
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;
+13 -4
View File
@@ -9,9 +9,11 @@
#include "Soldier Profile.h"
#include "strategicmap.h"
#include "Game Init.h"
#include "finances.h"
#include "Animation Data.h"
#include "finances.h"
#include "Soldier Create.h"
#include "strategic.h"
#include "Soldier Init List.h"
#include "strategic.h"
#include "history.h"
#include "merc entering.h"
#include "Squads.h"
@@ -29,10 +31,12 @@
#include "Creature Spreading.h"
#include "Quests.h"
#include "Strategic AI.h"
#include "LaptopSave.h"
#include "AimMembers.h"
#include "Dialogue Control.h"
#include "NPC.h"
#include "GameSettings.h"
#include "interface Dialogue.h"
#include "Map Screen Interface Border.h"
#include "Map Screen Helicopter.h"
#include "Vehicles.h"
@@ -47,17 +51,22 @@
// HEADROCK HAM 3.6: Include for adding facility debt reset
#include "Facilities.h"
// HEADROCK HAM 4: Include for initializing Manual Restrictions
#include "MilitiaSquads.h"
#include "Map Screen Interface Map Inventory.h"//dnl ch51 081009
#include "CampaignStats.h" // added by Flugente
#include "PMC.h" // added by Flugente
#include "ASD.h" // added by Flugente
#include "MiniEvents.h"
#include "Rebel Command.h"
#include "World Items.h"
#include "Vehicles.h"
#include "Text.h"
#include "connect.h"
#include "XML.h"
#include "mercs.h"
#include "aim.h"
#include "Map Screen Interface.h"
#ifdef JA2UB
#include "Ja25 Strategic Ai.h"
#include "Ja25_Tactical.h"
@@ -96,14 +105,14 @@ UINT8 gubCheatLevel = STARTING_CHEAT_LEVEL;
UINT8 gubScreenCount=0;
#ifdef JA2UB
static void InitCustomStrategicLayer ( void )
void InitCustomStrategicLayer ( void )
{
LetLuaGameInit(2); //load custom InitStrategicLayer
}
#endif
static void InitNPCs( void )
void InitNPCs( void )
{
#ifdef LUA_GAME_INIT_NPCS
+3 -2
View File
@@ -4,6 +4,7 @@
#include "Strategic Mines.h"
#include "Campaign.h"
#include "Morale.h"
#include "Quests.h"
#include "Game Clock.h"
#include "Overhead.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;
std::vector<WORLDITEM> pWorldItem;//dnl ch75 271013
@@ -984,7 +985,7 @@ static BOOLEAN RemoveItemInSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ
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 uiTotalNumberOfRealItems = 0;
+56 -96
View File
@@ -145,6 +145,8 @@ void InitJohnKulbaInitialSector();
void FixEnemyCounterInSectorBug();
void AddEnemiesToFirstTunnelSector();
void AddEnemiesToSecondTunnelSector();
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 );
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()
{
UINT8 ubNumEnemies = 0;
UINT8 ubNumAdmins = 0;
UINT8 ubNumTroops = 0;
UINT8 ubNumElites = 0;
BOOLEAN fInCombat = ( gTacticalStatus.uiFlags & INCOMBAT );
UINT8 ubNumEnemies=0;
//if the player has been in the complex
if( HaveMercsEverBeenInComplex() )
@@ -1341,35 +1284,21 @@ void HandleAddingEnemiesToTunnelMaps()
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( !isPlayerInFirstTunnel && !isPlayerInSecondTunnel )
if( !AreAnyPlayerMercsStillInSector( 14, 10, 1 ) &&
!AreAnyPlayerMercsStillInSector( 14, 11, 1 ) )
{
// Add enemies to both sectors if fan was blown up
if ( gJa25SaveStruct.ubHowPlayerGotThroughFan == PG__PLAYER_BLEW_UP_FAN_TO_GET_THROUGH )
{
AddEnemiesToFirstTunnelSector();
AddEnemiesToSecondTunnelSector();
}
AddEnemiesToJa25TunnelMaps();
}
//else if the player IS NOT in the 2nd sector but is in the first sector
else if( isPlayerInFirstTunnel && !isPlayerInSecondTunnel )
//else if the player IS NOT in the 2nd sector but in the first sector
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
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
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( 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
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 )
{
@@ -1418,11 +1388,6 @@ UINT8 NumEnemiesToAttackFirstTunnelSector( UINT8 *pAdmins, UINT8 *pTroops, UINT8
ubNumTroops = 4 + Random( 0 );
ubNumElites = 4 + Random( 0 );
break;
case DIF_LEVEL_INSANE:
ubNumAdmins = 0 + Random(0);
ubNumTroops = 0 + Random(0);
ubNumElites = 8 + Random(0);
break;
}
if( pAdmins )
@@ -1475,11 +1440,6 @@ UINT8 NumEnemiesToAttackSecondTunnelSector( UINT8 *pAdmins, UINT8 *pTroops, UINT
ubNumTroops = 6 + Random( 0 );
ubNumElites = 4 + Random( 3 );
break;
case DIF_LEVEL_INSANE:
ubNumAdmins = 0 + Random(0);
ubNumTroops = 0 + Random(0);
ubNumElites = 10 + Random(0);
break;
}
if( pAdmins )
+1
View File
@@ -199,6 +199,7 @@ BOOLEAN SaveJa25SaveInfoToSaveGame( HWFILE hFile );
BOOLEAN LoadJa25SaveInfoFromSavedGame( HWFILE hFile );
void AddEnemiesToJa25TunnelMaps();
void HandleAddingEnemiesToTunnelMaps();
void SetJa25GeneralFlag( UINT32 uiFlagToSet );
+12 -31
View File
@@ -5,8 +5,7 @@
#include "Strategic Mines.h"
#include "BobbyRMailOrder.h"
#include "Tactical Save.h"
#include "Strategic Movement.h"
#include <Soldier Create.h>
#include "connect.h"
#include "FileMan.h"
#include "GameSettings.h"
#include "Game Init.h"
@@ -30,6 +29,7 @@
#include "Explosion Control.h"
#include "soldier tile.h"
#include "Soldier Profile.h"
#include "Soldier Functions.h"
#include "Action Items.h"
#include "AIInternals.h"
#include "Handle Doors.h"
@@ -72,6 +72,7 @@ extern "C" {
#include "lua_state.h"
#include "lua_function.h"
#include "Encrypted File.h"
#include "BriefingRoom_Data.h"
#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);
@@ -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_setglobal(L, "ProfileId");
@@ -999,7 +1000,7 @@ static void IniGlobal_1(lua_State* L)
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);
@@ -2242,38 +2243,18 @@ static int l_SetNumberOfJa25BloodCatsInSector(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 sSectorY = lua_tointeger(L, 2);
UINT8 ubNumAdmins = lua_tointeger(L, 3);
UINT8 ubNumTroops = 0;
UINT8 ubNumElites = 0;
UINT8 ubNumTanks = 0;
UINT8 ubNumTroops = lua_tointeger(L, 4);
UINT8 ubNumElites = lua_tointeger(L, 5);
UINT8 ubNumTanks = lua_tointeger(L, 6);
//TODO: expand lua call to include these two
UINT8 ubNumJeeps = 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);
}
@@ -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
// 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
static SOLDIERTYPE* FindSoldierByProfileID2(UINT8 ubProfileID, BOOLEAN fPlayerMercsOnly)
SOLDIERTYPE* FindSoldierByProfileID2(UINT8 ubProfileID, BOOLEAN fPlayerMercsOnly)
{
SoldierID soldier = gTacticalStatus.Team[CIV_TEAM].bFirstID;
SoldierID lastid = gTacticalStatus.Team[CIV_TEAM].bLastID;
+47 -40
View File
@@ -1,41 +1,48 @@
#include "Map Screen Helicopter.h"
#include "LaptopSave.h"
#include "Map Screen Helicopter.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 "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 "history.h"
@@ -503,7 +510,7 @@ BOOLEAN ReadInHeliInfo(STR fileName)
return TRUE;
}
static BOOLEAN WriteInInfo(STR fileName)
BOOLEAN WriteInInfo(STR fileName)
{
HWFILE hFile;
@@ -2439,7 +2446,7 @@ BOOLEAN WillAirRaidBeStopped( INT16 sSectorX, INT16 sSectorY )
return( FALSE );
}
static void HeliCrashSoundStopCallback( void *pData )
void HeliCrashSoundStopCallback( void *pData )
{
SkyriderDestroyed( );
}
@@ -2582,7 +2589,7 @@ BOOLEAN CanHelicopterTakeOff( void )
return( FALSE );
}
static void AddHeliPiece( INT32 iGridNo, UINT16 sOStruct )
void AddHeliPiece( INT32 iGridNo, UINT16 sOStruct )
{
UINT16 usDummy;
+13 -13
View File
@@ -303,7 +303,7 @@ BOOLEAN BeginAirRaid( )
}
static INT32 PickLocationNearAnyMercInSector( )
INT32 PickLocationNearAnyMercInSector( )
{
UINT16 ubMercsInSector[ 20 ] = { 0 };
UINT16 ubNumMercs = 0;
@@ -344,7 +344,7 @@ static INT32 PickLocationNearAnyMercInSector( )
return( NOWHERE );
}
static INT32 PickRandomLocationAtMinSpacesAway( INT32 sGridNo, INT16 sMinValue, INT16 sRandomVar )
INT32 PickRandomLocationAtMinSpacesAway( INT32 sGridNo, INT16 sMinValue, INT16 sRandomVar )
{
INT32 sNewGridNo = NOWHERE;
INT16 sX, sY, sNewX, sNewY;
@@ -382,7 +382,7 @@ static INT32 PickRandomLocationAtMinSpacesAway( INT32 sGridNo, INT16 sMinValue,
return( sNewGridNo );
}
static void TryToStartRaid( )
void TryToStartRaid( )
{
// OK, check conditions,
@@ -414,7 +414,7 @@ static void TryToStartRaid( )
}
static void AirRaidStart( )
void AirRaidStart( )
{
DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("AirRaidStart"));
// Begin ambient sound....
@@ -434,7 +434,7 @@ static void AirRaidStart( )
}
}
static void AirRaidLookForDive( )
void AirRaidLookForDive( )
{
BOOLEAN fDoDive = FALSE;
BOOLEAN fDoQuote = FALSE;
@@ -558,7 +558,7 @@ static void AirRaidLookForDive( )
}
static void AirRaidStartEnding( )
void AirRaidStartEnding( )
{
DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("AirRaidStartEnding"));
// Fade out sound.....
@@ -566,7 +566,7 @@ static void AirRaidStartEnding( )
}
static void BeginBombing( )
void BeginBombing( )
{
INT32 sGridNo;
UINT32 iSoundStartDelay;
@@ -623,7 +623,7 @@ static void BeginBombing( )
static void BeginDive( )
void BeginDive( )
{
INT32 sGridNo;
UINT32 iSoundStartDelay;
@@ -681,7 +681,7 @@ static void BeginDive( )
}
static void MoveDiveAirplane( FLOAT dAngle )
void MoveDiveAirplane( FLOAT dAngle )
{
FLOAT dDeltaPos;
@@ -701,7 +701,7 @@ static void MoveDiveAirplane( FLOAT dAngle )
}
static void DoDive( )
void DoDive( )
{
INT16 sRange;
INT32 sGridNo, sOldGridNo;
@@ -877,7 +877,7 @@ static void DoDive( )
}
static void DoBombing( )
void DoBombing( )
{
INT16 sRange;
INT32 sGridNo, sOldGridNo, sBombGridNo;
@@ -1498,7 +1498,7 @@ void EndAirRaid( )
}
// Madd
static void CheckForAndSetupAirRaid ()
void CheckForAndSetupAirRaid ()
{
//INT16 sSectorX;
//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;
+6 -1
View File
@@ -1,14 +1,19 @@
#include "builddefines.h"
#include <stdio.h>
#include <string.h>
#include "stdlib.h"
#include "DEBUG.H"
#include "Animation Control.h"
#include "Animation Data.h"
#include "FileMan.h"
#include "Weapons.h"
#include "message.h"
#include "structure.h"
#include "worlddef.h"
#include "worldman.h"
#include "Rotting Corpses.h"
#include "Debug Control.h"
#include "random.h"
#include "Soldier Control.h"
#include "connect.h"
@@ -3725,7 +3730,7 @@ BOOLEAN LoadAnimationStateInstructions( )
}
//ddd Trick for loading more than 320 animation files (?)
UINT16 fuckTheBoundz[320][100] {};
UINT16 fuckTheBoundz[320][100];
//Read in block
//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;
+7 -3
View File
@@ -1,17 +1,20 @@
#include "types.h"
#include <cstdlib>
#include "stdlib.h"
#include "Arms Dealer Init.h"
#include "string.h"
#include "DEBUG.H"
#include "random.h"
#include "Weapons.h"
#include "FileMan.h"
#include "Game Clock.h"
#include "ArmsDealerInvInit.h"
#include "message.h"
#include "Soldier Profile.h"
#include "Handle Items.h"
#include "Quests.h"
#include "Scheduling.h"
#include "GameSettings.h"
#include "Overhead.h" // added by Flugente for MercPtrs[]
#include "LuaInitNPCs.h" // added by Flugente
#ifdef JA2UB
@@ -73,6 +76,8 @@ UINT8 DetermineDealerItemCondition( UINT8 ubArmsDealer, UINT16 usItemIndex );
BOOLEAN DoesItemAppearInDealerInventoryList( UINT8 ubArmsDealer, UINT16 usItemIndex, BOOLEAN fPurchaseFromPlayer );
#ifdef JA2UB
UINT8 GetFirstValidSpecialItemFromDealer( UINT8 ubArmsDealer, INT16 sItemIndex );
void AddTexsVideosToBettysInventory();
BOOLEAN CanThisItemBeSoldToSimulatedCustomer( UINT8 ubArmsDealerID, UINT16 usItemIndex );
#endif
@@ -197,7 +202,7 @@ void AddArmsDealerAdditionalIntelData( UINT16 ausDealer, UINT16 usItem, INT16 sI
gArmsDealerAdditionalIntelData[ausDealer].push_back( data );
}
static void ArmsDealers_ReadIntelData()
void ArmsDealers_ReadIntelData()
{
gArmsDealerAdditionalIntelData.clear();
@@ -982,7 +987,6 @@ UINT32 GetArmsDealerItemTypeFromItemNumber( UINT16 usItem )
return( 0 );
}
// else treat as blade
[[fallthrough]];
case IC_BLADE:
case IC_THROWING_KNIFE:
return( ARMS_DEALER_BLADE );
+3 -2
View File
@@ -10,6 +10,7 @@
#include "LaptopSave.h"
#include "BobbyR.h"
#include "random.h"
#include "ShopKeeper Interface.h"
#include "connect.h"
#include "Rebel Command.h"
@@ -688,7 +689,7 @@ DEALER_POSSIBLE_INV gArmsDealerAdditional[ADDITIONAL_ARMS_DEALERS][MAXITEMS+1];
// prototypes
static INT8 GetMaxItemAmount( DEALER_POSSIBLE_INV *pInv, UINT16 usItemIndex )
INT8 GetMaxItemAmount( DEALER_POSSIBLE_INV *pInv, UINT16 usItemIndex )
{
UINT16 usCnt = 0;
@@ -926,7 +927,7 @@ DEALER_POSSIBLE_INV *GetPointerToDealersPossibleInventory( UINT16 ubArmsDealerID
}
//Madd: added boolean fUsed
static UINT8 GetCurrentSuitabilityForItem( INT8 bArmsDealer, UINT16 usItemIndex, BOOLEAN fUsed )
UINT8 GetCurrentSuitabilityForItem( INT8 bArmsDealer, UINT16 usItemIndex, BOOLEAN fUsed )
{
unsigned ubItemCoolness;
unsigned ubMinCoolness, ubMaxCoolness;
+6 -1
View File
@@ -21,9 +21,12 @@
#include "Map Screen Interface.h"
#include "Soldier Profile.h"
#include "Assignments.h"
#include "WordWrap.h"
#include "Cursors.h"
#include "english.h"
#include "SkillCheck.h" // added by Flugente
#include "Music Control.h"
// max number of merc faces per row in autobandage box
#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;
void BeginAutoBandageCallBack( UINT8 bExitValue );
void CancelAutoBandageCallBack( UINT8 bExitValue );
// the update box for autobandaging mercs
void CreateTerminateAutoBandageButton( INT16 sX, INT16 sY );
void DestroyTerminateAutoBandageButton( void );
void DisplayAutoBandageUpdatePanel( void );
void EndAutobandageButtonCallback(GUI_BUTTON *btn,INT32 reason);
void SetUpAutoBandageUpdatePanel( void );
BOOLEAN AddFacesToAutoBandageBox( void );
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
UINT16 ubDoctor[CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS], ubDoctors = 0;
+4 -3
View File
@@ -8,6 +8,7 @@
#include "NPC.h"
#include "opplist.h"
#include "ai.h"
#include "Dialogue Control.h"
#include "Handle UI.h"
#include "Points.h"
#include "Interface.h"
@@ -18,9 +19,9 @@
#include "strategicmap.h"
#include "Game Clock.h"
#include "Animation Data.h"
#include "Font Control.h"
#include "message.h"
#include "GameSettings.h" // added by SANDRO
#include <Font Control.h>
#include <message.h>
INT32 gsBoxerGridNo[ NUM_BOXERS ] = { 11393, 11233, 11073 };
SoldierID gubBoxerID[ NUM_BOXERS ] = { NOBODY, NOBODY, NOBODY };
@@ -209,7 +210,7 @@ UINT8 CountPeopleInBoxingRing( void )
return( ubTotalInRing );
}
static void CountPeopleInBoxingRingAndDoActions( void )
void CountPeopleInBoxingRingAndDoActions( void )
{
UINT32 uiLoop;
UINT8 ubTotalInRing = 0;
+4 -1
View File
@@ -1,13 +1,16 @@
#include "builddefines.h"
#include <wchar.h>
#include <stdio.h>
#include <string.h>
#include "stdlib.h"
#include "DEBUG.H"
#include "MemMan.h"
#include "Overhead Types.h"
#include "random.h"
#include "Campaign.h"
#include "Dialogue Control.h"
#include "Font Control.h"
#include "Map Screen Interface.h"
#include "message.h"
#include "Game Clock.h"
#include "Strategic Mines.h"
+26 -21
View File
@@ -1,4 +1,5 @@
#include "sgp.h"
//#include "Soldier Control.h"
#include "Encrypted File.h"
#include "faces.h"
#include "WCheck.h"
@@ -38,6 +39,7 @@
#include "Meanwhile.h"
#include "SkillCheck.h"
#include "Interface Control.h"
#include "finances.h"
#include "Civ Quotes.h"
#include "Map Screen Interface Map.h"
#include "opplist.h"
@@ -48,8 +50,10 @@
#include "End Game.h"
#include "LOS.h"
#include "qarray.h"
#include "Soldier Profile.h"
#include <vector>
#include <queue>
#include "Auto Resolve.h"
#include "connect.h"
#ifdef JA2UB
@@ -58,9 +62,9 @@
#include "Ja25 Strategic Ai.h"
#include "Ja25_Tactical.h"
#include "Animation Control.h"
#include "ub_config.h"
#endif
#include "ub_config.h"
#include "history.h"
#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( )
{
@@ -1343,6 +1331,8 @@ void HandleDialogue( )
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 );
}
@@ -2190,6 +2180,21 @@ BOOLEAN ExecuteSnitchCharacterDialogue( UINT8 ubCharacterNum, UINT16 usQuoteNum,
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 )
{
@@ -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 zFileNameHelper[164];
@@ -2439,7 +2444,7 @@ static CHAR8 *GetDialogueDataFilename( UINT8 ubCharacterNum, UINT16 usQuoteNum,
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_Used[164];
@@ -2488,7 +2493,7 @@ BOOLEAN DialogueDataFileExistsForProfile( UINT8 ubCharacterNum, UINT16 usQuoteNu
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;
@@ -3608,7 +3613,7 @@ void UnSetEngagedInConvFromPCAction( SOLDIERTYPE *pSoldier )
}
static BOOLEAN IsStopTimeQuote( UINT16 usQuoteNum )
BOOLEAN IsStopTimeQuote( UINT16 usQuoteNum )
{
INT32 cnt;
+4
View File
@@ -8,7 +8,9 @@
#include "Overhead.h"
#include "random.h"
#include "Assignments.h"
#include "message.h"
#include "Soldier Profile.h"
#include "Map Screen Interface Map.h"
#include "Queen Command.h"
#include "Quests.h"
#include "finances.h"
@@ -16,7 +18,9 @@
#include "LaptopSave.h"
#include "strategic.h"
#include "DynamicDialogue.h"
#include <math.h>
#include "Drugs And Alcohol.h" // for DoesMercHaveDisability( ... )
#include "environment.h"
//GLOBALS
DISEASE Disease[NUM_DISEASES];
+10 -4
View File
@@ -1,6 +1,7 @@
#include "builddefines.h"
#include "types.h"
#include "Isometric Utils.h"
//#include "Soldier Control.h"
#include "Overhead.h"
#include "DisplayCover.h"
#include "Font Control.h"
@@ -9,6 +10,8 @@
#include "GameSettings.h"
#include "renderworld.h"
#include "Interface.h"
#include "DEBUG.H"
#include "PATHAI.H"
#include "worldman.h"
#include "opplist.h"
#include "LOS.h"
@@ -16,6 +19,9 @@
#include "Game Clock.h"
#include "Animation Control.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)
#include "UI Cursors.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);
static TileDefines GetOverlayIndex( INT8 bOverlayType )
TileDefines GetOverlayIndex( INT8 bOverlayType )
{
switch ( bOverlayType )
{
@@ -435,7 +441,7 @@ void RemoveCoverObjectsFromViewArea()
gNoRedraw = (gubDrawMode == DRAW_MODE_OFF);
}
static void updateCoverViewArea()
void updateCoverViewArea()
{
INT16 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;
@@ -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;
+8 -5
View File
@@ -1,9 +1,13 @@
#include "Overhead.h"
#include "Render Fun.h"
#include "random.h"
#include "worldman.h"
#include "Soldier Profile.h"
#include "NPC.h"
#include "ai.h"
#include "Dialogue Control.h"
#include "Handle UI.h"
#include "End Game.h"
#include "Intro.h"
#include "Exit Grids.h"
@@ -37,7 +41,6 @@
#include "Game Init.h"
#include "interface Dialogue.h"
#include "ub_config.h"
#include "Handle UI.h"
void HandleAddingTheEndGameEmails();
void EndFadeToCredits( void );
@@ -146,7 +149,7 @@ void ChangeO3SectorStatue( BOOLEAN fFromExplosion )
#ifdef JA2UB
//Ja25 no queen
#else
static void DeidrannaTimerCallback( void )
void DeidrannaTimerCallback( void )
{
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 );
}
static void DoneFadeInKilledQueen( void )
void DoneFadeInKilledQueen( void )
{
SOLDIERTYPE *pNPCSoldier;
@@ -235,7 +238,7 @@ static void DoneFadeInKilledQueen( void )
}
static void DoneFadeOutKilledQueen( void )
void DoneFadeOutKilledQueen( void )
{
SoldierID cnt;
SOLDIERTYPE *pSoldier, *pTeamSoldier;
@@ -417,7 +420,7 @@ EndQueenDeathEndgame( );
static void QueenBitchTimerCallback( void )
void QueenBitchTimerCallback( void )
{
#ifdef JA2UB
//no Ub
+4 -2
View File
@@ -3,8 +3,11 @@
#include "DEBUG.H"
#include "Items.h"
#include "GameSettings.h"
#include "screenids.h"
#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 "Overhead.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 AutoPlaceObjectInInventoryStash( OBJECTTYPE *pItemPtr, INT32 sGridNo );
static bool checkObjectLBEIntegrity(OBJECTTYPE * object) {
bool checkObjectLBEIntegrity(OBJECTTYPE * object) {
bool integrityCheck = TRUE;
@@ -1586,7 +1589,6 @@ OBJECTTYPE& OBJECTTYPE::operator=(const OLD_OBJECTTYPE_101& src)
case IC_KEY:
(*this)[0]->data.key.ubKeyID = src.ugYucky.ubKeyID;
break;
case IC_MISC:
case IC_GRENADE:
case IC_BOMB:
(*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",
ddRawHorizAngle, ddRawVerticAngle,
ddHorizAngle, ddVerticAngle,
pFirer->ubID.i, ubLoop, ubShots,
pFirer->ubID, ubLoop, ubShots,
gpSpreadPattern[ubSpreadIndex].method, gSpreadPatternMethodNames[gpSpreadPattern[ubSpreadIndex].method],
ubSpreadIndex, gpSpreadPattern[ubSpreadIndex].Name,
NULL
+42 -34
View File
@@ -5,6 +5,7 @@
#include "WCheck.h"
#include "stdlib.h"
#include "DEBUG.H"
#include "math.h"
#include "worlddef.h"
#include "worldman.h"
#include "renderworld.h"
@@ -15,6 +16,7 @@
#include "Isometric Utils.h"
#include "Event Pump.h"
#include "Timer Control.h"
#include "Render Fun.h"
#include "Render Dirty.h"
#include "mousesystem.h"
#include "Interface.h"
@@ -35,6 +37,7 @@
#include "screenids.h"
#include "Weapons.h"
#include "Rotting Corpses.h"
#include "lighting.h"
#include "Handle UI Plan.h"
#include "structure.h"
#include "Interface Panels.h"
@@ -62,6 +65,7 @@
#include "Quests.h"
#include "NPC.h"
#include "strategicmap.h"
#include "Soldier Profile.h"
#include "Soldier Functions.h"
#include "Auto Bandage.h"
#include "Game Event Hook.h"
@@ -100,6 +104,7 @@
#include "PreBattle Interface.h"
#include "Militia Control.h"
#include "Lua Interpreter.h"
#include "Bullets.h"
#include "Inventory Choosing.h" // added by Flugente for TakeMilitiaEquipmentfromSector()
#include "CampaignStats.h" // added by Flugente
#include "DynamicDialogue.h" // added by Flugente for HandleDynamicOpinions()
@@ -113,7 +118,9 @@
#include "Luaglobal.h"
#include "LuaInitNPCs.h"
#include "Interface.h"
#include "Vehicles.h"
#include "Music Control.h"
#ifdef JA2UB
#include "Ja25 Strategic Ai.h"
#include "Ja25_Tactical.h"
@@ -440,7 +447,7 @@ INT32 GetFreeMercSlot()
}
// WTF?
static void RecountMercSlots( )
void RecountMercSlots( )
{
INT32 iCount;
if ( guiNumMercSlots > 0 )
@@ -485,7 +492,7 @@ BOOLEAN RemoveMercSlot( SOLDIERTYPE *pSoldier )
return( FALSE );
}
static INT32 GetFreeAwaySlot( )
INT32 GetFreeAwaySlot( )
{
UINT32 uiCount;
for(uiCount=0; uiCount < guiNumAwaySlots; uiCount++)
@@ -498,7 +505,7 @@ static INT32 GetFreeAwaySlot( )
return(-1);
}
static void RecountAwaySlots( )
void RecountAwaySlots( )
{
INT32 iCount;
if ( guiNumAwaySlots > 0 )
@@ -829,7 +836,7 @@ BOOLEAN GetSoldier( SOLDIERTYPE **ppSoldier, SoldierID usSoldierIndex )
}
static BOOLEAN NextAIToHandle( UINT32 uiCurrAISlot )
BOOLEAN NextAIToHandle( UINT32 uiCurrAISlot )
{
UINT32 cnt;
@@ -2006,7 +2013,7 @@ BOOLEAN ExecuteOverhead( )
return( TRUE );
}
static void HaltGuyFromNewGridNoBecauseOfNoAPs( SOLDIERTYPE *pSoldier )
void HaltGuyFromNewGridNoBecauseOfNoAPs( SOLDIERTYPE *pSoldier )
{
HaltMoveForSoldierOutOfPoints( pSoldier );
pSoldier->usPendingAnimation = NO_PENDING_ANIMATION;
@@ -2023,7 +2030,7 @@ static void HaltGuyFromNewGridNoBecauseOfNoAPs( SOLDIERTYPE *pSoldier )
UnSetEngagedInConvFromPCAction( pSoldier );
}
static void HandleLocateToGuyAsHeWalks( SOLDIERTYPE *pSoldier )
void HandleLocateToGuyAsHeWalks( SOLDIERTYPE *pSoldier )
{
// Our guys if option set,
if ( pSoldier->bTeam == gbPlayerNum )
@@ -2269,15 +2276,15 @@ BOOLEAN HandleGotoNewGridNo( SOLDIERTYPE *pSoldier, BOOLEAN *pfKeepMoving, BOOLE
if ( !( gTacticalStatus.uiFlags & INCOMBAT ) )
{
SOLDIERTYPE *pSoldier2;
SoldierID id = gTacticalStatus.Team[gbPlayerNum].bFirstID;
SoldierID id = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
// look for all mercs on the same team,
for ( ; id < gTacticalStatus.Team[gbPlayerNum].bLastID; ++id )
for ( ; id >= gTacticalStatus.Team[ gbPlayerNum ].bFirstID; --id )
{
pSoldier2 = id;
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 );
}
static void HandleMaryArrival( SOLDIERTYPE * pSoldier )
void HandleMaryArrival( SOLDIERTYPE * pSoldier )
{
INT32 sDist;
@@ -2689,7 +2696,7 @@ static void HandleMaryArrival( SOLDIERTYPE * pSoldier )
}
static void HandleJohnArrival( SOLDIERTYPE * pSoldier )
void HandleJohnArrival( SOLDIERTYPE * pSoldier )
{
SOLDIERTYPE * pSoldier2 = NULL;
INT32 sDist;
@@ -2975,15 +2982,15 @@ BOOLEAN HandleAtNewGridNo( SOLDIERTYPE *pSoldier, BOOLEAN *pfKeepMoving )
if ( !( gTacticalStatus.uiFlags & INCOMBAT ) )
{
SOLDIERTYPE *pSoldier2;
SoldierID cnt2 = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
SoldierID cnt2 = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
// look for all mercs on the same team,
for ( ; cnt2 < gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt2 )
for ( ; cnt2 >= gTacticalStatus.Team[ gbPlayerNum ].bFirstID; --cnt2 )
{
pSoldier2 = cnt2;
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;
@@ -5173,7 +5180,7 @@ BOOLEAN NewOKDestination( SOLDIERTYPE * pCurrSoldier, INT32 sGridNo, BOOLEAN fPe
}
// 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;
STRUCTURE *pStructure;
@@ -6716,7 +6723,7 @@ void SetEnemyPresence()
extern SoldierID gfLastMercTalkedAboutKillingID;
static BOOLEAN SoldierHasSeenEnemiesLastFewTurns( SOLDIERTYPE *pTeamSoldier )
BOOLEAN SoldierHasSeenEnemiesLastFewTurns( SOLDIERTYPE *pTeamSoldier )
{
SOLDIERTYPE *pSoldier;
INT32 cnt;
@@ -6796,7 +6803,7 @@ BOOLEAN NobodyAlerted( )
}
static BOOLEAN WeSawSomeoneThisTurn( )
BOOLEAN WeSawSomeoneThisTurn( )
{
UINT32 uiLoop, uiLoop2;
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
SoldierID ubMercsInSector[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ] = {};
@@ -7040,7 +7047,7 @@ BOOLEAN CheckForEndOfCombatMode( BOOLEAN fIncrementTurnsNotSeen )
}
static void DeathNoMessageTimerCallback( )
void DeathNoMessageTimerCallback( )
{
//CheckAndHandleUnloadingOfCurrentWorld();
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
static BOOLEAN GetPlayerControlledPrisonList( std::vector<UINT8>& arSectorIDVector )
BOOLEAN GetPlayerControlledPrisonList( std::vector<UINT8>& arSectorIDVector )
{
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
INT16 gsNumPrisoner[PRISONER_MAX] = {0};
static void PrisonerMessageBoxCallBack( UINT8 ubExitValue )
void PrisonerMessageBoxCallBack( UINT8 ubExitValue )
{
if ( DropDownTemplate<DROPDOWNNR_MSGBOX_1>::getInstance().GetSelectedEntryKey() < 0 )
{
@@ -7157,7 +7164,7 @@ static void PrisonerMessageBoxCallBack( UINT8 ubExitValue )
CHAR16 gPrisonSectorNamesStr[256][128];
static void RemoveCapturedEnemiesFromSectorInfo( INT16 sMapX, INT16 sMapY, INT8 bMapZ )
void RemoveCapturedEnemiesFromSectorInfo( INT16 sMapX, INT16 sMapY, INT8 bMapZ )
{
SOLDIERTYPE* pTeamSoldier;
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.
// Each time we are wounded, we set a 'wounded'-flag
// 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;
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
{
@@ -8572,7 +8579,7 @@ BOOLEAN KillIncompacitatedEnemyInSector( )
static BOOLEAN AttackOnGroupWitnessed( SOLDIERTYPE * pSoldier, SOLDIERTYPE * pTarget )
BOOLEAN AttackOnGroupWitnessed( SOLDIERTYPE * pSoldier, SOLDIERTYPE * pTarget )
{
UINT32 uiSlot;
SOLDIERTYPE * pGroupMember;
@@ -8728,7 +8735,7 @@ INT8 CalcSuppressionTolerance( SOLDIERTYPE * pSoldier )
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 );
}
static SOLDIERTYPE *InternalReduceAttackBusyCount( )
SOLDIERTYPE *InternalReduceAttackBusyCount( )
{
// Strange as this may seem, this function returns a pointer to
// 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....
InternalLeaveTacticalScreen( MAINMENU_SCREEN );
@@ -10234,7 +10241,7 @@ void InitializeTacticalStatusAtBattleStart( )
}
static void DoneFadeOutDemoCreatureLevel( )
void DoneFadeOutDemoCreatureLevel( )
{
// OK, insertion data found, enter sector!
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 void TurnCoatAttemptMessageBoxCallBack( UINT8 ubExitValue )
void TurnCoatAttemptMessageBoxCallBack( UINT8 ubExitValue )
{
// check ubExitValue to see whether we actually want to go through (2)
if ( ubExitValue != 2
@@ -10966,7 +10973,7 @@ void HandleTurncoatAttempt( SOLDIERTYPE* pSoldier )
}
}
static void EscapeTimerCallback()
void EscapeTimerCallback()
{
const bool chanceToEscape = Chance(75);
bool escaped = false;
@@ -11069,7 +11076,7 @@ void AttemptToCapturePlayerSoldiers()
#endif
}
static void PrisonerSurrenderMessageBoxCallBack( UINT8 ubExitValue )
void PrisonerSurrenderMessageBoxCallBack( UINT8 ubExitValue )
{
SOLDIERTYPE *pSoldier = NULL;
BOOLEAN success = FALSE;
@@ -11962,6 +11969,7 @@ BOOLEAN IsCivFactionMemberAliveInSector( UINT8 usCivilianGroup )
BOOLEAN IsFreeSlotAvailable( int aTeam )
{
SOLDIERTYPE *pSoldier;
SoldierID cnt = gTacticalStatus.Team[aTeam].bFirstID;
// run through list
+4
View File
@@ -72,6 +72,7 @@
#include "Morale.h"
#include "Meanwhile.h"
#include "Drugs And Alcohol.h"
#include "SkillCheck.h"
#include "Boxing.h"
#include "overhead map.h"
#include "Map Information.h"
@@ -112,6 +113,7 @@
#include "fresh_header.h"
#include "Dialogue Control.h"
#include "IMP Skill Trait.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];
}
BOOLEAN IsValidSecondHandShot( SOLDIERTYPE *pSoldier );
UINT8 *gubpNumReplacementsPerRange;
PaletteSubRangeType *gpPaletteSubRanges;
@@ -1738,6 +1741,7 @@ UINT16 PickSoldierReadyAnimation( SOLDIERTYPE *pSoldier, BOOLEAN fEndReady, BOOL
BOOLEAN CheckForFullStruct( INT32 sGridNo, UINT16 *pusIndex );
void SetSoldierLocatorOffsets( SOLDIERTYPE *pSoldier );
void CheckForFullStructures( SOLDIERTYPE *pSoldier );
UINT16 GetNewSoldierStateFromNewStance( SOLDIERTYPE *pSoldier, UINT8 ubDesiredStance );
void SetSoldierAniSpeed( SOLDIERTYPE *pSoldier );
void AdjustForFastTurnAnimation( SOLDIERTYPE *pSoldier );
UINT16 SelectFireAnimation( SOLDIERTYPE *pSoldier, UINT8 ubHeight );
+12 -2
View File
@@ -1,10 +1,19 @@
#include "builddefines.h"
#include "math.h"
#include <stdio.h>
#include <errno.h>
#include "worlddef.h"
#include "renderworld.h"
#include "vsurface.h"
#include "sysutil.h"
#include "WCheck.h"
#include "video.h"
#include "vobject_blitters.h"
#include "faces.h"
#include "Utilities.h"
#include "Overhead.h"
#include "Soldier Profile.h"
#include "Bullets.h"
#include "LOS.h"
#include "worldman.h"
@@ -12,6 +21,7 @@
#include "GameSettings.h"
#include "FileMan.h"
#include "lighting.h"
#include "Buildings.h"
// Defines
// 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
//afp-end
static INT32 GetFreeBullet(void)
INT32 GetFreeBullet(void)
{
UINT32 uiCount;
@@ -45,7 +55,7 @@ static INT32 GetFreeBullet(void)
}
static void RecountBullets(void)
void RecountBullets(void)
{
INT32 uiCount;
+5 -3
View File
@@ -7,6 +7,7 @@
#include "worldman.h"
#include "strategicmap.h"
#include "Campaign Types.h"
#include "renderworld.h"
#include "Render Fun.h"
#include "fov.h"
#include "worlddef.h"
@@ -15,6 +16,7 @@
#include "GameSettings.h"
#include "Smell.h"
#include <vfs/Core/vfs.h>
//SB: make size of gpRevealedMap dependable from variable tactical map dimensions
#define NUM_REVEALED_BYTES (WORLD_MAX/8)
@@ -173,7 +175,7 @@ typedef std::map<ModifiedMapFile::Key, ModifiedMapFile, ltMMF> ModifiedMapFileSe
ModifiedMapFileSet g_mapFileSet;
BOOLEAN g_useSaveCache;
static void ClearTempFileSets()
void ClearTempFileSets()
{
//for (ModifiedMapFileSet::iterator itr = g_mapFileSet.begin(), end = g_mapFileSet.end(); itr != end; ++itr )
//{
@@ -193,7 +195,7 @@ BOOLEAN EnableModifiedFileSetCache(BOOLEAN value)
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)
return false;
@@ -209,7 +211,7 @@ static bool TryGetModifiedMapFile( UINT32 uiType, INT16 sMapX, INT16 sMapY, INT8
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;
if ( TryGetModifiedMapFile(uiType, sMapX, sMapY, bMapZ, &pResult) )
+4 -4
View File
@@ -133,7 +133,7 @@ void SelectNextUnplacedUnit();
BOOLEAN gfNorthValid, gfEastValid, gfSouthValid, gfWestValid;
BOOLEAN gfChangedEntrySide = FALSE;
static void FindValidInsertionCode( UINT8 *pubStrategicInsertionCode )
void FindValidInsertionCode( UINT8 *pubStrategicInsertionCode )
{
if( gMapInformation.sNorthGridNo == -1 &&
gMapInformation.sEastGridNo == -1 &&
@@ -202,7 +202,7 @@ static void FindValidInsertionCode( UINT8 *pubStrategicInsertionCode )
}
}
static void CheckForValidMapEdge( UINT8 *pubStrategicInsertionCode )
void CheckForValidMapEdge( UINT8 *pubStrategicInsertionCode )
{
switch( *pubStrategicInsertionCode )
{
@@ -1464,7 +1464,7 @@ void RenderTacticalPlacementGUI()
}
}
static void EnsureDoneButtonStatus()
void EnsureDoneButtonStatus()
{
INT32 i;
//static BOOLEAN fInside = FALSE;
@@ -1783,7 +1783,7 @@ void KillTacticalPlacementGUI()
MemFree( gMercPlacement);
}
static void ChooseRandomEdgepoints()
void ChooseRandomEdgepoints()
{
INT32 i;
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 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
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)
{
@@ -653,7 +655,7 @@ static void ShowRiotShield( SOLDIERTYPE* pSoldier, UINT16 *pBuffer, UINT32 uiDes
INT32 gDecalBackgroundRectangle[MAX_DECALS_ONSCREEN] = { 0 };
int gDecalBackgroundRectableCounter = 0;
static void ClearBackgroundRectanglesForDecal()
void ClearBackgroundRectanglesForDecal()
{
for ( int i = 0; i < gDecalBackgroundRectableCounter; ++i )
{
@@ -667,7 +669,7 @@ static void ClearBackgroundRectanglesForDecal()
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 )
{
@@ -687,7 +689,7 @@ static bool SetupBackgroundRectanglesForDecal( UINT32 uiFlags, INT16 *pSaveArea,
}
// 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
if ( gGameExternalOptions.fAdditionalDecals
@@ -994,7 +996,7 @@ void ResetSpecificLayerOptimizing( UINT32 uiRowFlag )
}
static void SumAddiviveLayerOptimization( void )
void SumAddiviveLayerOptimization( void )
{
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;
// Shade guy always lighter than scene default!
@@ -1184,7 +1186,7 @@ inline static UINT16 * GetShadeTable(LEVELNODE * pNode, SOLDIERTYPE * pSoldier,
/*
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
@@ -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;
INT16 sTempX_W, sTempY_W;
@@ -9009,7 +9011,7 @@ void RenderCoverDebug( )
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 );
}
+63 -47
View File
@@ -1,39 +1,52 @@
#include <string.h>
#include "types.h"
#include "WCheck.h"
#include "DEBUG.H"
#include "FileMan.h"
#include "MemMan.h"
#include "structure.h"
#include "tiledef.h"
#include "worlddef.h"
#include "worldman.h"
#include "Interface.h"
#include "Isometric Utils.h"
#include "Font.h"
#include "Font Control.h"
#include "Smell.h"
#include "SaveLoadMap.h"
#include "strategicmap.h"
#include "sgp_logger.h"
#include "Sys Globals.h" //for access to gfEditMode flag
//Kris:
#ifdef JA2EDITOR
#include "Editor Undo.h" //for access to AddToUndoList( iMapIndex )
#endif
#include "Explosion Control.h"
#include "Sound Control.h"
#include "Buildings.h"
#include "random.h"
#include "Tile Animation.h"
// anv: for ramming people with vehicles
#include "Soldier macros.h"
#include "Overhead.h"
#include "Animation Control.h"
#include "ASD.h" // added by Flugente
#include "renderworld.h" // added by Flugente for SetRenderFlags( RENDER_FLAG_FULL );
#include <vfs/Core/vfs.h>
#include "XML_StructureData.hpp"
#include <string.h>
#include "types.h"
#include "WCheck.h"
#include "DEBUG.H"
#include "FileMan.h"
#include "MemMan.h"
#include "structure.h"
#include "tiledef.h"
#include "worlddef.h"
#include "worldman.h"
#include "Interface.h"
#include "Isometric Utils.h"
#include "Font.h"
#include "Font Control.h"
#include "LOS.h"
#include "lighting.h"
#include "Smell.h"
#include "SaveLoadMap.h"
#include "strategicmap.h"
#include "sgp_logger.h"
#include "Sys Globals.h" //for access to gfEditMode flag
//Kris:
#ifdef JA2EDITOR
#include "Editor Undo.h" //for access to AddToUndoList( iMapIndex )
#endif
#include "Explosion Control.h"
#include "Sound Control.h"
#include "Buildings.h"
#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
extern UINT32 guiSuccessfulPathChecks;
@@ -149,7 +162,7 @@ index 25, indestructable metal
};
// Function operating on a structure tile
static UINT8 FilledTilePositions( DB_STRUCTURE_TILE * pTile )
UINT8 FilledTilePositions( DB_STRUCTURE_TILE * pTile )
{
UINT8 ubFilled = 0, ubShapeValue;
INT8 bLoopX, bLoopY, bLoopZ;
@@ -254,7 +267,7 @@ BOOLEAN FreeStructureFile( STRUCTURE_FILE_REF * pStructureFile )
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 )
{
// 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 );
}
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
// structure definitions contained within
@@ -425,8 +438,11 @@ static BOOLEAN CreateFileStructureArrays( STRUCTURE_FILE_REF * pFileRef, UINT32
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)
{
@@ -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
STRUCTURE * pStructure;
@@ -616,7 +632,7 @@ static STRUCTURE * CreateStructureFromDB( DB_STRUCTURE_REF * pDBStructureRef, UI
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
DB_STRUCTURE * pDBStructure;
@@ -990,7 +1006,7 @@ BOOLEAN OkayToAddStructureToWorld( INT32 sBaseGridNo, INT8 bLevel, DB_STRUCTURE_
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)
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
INT32 sGridNo;
@@ -1319,7 +1335,7 @@ BOOLEAN DeleteStructureFromWorld( STRUCTURE * pStructure )
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
LEVELNODE * pLevelNode;
@@ -2503,13 +2519,13 @@ BOOLEAN AddZStripInfoToVObject( HVOBJECT hVObject, STRUCTURE_FILE_REF * pStructu
return( TRUE );
}
static BOOLEAN InitStructureDB( void )
BOOLEAN InitStructureDB( void )
{
gusNextAvailableStructureID = FIRST_AVAILABLE_STRUCTURE_ID;
return( TRUE );
}
static BOOLEAN FiniStructureDB( void )
BOOLEAN FiniStructureDB( void )
{
gusNextAvailableStructureID = FIRST_AVAILABLE_STRUCTURE_ID;
return( TRUE );
+14 -10
View File
@@ -122,6 +122,7 @@ BOOLEAN gfInitAnimateLoading = FALSE;
BOOLEAN LoadTileSurfaces( char pTileSurfaceFilenames[][32], UINT8 ubTilesetID );
BOOLEAN AddTileSurface( SGPFILENAME cFilename, UINT32 ubType, UINT8 ubTilesetID, BOOLEAN fGetFromRoot );
void DestroyTileSurfaces( void );
void ProcessTilesetNamesForBPP(void);
BOOLEAN IsRoofVisibleForWireframe( INT32 sMapPos );
#ifdef JA2UBMAPS
@@ -224,7 +225,7 @@ BOOLEAN GridNoIndoors( INT32 iMapIndex )
return FALSE;
}
static void DOIT( )
void DOIT( )
{
// LEVELNODE * pLand;
//LEVELNODE * pObject;
@@ -271,6 +272,9 @@ BOOLEAN InitializeWorld( )
SetNumberOfTiles();
// DB Adds the _8 to the names if we're in 8 bit mode.
//ProcessTilesetNamesForBPP();
// Memset tileset list
memset( TileSurfaceFilenames, '\0', sizeof( TileSurfaceFilenames ) );
@@ -339,7 +343,7 @@ void DeinitializeWorld()
}
static BOOLEAN ReloadTilesetSlot( INT32 iSlot )
BOOLEAN ReloadTilesetSlot( INT32 iSlot )
{
return(TRUE);
}
@@ -768,7 +772,7 @@ void DestroyTileSurfaces( )
}
}
static void CompileWorldTerrainIDs( void )
void CompileWorldTerrainIDs( void )
{
INT32 sGridNo;
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
@@ -861,7 +865,7 @@ static BOOLEAN IsNotRestrictedWindow(STRUCTURE * pStructure)
return FALSE;
}
static void CompileTileMovementCosts( INT32 usGridNo )
void CompileTileMovementCosts( INT32 usGridNo )
{
UINT8 ubTerrainID;
TILE_ELEMENT TileElem;
@@ -2320,7 +2324,7 @@ INT8 bDirectionsForShadowSearch[ NUM_DIR_SEARCHES ] =
EAST
};
static void OptimizeMapForShadows( )
void OptimizeMapForShadows( )
{
INT32 cnt, dir;
INT32 sNewGridNo;
@@ -2350,7 +2354,7 @@ static void OptimizeMapForShadows( )
}
}
static void SetBlueFlagFlags( void )
void SetBlueFlagFlags( void )
{
INT32 cnt;
LEVELNODE * pNode;
@@ -3526,7 +3530,7 @@ void TrashWorld( void )
void TrashMapTile(INT32 MapTile)
void TrashMapTile(INT16 MapTile)
{
MAP_ELEMENT *pMapTile;
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;
@@ -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;
UINT8 ubWallOrientation;
+47 -30
View File
@@ -1,48 +1,65 @@
/* $Id: sgp.c,v 1.4 2004/03/19 06:16:04 digicrab Exp $ */
//its test what doeas it do?
#include "builddefines.h"
#include "types.h"
#include <windows.h>
#include <string.h>
#include "sgp.h"
#include "vobject.h"
#include "Font.h"
#include "local.h"
#include "FileMan.h"
#include "input.h"
#include "random.h"
#include "gameloop.h"
#include "soundman.h"
#include "JA2 Splash.h"
#include "Timer Control.h"
#include "Utilities.h"
#include "types.h"
#include <windows.h>
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
#include "sgp.h"
#include "vobject.h"
#include "Font.h"
#include "local.h"
#include "FileMan.h"
#include "input.h"
#include "random.h"
#include "gameloop.h"
#include "soundman.h"
#include "JA2 Splash.h"
#include "Timer Control.h"
#include "LibraryDataBase.h"
#include "Utilities.h"
#include "GameSettings.h"
#include "input.h"
#include "zmouse.h"
#include <vfs/Aspects/vfs_settings.h>
#include <vfs/Core/vfs.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_parser_tools.h>
#include <vfs/Tools/vfs_file_logger.h>
#include "sgp_logger.h"
#include "Text.h"
#include "LocalizedStrings.h"
#include "ExportStrings.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
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
#include <iostream>
#include <excpt.h>
#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 = "")
{}
@@ -56,7 +73,7 @@ static vfs::FileLogger *vfslog = NULL;
int iWindowedMode;
static void SHOWEXCEPTION(sgp::Exception& ex)
void SHOWEXCEPTION(sgp::Exception& ex)
{
try {
_ExceptionMessage(ex);
@@ -67,7 +84,7 @@ static void SHOWEXCEPTION(sgp::Exception& ex)
}
}
static void SHOWEXCEPTION(vfs::Exception& ex)
void SHOWEXCEPTION(vfs::Exception& ex)
{
try {
_ExceptionMessage(ex);
@@ -617,7 +634,7 @@ void ShutdownStandardGamingPlatform(void)
#include "MPJoinScreen.h"
static vfs::String getGameID()
vfs::String getGameID()
{
static vfs::String _id;
static bool has_id = false;