From 25dd0b084ecc18f32f4c2f5af979c383fe91d567 Mon Sep 17 00:00:00 2001 From: Wanne Date: Thu, 29 Aug 2013 11:53:39 +0000 Subject: [PATCH] - UB Improvements / Cleanup (by Jazz) git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@6334 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- Init.cpp | 44 ------- Language Defines.h | 6 +- Strategic/LuaInitNPCs.cpp | 222 +++++++++++++++++++++++++++++++- Strategic/Luaglobal.cpp | 143 ++++++++++++++++++-- Tactical/Arms Dealer Init.cpp | 99 +++++--------- Tactical/Arms Dealer Init.h | 2 +- Tactical/Dialogue Control.cpp | 94 ++++++++++++-- Tactical/Handle Items.cpp | 4 +- Tactical/Interface Dialogue.cpp | 2 +- Tactical/Ja25_Tactical.cpp | 38 ++++++ Tactical/Overhead.cpp | 60 +++++---- TacticalAI/NPC.cpp | 72 +++++++++++ TileEngine/worlddef.cpp | 40 ++++++ Utils/_PolishText.cpp | 2 +- ub_config.cpp | 70 +++++----- ub_config.h | 36 ++++++ 16 files changed, 734 insertions(+), 200 deletions(-) diff --git a/Init.cpp b/Init.cpp index a4b0cf832..f46a06740 100644 --- a/Init.cpp +++ b/Init.cpp @@ -1377,10 +1377,6 @@ UINT32 InitializeJA2(void) gfWorldLoaded = FALSE; -#ifdef JA2UB - useOldJA2Inventory = FALSE; -#endif - //Load external game mechanic data //if ( !LoadExternalGameplayData(TABLEDATA_DIRECTORY)) //{ @@ -1511,41 +1507,8 @@ UINT32 InitializeJA2(void) } #endif -#ifdef JA2UB - // run old UB inventory Data-UB\Addons\Data-Old-UB-Inventory - if( _stricmp( gzCommandLine, "-OLDUBINVENTORY" ) ) - { - useOldJA2Inventory = TRUE; - } - - // Ignore the old UB Inventory, because it is not working - useOldJA2Inventory = FALSE; - -#endif - #ifdef JA2BETAVERSION #ifdef JA2EDITOR - #ifdef JA2UB - // CHECK COMMANDLINE FOR SPECIAL UTILITY - if( !strcmp( gzCommandLine, "-OLDUBINVENTORYEDITORAUTO" ) ) - { - OutputDebugString( "Beginning JA2 using -EDITORAUTO commandline argument...\n" ); - //For editor purposes, need to know the default map file. - sprintf( gubFilename, "none"); - //also set the sector - gWorldSectorX = 0; - gWorldSectorY = 0; - gfAutoLoadA9 = FALSE; - gfIntendOnEnteringEditor = TRUE; - gGameOptions.fGunNut = TRUE; - gGameOptions.fAirStrikes = FALSE; - //gGameOptions.fBobbyRayFastShipments = FALSE; - gGameOptions.fInventoryCostsAP = FALSE; - - useOldJA2Inventory = TRUE; - return( GAME_SCREEN ); - } - #endif // CHECK COMMANDLINE FOR SPECIAL UTILITY if( !strcmp( gzCommandLine, "-EDITORAUTO" ) ) @@ -1606,13 +1569,6 @@ UINT32 InitializeJA2(void) InitGridNoUB(); #endif -#ifdef JA2UB - if ( useOldJA2Inventory == TRUE ) - Old_UB_Inventory (); - else - New_UB_Inventory (); -#endif - //Lua IniLuaGlobal(); diff --git a/Language Defines.h b/Language Defines.h index f66bac211..30a0b5d9d 100644 --- a/Language Defines.h +++ b/Language Defines.h @@ -84,14 +84,14 @@ #if !defined(ENGLISH) && !defined(GERMAN) && !defined(RUSSIAN) && !defined(DUTCH) && !defined(POLISH) && !defined(FRENCH) && !defined(ITALIAN) && !defined(TAIWANESE) && !defined(CHINESE) /* please set one manually here (by uncommenting) if not willingly to set Workspace wide */ -#define ENGLISH +//#define ENGLISH //#define GERMAN //#define RUSSIAN //#define DUTCH //#define FRENCH //#define ITALIAN //#define TAIWANESE -//#define POLISH +#define POLISH // WANNE: For CHINESE language we also have to define WINFONTS! So when building Chinese version, enable both defines. //#define CHINESE @@ -118,4 +118,4 @@ #define SINGLE_CHAR_WORDS #endif -#endif +#endif \ No newline at end of file diff --git a/Strategic/LuaInitNPCs.cpp b/Strategic/LuaInitNPCs.cpp index 58f38f0d9..ad123c0ef 100644 --- a/Strategic/LuaInitNPCs.cpp +++ b/Strategic/LuaInitNPCs.cpp @@ -107,6 +107,22 @@ static int l_InitMercgridNo5 (lua_State *L); static int l_InitMercgridNo6 (lua_State *L); static int l_InitJerryGridNo (lua_State *L); +static int l_InitMapProfil (lua_State *L); +static int l_SetKeySoldier (lua_State *L); + +static int l_Ja25MANUEL_UB (lua_State *L); +static int l_Ja25BIGGENS_UB (lua_State *L); +static int l_Ja25JOHN_K_UB (lua_State *L); +static int l_Ja25TEX_UB (lua_State *L); +static int l_Ja25GASTON_UB (lua_State *L); +static int l_Ja2JERRY_MILO_UB (lua_State *L); +static int l_Ja25PGMALE4_UB (lua_State *L); +static int l_Ja25BETTY_UB (lua_State *L); +static int l_Ja25RAUL_UB (lua_State *L); +static int l_Ja25MORRIS_UB (lua_State *L); +static int l_Ja25RUDY_UB (lua_State *L); +static int l_Ja25STOGIE_UB (lua_State *L); + static int l_SetInternalLocateGridNo(lua_State *L); static int l_setInGameHeliCrash (lua_State *L); @@ -149,6 +165,8 @@ static int l_HavePersonAtGridnoStop(lua_State *L); static int l_WhoIsThere2 (lua_State *L); static int l_GuaranteeAtLeastXItemsOfIndex(lua_State *L); +static int l_GuaranteeAtMostNumOfItemsForItem(lua_State *L); + static int l_gMercProfileGearset(lua_State *L); static int l_FindUnderGroundSector(lua_State *L); @@ -1370,6 +1388,7 @@ void IniFunction(lua_State *L, BOOLEAN bQuests ) //------Shop------ lua_register(L, "GuaranteeAtLeastXItemsOfIndex", l_GuaranteeAtLeastXItemsOfIndex); + lua_register(L, "GuaranteeAtMostNumOfItemsForItem", l_GuaranteeAtMostNumOfItemsForItem); //-------------------------------------------------------------------------------------------- @@ -1459,9 +1478,26 @@ void IniFunction(lua_State *L, BOOLEAN bQuests ) lua_register(L, "InitMercFace", l_InitFace); + lua_register(L, "AddProfileToMap", l_InitMapProfil); + + lua_register(L, "SetKeyProfile", l_SetKeySoldier); // tactical mode #ifdef JA2UB - //john + + lua_register(L, "UB_GetManuelID", l_Ja25MANUEL_UB); + lua_register(L, "UB_GetBiggensID", l_Ja25BIGGENS_UB); + lua_register(L, "UB_GetJohnID", l_Ja25JOHN_K_UB); + lua_register(L, "UB_GetTexID", l_Ja25TEX_UB); + lua_register(L, "UB_GetStogieID", l_Ja25STOGIE_UB); + lua_register(L, "UB_GetGastonID", l_Ja25GASTON_UB); + lua_register(L, "UB_GetJerryID", l_Ja2JERRY_MILO_UB); + lua_register(L, "UB_GetPgmale4ID", l_Ja25PGMALE4_UB); + lua_register(L, "UB_GetBettyID", l_Ja25BETTY_UB); + lua_register(L, "UB_GetRaulID", l_Ja25RAUL_UB); + lua_register(L, "UB_GetMorrisID", l_Ja25MORRIS_UB); + lua_register(L, "UB_GetRudyID", l_Ja25RUDY_UB); + + //old compatibility script variable lua_register(L, "Ja25JohnKulbaIsInGame", l_Ja25SaveStructJohnKulbaIsInGame); lua_register(L, "Ja25CheckJohnKulbaIsInGame", l_Ja25SaveCheckStructJohnKulbaIsInGame); lua_register(L, "Ja25JohnKulbaInitialSectorY", l_Ja25SaveStructubJohnKulbaInitialSectorY); @@ -1481,6 +1517,26 @@ void IniFunction(lua_State *L, BOOLEAN bQuests ) lua_register(L, "HandlePlayerHittingSwitchToLaunchMissles", l_HandlePlayerHittingSwitchToLaunchMissles); lua_register(L, "HavePersonAtGridnoStop", l_HavePersonAtGridnoStop); + //new + lua_register(L, "UB_JohnKulbaIsInGame", l_Ja25SaveStructJohnKulbaIsInGame); + lua_register(L, "UB_CheckJohnKulbaIsInGame", l_Ja25SaveCheckStructJohnKulbaIsInGame); + lua_register(L, "UB_JohnKulbaInitialSectorY", l_Ja25SaveStructubJohnKulbaInitialSectorY); + lua_register(L, "UB_JohnKulbaInitialSectorX", l_Ja25SaveStructubJohnKulbaInitialSectorX); + + lua_register(L, "UB_SetNumberJa25EnemiesInSurfaceSector", l_SetNumberJa25EnemiesInSurfaceSector); + + lua_register(L, "UB_SetNumberOfJa25BloodCatsInSector", l_SetNumberOfJa25BloodCatsInSector); + + lua_register(L, "UB_HasNpcSaidQuoteBefore", l_HasNpcSaidQuoteBefore); + + lua_register(L, "UB_ShouldThePlayerStopWhenWalkingOnBiggensActionItem", l_ShouldThePlayerStopWhenWalkingOnBiggensActionItem); + + lua_register(L, "UB_HandleSeeingPowerGenFan", l_HandleSeeingPowerGenFan); + lua_register(L, "UB_HandleSwitchToOpenFortifiedDoor", l_HandleSwitchToOpenFortifiedDoor); + lua_register(L, "UB_HandleSeeingFortifiedDoor", l_HandleSeeingFortifiedDoor); + lua_register(L, "UB_HandlePlayerHittingSwitchToLaunchMissles", l_HandlePlayerHittingSwitchToLaunchMissles); + lua_register(L, "UB_HavePersonAtGridnoStop", l_HavePersonAtGridnoStop); + #endif lua_register(L, "WhoIsThere2", l_WhoIsThere2); @@ -1494,7 +1550,10 @@ void IniFunction(lua_State *L, BOOLEAN bQuests ) lua_register(L, "SetCurrentWorldSector", l_SetCurrentWorldSector); #ifdef JA2UB + //old compatibility script variable lua_register(L, "EnterTacticalInFinalSector", l_EnterTacticalInFinalSector); + //new + lua_register(L, "UB_EnterTacticalInFinalSector", l_EnterTacticalInFinalSector); #endif lua_register(L, "ReStartingGame", l_ReStartingGame); @@ -1510,6 +1569,7 @@ void IniFunction(lua_State *L, BOOLEAN bQuests ) lua_register(L, "InitialProfile", l_InitProfile); #ifdef JA2UB + //old scripts lua_register(L, "InitialHeliGridNo1", l_InitMercgridNo0); lua_register(L, "InitialHeliGridNo2", l_InitMercgridNo1); lua_register(L, "InitialHeliGridNo3", l_InitMercgridNo2); @@ -1528,6 +1588,26 @@ void IniFunction(lua_State *L, BOOLEAN bQuests ) lua_register(L, "InitialHeli", l_setInGameHeli ); lua_register(L, "InternalLocateGridNo", l_SetInternalLocateGridNo ); + + //new + lua_register(L, "UB_InitialHeliGridNo1", l_InitMercgridNo0); + lua_register(L, "UB_InitialHeliGridNo2", l_InitMercgridNo1); + lua_register(L, "UB_InitialHeliGridNo3", l_InitMercgridNo2); + lua_register(L, "UB_InitialHeliGridNo4", l_InitMercgridNo3); + lua_register(L, "UB_InitialHeliGridNo5", l_InitMercgridNo4); + lua_register(L, "UB_InitialHeliGridNo6", l_InitMercgridNo5); + lua_register(L, "UB_InitialHeliGridNo7", l_InitMercgridNo6); + + lua_register(L, "UB_InitialJerryGridNo", l_InitJerryGridNo); + + lua_register(L, "UB_InitialLaptopQuest", l_setLaptopQuest); + + lua_register(L, "UB_InitialHeliCrash", l_setInGameHeliCrash ); + lua_register(L, "UB_InitialJerryQuotes", l_setJerryQuotes ); + lua_register(L, "UB_InitialJerry", l_setInJerry ); + lua_register(L, "UB_InitialHeli", l_setInGameHeli ); + + lua_register(L, "UB_InternalLocateGridNo", l_SetInternalLocateGridNo ); #endif //lua_register(L, "ExecuteTacticalTextBox", l_ExecuteTacticalTextBox); @@ -1843,6 +1923,19 @@ static int l_GuaranteeAtLeastXItemsOfIndex(lua_State *L) return 0; } +static int l_GuaranteeAtMostNumOfItemsForItem(lua_State *L) +{ + if ( lua_gettop(L) >= 3 ) + { + UINT8 ubArmsDealer = lua_tointeger(L,1); + INT16 sItemIndex = lua_tointeger(L,2); + UINT32 ubAtMostNumItems = lua_tointeger(L,3); + GuaranteeAtMostNumOfItemsForItem( ubArmsDealer, sItemIndex, ubAtMostNumItems ); + } + + return 0; +} + static int l_FindUnderGroundSectorVisited(lua_State *L) { if ( lua_gettop(L) >= 3 ) @@ -2972,6 +3065,89 @@ int i; return 0; } +static int l_Ja25STOGIE_UB (lua_State *L) +{ + lua_pushinteger(L, STOGIE_UB); + + return 1; +} +static int l_Ja25RUDY_UB (lua_State *L) +{ + lua_pushinteger(L, RUDY_UB); + + return 1; +} + +static int l_Ja25MORRIS_UB (lua_State *L) +{ + lua_pushinteger(L, MORRIS_UB); + + return 1; +} + +static int l_Ja25RAUL_UB (lua_State *L) +{ + lua_pushinteger(L, RAUL_UB); + + return 1; +} + +static int l_Ja25BETTY_UB (lua_State *L) +{ + lua_pushinteger(L, BETTY_UB); + + return 1; +} + +static int l_Ja25PGMALE4_UB (lua_State *L) +{ + lua_pushinteger(L, PGMALE4_UB); + + return 1; +} + +static int l_Ja2JERRY_MILO_UB (lua_State *L) +{ + lua_pushinteger(L, JERRY_MILO_UB); + + return 1; +} + +static int l_Ja25GASTON_UB (lua_State *L) +{ + lua_pushinteger(L, GASTON_UB); + + return 1; +} + +static int l_Ja25MANUEL_UB (lua_State *L) +{ + lua_pushinteger(L, MANUEL_UB); + + return 1; +} + +static int l_Ja25BIGGENS_UB (lua_State *L) +{ + lua_pushinteger(L, BIGGENS_UB); + + return 1; +} + +static int l_Ja25JOHN_K_UB (lua_State *L) +{ + lua_pushinteger(L, JOHN_K_UB); + + return 1; +} + +static int l_Ja25TEX_UB (lua_State *L) +{ + lua_pushinteger(L, TEX_UB); + + return 1; +} + static int l_setLaptopQuest (lua_State *L) { BOOLEAN set = TRUE; @@ -3887,6 +4063,31 @@ static int l_FadeOutGameScreen(lua_State *L) return 0; } +int l_InitMapProfil (lua_State *L) +{ + if ( lua_gettop(L) >= 1 ) + { + + UINT8 prof = lua_tointeger(L,1); + INT16 x = lua_tointeger(L,2); + INT16 y = lua_tointeger(L,3); + INT16 z = lua_tointeger(L,4); + UINT32 gridno = lua_tointeger(L,5); + + gMercProfiles[ prof ].sSectorX = x; + gMercProfiles[ prof ].sSectorY = y; + gMercProfiles[ prof ].bSectorZ = z; + gMercProfiles[ prof ].sGridNo = gridno; + gMercProfiles[ prof ].fUseProfileInsertionInfo = TRUE; + gMercProfiles[ prof ].ubStrategicInsertionCode = INSERTION_CODE_GRIDNO; + gMercProfiles[ prof ].usStrategicInsertionData = gridno; + + } + + return 0; + +} + static int l_ProfilesStrategicInsertionData (lua_State *L) { UINT8 n = lua_gettop(L); @@ -5986,6 +6187,25 @@ SOLDIERTYPE * pSoldier; return 0; } +static int l_SetKeySoldier(lua_State *L) +{ +SOLDIERTYPE * pSoldier; + + if ( lua_gettop(L) >= 2 ) + { + UINT8 ID = lua_tointeger(L,1); + BOOLEAN Bool = lua_toboolean(L,2); + + pSoldier = FindSoldierByProfileID( ID, FALSE ); + if (pSoldier) + { + pSoldier->flags.bHasKeys = Bool; + } + } +return 0; +} + + static int l_ActiveTimedBombExists(lua_State *L) { BOOLEAN Bool; diff --git a/Strategic/Luaglobal.cpp b/Strategic/Luaglobal.cpp index 0bd4d09ef..d54d7ba41 100644 --- a/Strategic/Luaglobal.cpp +++ b/Strategic/Luaglobal.cpp @@ -63,8 +63,13 @@ void IniGlobalGameSetting(lua_State *L) lua_setglobal(L, "newDIFFICULTY_LEVEL"); #ifdef JA2UB + //Old lua_pushinteger(L, gGameOptions.ubDifficultyLevel); lua_setglobal(L, "difficultyLevel"); + + //new + lua_pushinteger(L, gGameOptions.ubDifficultyLevel); + lua_setglobal(L, "UB_difficultyLevel"); #endif // ------------------------------- @@ -115,6 +120,7 @@ void IniGlobalGameSetting(lua_State *L) lua_setglobal(L, "iniDEFAULT_ARRIVAL_SECTOR_X"); #ifdef JA2UB + //old lua_pushinteger(L, gGameUBOptions.ubEndDefaultSectorX); lua_setglobal(L, "iniDEFAULT_END_SECTOR_X"); @@ -157,6 +163,50 @@ void IniGlobalGameSetting(lua_State *L) lua_pushboolean(L, gGameUBOptions.InGameHeli); lua_setglobal(L, "iniINGAMEHELI"); + + //new + lua_pushinteger(L, gGameUBOptions.ubEndDefaultSectorX); + lua_setglobal(L, "UB_iniDEFAULT_END_SECTOR_X"); + + lua_pushinteger(L, gGameUBOptions.ubEndDefaultSectorY); + lua_setglobal(L, "UB_iniDEFAULT_END_SECTOR_Y"); + + lua_pushinteger(L, gGameUBOptions.ubEndDefaultSectorZ); + lua_setglobal(L, "UB_iniDEFAULT_END_SECTOR_Z"); + + lua_pushinteger(L, gGameUBOptions.InitialHeliGridNo[ 0 ]); + lua_setglobal(L, "UB_iniINITIALHELIGRIDNO1"); + lua_pushinteger(L, gGameUBOptions.InitialHeliGridNo[ 1 ]); + lua_setglobal(L, "UB_iniINITIALHELIGRIDNO2"); + lua_pushinteger(L, gGameUBOptions.InitialHeliGridNo[ 2 ]); + lua_setglobal(L, "UB_iniINITIALHELIGRIDNO3"); + lua_pushinteger(L, gGameUBOptions.InitialHeliGridNo[ 3 ]); + lua_setglobal(L, "UB_iniINITIALHELIGRIDNO4"); + lua_pushinteger(L, gGameUBOptions.InitialHeliGridNo[ 4 ]); + lua_setglobal(L, "UB_iniINITIALHELIGRIDNO5"); + lua_pushinteger(L, gGameUBOptions.InitialHeliGridNo[ 5 ]); + lua_setglobal(L, "UB_iniINITIALHELIGRIDNO6"); + lua_pushinteger(L, gGameUBOptions.InitialHeliGridNo[ 6 ]); + lua_setglobal(L, "UB_iniINITIALHELIGRIDNO7"); + + lua_pushinteger(L, gGameUBOptions.JerryGridNo); + lua_setglobal(L, "UB_iniJERRYGRIDNO"); + + lua_pushboolean(L, gGameUBOptions.LaptopQuestEnabled); + lua_setglobal(L, "UB_iniLAPTOP_QUEST"); + + lua_pushboolean(L, gGameUBOptions.InJerry); + lua_setglobal(L, "UB_iniJERRY"); + + lua_pushboolean(L, gGameUBOptions.JerryQuotes); + lua_setglobal(L, "UB_iniJERRYQUOTES"); + + lua_pushboolean(L, gGameUBOptions.InGameHeliCrash); + lua_setglobal(L, "UB_iniINGAMEHELICRASH"); + + + lua_pushboolean(L, gGameUBOptions.InGameHeli); + lua_setglobal(L, "UB_iniINGAMEHELI"); #endif //Mod Setting.ini @@ -489,15 +539,23 @@ void IniGlobalGameSetting(lua_State *L) lua_setglobal(L, "guiCurrentScreen"); #ifdef JA2UB + //old lua_pushboolean(L, gGameUBOptions.fTexAndJohn); lua_setglobal(L, "enabledJohnAndTex"); lua_pushboolean(L, gGameUBOptions.fRandomManuelText); lua_setglobal(L, "RandomManuelText"); + + //new + lua_pushboolean(L, gGameUBOptions.fTexAndJohn); + lua_setglobal(L, "UB_enabledJohnAndTex"); + + lua_pushboolean(L, gGameUBOptions.fRandomManuelText); + lua_setglobal(L, "UB_RandomManuelText"); #endif #ifdef JA2UB - //Items + //Old lua_pushinteger(L, BARRETT_UB); lua_setglobal(L, "itemBARRETT_UB"); @@ -543,25 +601,92 @@ void IniGlobalGameSetting(lua_State *L) lua_pushinteger(L, TEX_MOVIE_WILD_EAST); lua_setglobal(L, "itemTEX_MOVIE_WILD_EAST"); - lua_pushboolean(L, TEX_MOVIE_HAVE_HONDA); + lua_pushinteger(L, TEX_MOVIE_HAVE_HONDA); lua_setglobal(L, "itemTEX_MOVIE_HAVE_HONDA"); - lua_pushboolean(L, LAPTOP_TRANSMITTER); + lua_pushinteger(L, LAPTOP_TRANSMITTER); lua_setglobal(L, "itemLAPTOP_TRANSMITTER"); - lua_pushboolean(L, CHE_GUEVARA_CANTEEN); + lua_pushinteger(L, CHE_GUEVARA_CANTEEN); lua_setglobal(L, "itemCHE_GUEVARA_CANTEEN"); - lua_pushboolean(L, MERC_WRISTWATCH); + lua_pushinteger(L, MERC_WRISTWATCH); lua_setglobal(L, "itemMERC_WRISTWATCH"); - lua_pushboolean(L, SAM_GARVER_COMBAT_KNIFE); + lua_pushinteger(L, SAM_GARVER_COMBAT_KNIFE); lua_setglobal(L, "itemSAM_GARVER_COMBAT_KNIFE"); - lua_pushboolean(L, MERC_UMBRELLA_OLD); + lua_pushinteger(L, MERC_UMBRELLA_OLD); lua_setglobal(L, "itemMERC_UMBRELLA_OLD"); - lua_pushboolean(L, MORRIS_INSTRUCTION_NOTE); + lua_pushinteger(L, MORRIS_INSTRUCTION_NOTE); lua_setglobal(L, "itemMORRIS_INSTRUCTION_NOTE"); + + //New + lua_pushinteger(L, BARRETT_UB); + lua_setglobal(L, "UB_itemBARRETT"); + + lua_pushinteger(L, CALICO_960_UB); + lua_setglobal(L, "UB_itemCALICO_960"); + + lua_pushinteger(L, PSG1_UB); + lua_setglobal(L, "UB_itemPSG1"); + + lua_pushinteger(L, L85_UB); + lua_setglobal(L, "UB_itemL85"); + + lua_pushinteger(L, TAR21_UB); + lua_setglobal(L, "UB_itemTAR21"); + + lua_pushinteger(L, VAL_SILENT_UB); + lua_setglobal(L, "UB_itemVAL_SILENT"); + + lua_pushinteger(L, MICRO_UZI_UB); + lua_setglobal(L, "UB_itemMICRO_UZI"); + + lua_pushinteger(L, CALICO_950_UB); + lua_setglobal(L, "UB_itemCALICO_950"); + + lua_pushinteger(L, CALICO_900_UB); + lua_setglobal(L, "UB_itemCALICO_900"); + + lua_pushinteger(L, CLIP_CANNON_BALL); + lua_setglobal(L, "UB_itemCLIP_CANNON_BALL"); + + lua_pushinteger(L, MERC_UMBRELLA); + lua_setglobal(L, "UB_itemMERC_UMBRELLA"); + + lua_pushinteger(L, HAND_CANNON); + lua_setglobal(L, "UB_itemHAND_CANNON"); + + lua_pushinteger(L, HARTFORD_6_SHOOTER); + lua_setglobal(L, "UB_itemHARTFORD_6_SHOOTER"); + + lua_pushinteger(L, TEX_MOVIE_ATTACK_CLYDESDALES); + lua_setglobal(L, "UB_itemTEX_MOVIE_ATTACK_CLYDESDALES"); + + lua_pushinteger(L, TEX_MOVIE_WILD_EAST); + lua_setglobal(L, "UB_itemTEX_MOVIE_WILD_EAST"); + + lua_pushinteger(L, TEX_MOVIE_HAVE_HONDA); + lua_setglobal(L, "UB_itemTEX_MOVIE_HAVE_HONDA"); + + lua_pushinteger(L, LAPTOP_TRANSMITTER); + lua_setglobal(L, "UB_itemLAPTOP_TRANSMITTER"); + + lua_pushinteger(L, CHE_GUEVARA_CANTEEN); + lua_setglobal(L, "UB_itemCHE_GUEVARA_CANTEEN"); + + lua_pushinteger(L, MERC_WRISTWATCH); + lua_setglobal(L, "UB_itemMERC_WRISTWATCH"); + + lua_pushinteger(L, SAM_GARVER_COMBAT_KNIFE); + lua_setglobal(L, "UB_itemSAM_GARVER_COMBAT_KNIFE"); + + lua_pushinteger(L, MERC_UMBRELLA_OLD); + lua_setglobal(L, "UB_itemMERC_UMBRELLA_OLD"); + + lua_pushinteger(L, MORRIS_INSTRUCTION_NOTE); + lua_setglobal(L, "UB_itemMORRIS_INSTRUCTION_NOTE"); #endif -} +} \ No newline at end of file diff --git a/Tactical/Arms Dealer Init.cpp b/Tactical/Arms Dealer Init.cpp index cca34d80a..bc7ad54fe 100644 --- a/Tactical/Arms Dealer Init.cpp +++ b/Tactical/Arms Dealer Init.cpp @@ -119,9 +119,7 @@ BOOLEAN AdjustCertainDealersInventory(); void LimitArmsDealersInventory( UINT8 ubArmsDealer, UINT32 uDealerItemType, UINT8 ubMaxNumberOfItemType ); void GuaranteeAtLeastOneItemOfType( UINT8 ubArmsDealer, UINT32 uiDealerItemType ); void GuaranteeAtLeastXItemsOfIndex( UINT8 ubArmsDealer, UINT16 usItemIndex, UINT8 ubHowMany ); -#ifdef JA2UB void GuaranteeAtMostNumOfItemsForItem( UINT8 ubArmsDealer, INT16 sItemIndex, UINT8 ubAtMostNumItems ); -#endif void ArmsDealerGetsFreshStock( UINT8 ubArmsDealer, UINT16 usItemIndex, UINT8 ubNumItems ); BOOLEAN ItemContainsLiquid( UINT16 usItemIndex ); @@ -643,17 +641,25 @@ BOOLEAN AdjustCertainDealersInventory( ) GuaranteeAtLeastXItemsOfIndex( ARMS_DEALER_RAUL, BARRETT_UB, 1 ); } + /* + moved to Quest.lua //if the player hasnt done the "killed the annoying bloodcats" quest for betty, if( gubQuest[ QUEST_FIX_LAPTOP ] != QUESTDONE && gGameUBOptions.LaptopQuestEnabled == TRUE ) { - //Guarntee 1 laptop transmitter to be at betty's GuaranteeAtLeastXItemsOfIndex( ARMS_DEALER_BETTY, LAPTOP_TRANSMITTER , 1 ); //4500 } else { GuaranteeAtMostNumOfItemsForItem( ARMS_DEALER_BETTY, LAPTOP_TRANSMITTER, 0 ); //4500 } + */ + + if( gGameUBOptions.LaptopQuestEnabled == FALSE ) + { + GuaranteeAtMostNumOfItemsForItem( ARMS_DEALER_BETTY, LAPTOP_TRANSMITTER, 0 ); //4500 + } + if( gubQuest[ QUEST_GET_RID_BLOODCATS_AT_BETTYS ] != QUESTDONE ) { @@ -891,6 +897,27 @@ void GuaranteeAtLeastOneItemOfType( UINT8 ubArmsDealer, UINT32 uiDealerItemType // internal logic failure! } +void GuaranteeAtMostNumOfItemsForItem( UINT8 ubArmsDealer, INT16 sItemIndex, UINT8 ubAtMostNumItems ) +{ + + if( gArmsDealerStatus[ ubArmsDealer ].fOutOfBusiness ) + return; + + //ADB, ya, a whole 1 line of extra code! + // not permitted for repair dealers - would take extra code to avoid counting items under repair! + //Assert( !DoesDealerDoRepairs( ubArmsDealer ) ); + int itemsIHave = 0; + for (DealerItemList::iterator iter = gArmsDealersInventory[ ubArmsDealer ].begin(); + iter != gArmsDealersInventory[ ubArmsDealer ].end(); ++iter) { + if (iter->ItemIsInInventory() == true + && iter->object.usItem == sItemIndex + && iter->IsUnderRepair() == false) { + itemsIHave -= iter->object.ubNumberOfObjects; + //if there are any of these in stock + + } + } +} void GuaranteeAtLeastXItemsOfIndex( UINT8 ubArmsDealer, UINT16 usItemIndex, UINT8 ubHowMany ) { @@ -2442,68 +2469,4 @@ BOOLEAN CanThisItemBeSoldToSimulatedCustomer( UINT8 ubArmsDealerID, UINT16 usIte return( TRUE ); } - -void GuaranteeAtMostNumOfItemsForItem( UINT8 ubArmsDealer, INT16 sItemIndex, UINT8 ubAtMostNumItems ) -{ - - if( gArmsDealerStatus[ ubArmsDealer ].fOutOfBusiness ) - return; - - //ADB, ya, a whole 1 line of extra code! - // not permitted for repair dealers - would take extra code to avoid counting items under repair! - //Assert( !DoesDealerDoRepairs( ubArmsDealer ) ); - int itemsIHave = 0; - for (DealerItemList::iterator iter = gArmsDealersInventory[ ubArmsDealer ].begin(); - iter != gArmsDealersInventory[ ubArmsDealer ].end(); ++iter) { - if (iter->ItemIsInInventory() == true - && iter->object.usItem == sItemIndex - && iter->IsUnderRepair() == false) { - itemsIHave -= iter->object.ubNumberOfObjects; - //if there are any of these in stock - - } - } - - -/* UINT16 usCnt=0; - UINT8 ubNumToRemove=0; - SPECIAL_ITEM_INFO SpclItemInfo; - UINT8 ubNumLeftToRemove=0; - INT8 bItemCondition=0; - UINT8 bElementToRemove=0; - - - //if the num items in stock is greater then the num past in - if( gArmsDealersInventory[ ubArmsDealer ][ sItemIndex ].ubTotalItems > ubAtMostNumItems ) - { - ubNumToRemove = gArmsDealersInventory[ ubArmsDealer ][ sItemIndex ].ubTotalItems - ubAtMostNumItems; - - ubNumLeftToRemove = ubNumToRemove; - - //loop through the specified #of times - while( ubNumLeftToRemove > 0 ) - { - SetSpecialItemInfoToDefaults( &SpclItemInfo ); - - //remove special ones first - if( gArmsDealersInventory[ ubArmsDealer ][ sItemIndex ].ubTotalItems > gArmsDealersInventory[ ubArmsDealer ][ sItemIndex ].ubPerfectItems ) - { - bElementToRemove = GetFirstValidSpecialItemFromDealer( ubArmsDealer, sItemIndex ); - - RemoveSpecialItemFromArmsDealerInventoryAtElement( ubArmsDealer, sItemIndex, bElementToRemove ); - - ubNumLeftToRemove -= 1; - } - else - { - //lower the number to the required number - RemoveItemFromArmsDealerInventory( ubArmsDealer, sItemIndex, &SpclItemInfo, ubNumLeftToRemove ); - - ubNumLeftToRemove = 0; - } - } - } - - */ -} -#endif +#endif \ No newline at end of file diff --git a/Tactical/Arms Dealer Init.h b/Tactical/Arms Dealer Init.h index 3a6aaa07a..5293e4c90 100644 --- a/Tactical/Arms Dealer Init.h +++ b/Tactical/Arms Dealer Init.h @@ -396,7 +396,7 @@ UINT32 CalculateMinutesClosedBetween( UINT8 ubArmsDealer, UINT32 uiStartTime, UI extern void DailyCheckOnItemQuantities( BOOLEAN fInstallyHaveItemsAppear ); //Ja25 UB #endif extern void GuaranteeAtLeastXItemsOfIndex( UINT8 ubArmsDealer, UINT16 usItemIndex, UINT8 ubHowMany ); - +extern void GuaranteeAtMostNumOfItemsForItem( UINT8 ubArmsDealer, INT16 sItemIndex, UINT8 ubAtMostNumItems ); #endif \ No newline at end of file diff --git a/Tactical/Dialogue Control.cpp b/Tactical/Dialogue Control.cpp index 57e9f2b42..6a63fc03c 100644 --- a/Tactical/Dialogue Control.cpp +++ b/Tactical/Dialogue Control.cpp @@ -2021,6 +2021,81 @@ CHAR8 *GetDialogueDataFilename( UINT8 ubCharacterNum, UINT16 usQuoteNum, BOOLEAN ubFileNumID = CARLO; } + #ifdef JA2UB + if ( ubCharacterNum == MANUEL_UB ) + { + sprintf( (char *)zFileNameExists,"NPCDATA\\%03d.EDT", MANUEL_UB ); + ubFileNumID = MANUEL_UB; + } + + if ( ubCharacterNum == BIGGENS_UB ) + { + sprintf( (char *)zFileNameExists,"NPCDATA\\%03d.EDT", BIGGENS_UB ); + ubFileNumID = BIGGENS_UB; + } + + if ( ubCharacterNum == JOHN_K_UB ) + { + sprintf( (char *)zFileNameExists,"NPCDATA\\%03d.EDT", JOHN_K_UB ); + ubFileNumID = JOHN_K_UB; + } + + if ( ubCharacterNum == TEX_UB ) + { + sprintf( (char *)zFileNameExists,"NPCDATA\\%03d.EDT", TEX_UB ); + ubFileNumID = TEX_UB; + } + + if ( ubCharacterNum == GASTON_UB ) + { + sprintf( (char *)zFileNameExists,"NPCDATA\\%03d.EDT", GASTON_UB ); + ubFileNumID = GASTON_UB; + } + + if ( ubCharacterNum == STOGIE_UB ) + { + sprintf( (char *)zFileNameExists,"NPCDATA\\%03d.EDT", STOGIE_UB ); + ubFileNumID = STOGIE_UB; + } + + if ( ubCharacterNum == JERRY_MILO_UB ) + { + sprintf( (char *)zFileNameExists,"NPCDATA\\%03d.EDT", JERRY_MILO_UB ); + ubFileNumID = JERRY_MILO_UB; + } + + if ( ubCharacterNum == PGMALE4_UB ) + { + sprintf( (char *)zFileNameExists,"NPCDATA\\%03d.EDT", PGMALE4_UB ); + ubFileNumID = PGMALE4_UB; + } + + if ( ubCharacterNum == BETTY_UB ) + { + sprintf( (char *)zFileNameExists,"NPCDATA\\%03d.EDT", BETTY_UB ); + ubFileNumID = BETTY_UB; + } + + if ( ubCharacterNum == RAUL_UB ) + { + sprintf( (char *)zFileNameExists,"NPCDATA\\%03d.EDT", RAUL_UB ); + ubFileNumID = RAUL_UB; + } + + if ( ubCharacterNum == MORRIS_UB ) + { + sprintf( (char *)zFileNameExists,"NPCDATA\\%03d.EDT", MORRIS_UB ); + ubFileNumID = MORRIS_UB; + } + + if ( ubCharacterNum == RUDY_UB ) + { + sprintf( (char *)zFileNameExists,"NPCDATA\\%03d.EDT", RUDY_UB ); + ubFileNumID = RUDY_UB; + } + + #endif + // If we are character #155, check fact! if ( ubCharacterNum == MANNY && !gubFact[ FACT_MANNY_IS_BARTENDER ] ) { @@ -2069,32 +2144,33 @@ CHAR8 *GetDialogueDataFilename( UINT8 ubCharacterNum, UINT16 usQuoteNum, BOOLEAN //new profiles by Jazz if ( ( gProfilesRPC[ubCharacterNum].ProfilId == ubCharacterNum || gProfilesNPC[ubCharacterNum].ProfilId == ubCharacterNum || gProfilesVehicle[ubCharacterNum].ProfilId == ubCharacterNum ) && gMercProfiles[ ubCharacterNum ].ubMiscFlags & PROFILE_MISC_FLAG_RECRUITED ) { -//inshy: fix for UB-1.13 version only sprintf( zFileName,"SPEECH\\r_%03d_%03d.ogg",ubCharacterNum,usQuoteNum ); + //inshy: fix for UB-1.13 version only sprintf( zFileName,"SPEECH\\r_%03d_%03d.ogg",ubCharacterNum,usQuoteNum ); if ( gSoundProfileValue[ubCharacterNum].EnabledSound == TRUE ) { -#ifdef JA2UB + + #ifdef JA2UB sprintf( zFileName,"SPEECH\\%03d_%03d.ogg",ubCharacterNum,usQuoteNum ); if ( !FileExists( zFileName ) ) { sprintf( zFileName,"SPEECH\\%03d_%03d.ogg",ubCharacterNum,usQuoteNum ); } -#else + #else sprintf( zFileName,"SPEECH\\r_%03d_%03d.ogg",ubCharacterNum,usQuoteNum ); -#endif + #endif if ( !FileExists( zFileName ) ) { -//inshy: fix for UB-1.13 version only -#ifdef JA2UB + //inshy: fix for UB-1.13 version only + #ifdef JA2UB sprintf( zFileName,"SPEECH\\%03d_%03d.wav",ubCharacterNum,usQuoteNum ); if ( !FileExists( zFileName ) ) { sprintf( zFileName,"SPEECH\\%03d_%03d.wav",ubCharacterNum,usQuoteNum ); } -#else + #else sprintf( zFileName,"SPEECH\\r_%03d_%03d.wav",ubCharacterNum,usQuoteNum ); -#endif -// Also check for Russian Gold sound files (identical to international ones) + #endif + // Also check for Russian Gold sound files (identical to international ones) if(! FileExists( zFileName ) ) { sprintf( zFileName,"SPEECH\\%03d_%03d.ogg",ubCharacterNum,usQuoteNum ); diff --git a/Tactical/Handle Items.cpp b/Tactical/Handle Items.cpp index de2eae307..79568c871 100644 --- a/Tactical/Handle Items.cpp +++ b/Tactical/Handle Items.cpp @@ -2397,10 +2397,10 @@ void SoldierGetItemFromWorld( SOLDIERTYPE *pSoldier, INT32 iItemIndex, INT32 sGr #ifdef JA2UB //JA25 ub //if the item is valid - if( usItem != 0 ) + if( iItemIndex != 0 ) { //handle the picking up of a new ja25 gun - HandleNewGunComment( pSoldier, usItem, TRUE ); + HandleNewGunComment( pSoldier, iItemIndex, TRUE ); } #endif // Aknowledge.... diff --git a/Tactical/Interface Dialogue.cpp b/Tactical/Interface Dialogue.cpp index 8ef527fc7..d58151710 100644 --- a/Tactical/Interface Dialogue.cpp +++ b/Tactical/Interface Dialogue.cpp @@ -5636,7 +5636,7 @@ void HandleRaulBlowingHimselfUp() UINT16 usItem=0; //Find Raul - pSoldier = FindSoldierByProfileID( 74, FALSE ); + pSoldier = FindSoldierByProfileID( RAUL_UB, FALSE ); //if he exists if( pSoldier ) diff --git a/Tactical/Ja25_Tactical.cpp b/Tactical/Ja25_Tactical.cpp index a894a6b99..6b06a0981 100644 --- a/Tactical/Ja25_Tactical.cpp +++ b/Tactical/Ja25_Tactical.cpp @@ -319,6 +319,42 @@ void InitGridNoUB() POWERGENFANSOUND_GRIDNO2 = gGameUBOptions.PowergenFanSoundGridNo2; //= 19749; STARTFANBACKUPAGAIN_GRIDNO = gGameUBOptions.StartFanbackupAgainGridNo; //= 10980; STOPPOWERGENFAN_GRIDNO = gGameUBOptions.StopPowergenFanGridNo; //= 10980; + + MANUEL_UB = gGameUBOptions.ubMANUEL_UB; + BIGGENS_UB = gGameUBOptions.ubBIGGENS_UB; + JOHN_K_UB = gGameUBOptions.ubJOHN_K_UB; + TEX_UB = gGameUBOptions.ubTEX_UB; + GASTON_UB = gGameUBOptions.ubGASTON_UB; + STOGIE_UB = gGameUBOptions.ubSTOGIE_UB; + JERRY_MILO_UB = gGameUBOptions.ubJERRY_MILO_UB; + PGMALE4_UB = gGameUBOptions.ubPGMALE4_UB; + BETTY_UB = gGameUBOptions.ubBETTY_UB; + RAUL_UB = gGameUBOptions.ubRAUL_UB; + MORRIS_UB = gGameUBOptions.ubMORRIS_UB; + RUDY_UB = gGameUBOptions.ubRUDY_UB; + + TEX_MOVIE_ATTACK_CLYDESDALES = gGameUBOptions.ubTEX_MOVIE_ATTACK_CLYDESDALES; + TEX_MOVIE_WILD_EAST = gGameUBOptions.ubTEX_MOVIE_WILD_EAST; + TEX_MOVIE_HAVE_HONDA = gGameUBOptions.ubTEX_MOVIE_HAVE_HONDA; + LAPTOP_TRANSMITTER = gGameUBOptions.ubLAPTOP_TRANSMITTER; + CHE_GUEVARA_CANTEEN = gGameUBOptions.ubCHE_GUEVARA_CANTEEN; + MERC_WRISTWATCH = gGameUBOptions.ubMERC_WRISTWATCH; + SAM_GARVER_COMBAT_KNIFE = gGameUBOptions.ubSAM_GARVER_COMBAT_KNIFE; + MERC_UMBRELLA_OLD = gGameUBOptions.ubMERC_UMBRELLA_OLD; + MORRIS_INSTRUCTION_NOTE = gGameUBOptions.ubMORRIS_INSTRUCTION_NOTE; + HAND_CANNON = gGameUBOptions.ubHAND_CANNON; + HARTFORD_6_SHOOTER = gGameUBOptions.ubHARTFORD_6_SHOOTER; + MERC_UMBRELLA = gGameUBOptions.ubMERC_UMBRELLA; + CLIP_CANNON_BALL = gGameUBOptions.ubCLIP_CANNON_BALL; + BARRETT_UB = gGameUBOptions.ubBARRETT_UB; + CALICO_960_UB = gGameUBOptions.ubCALICO_960_UB; + PSG1_UB = gGameUBOptions.ubPSG1_UB; + L85_UB = gGameUBOptions.ubL85_UB; + TAR21_UB = gGameUBOptions.ubTAR21_UB; + VAL_SILENT_UB = gGameUBOptions.ubVAL_SILENT_UB; + MICRO_UZI_UB = gGameUBOptions.ubMICRO_UZI_UB; + CALICO_950_UB = gGameUBOptions.ubCALICO_950_UB; + CALICO_900_UB = gGameUBOptions.ubCALICO_900_UB; } @@ -1253,12 +1289,14 @@ void HandlePickingUpMorrisInstructionNote( SOLDIERTYPE *pSoldier, INT32 iIndex ) return; } +/* //if the note has already been picked up by a new merc, or the not ehas been displayed if( gJa25SaveStruct.ubMorrisNoteState == MN__PICKED_UP_BY_NEW_MERC || gJa25SaveStruct.ubMorrisNoteState == MN__FINISHED ) { return; } +*/ bID = RandomSoldierIdFromNewMercsOnPlayerTeam(); diff --git a/Tactical/Overhead.cpp b/Tactical/Overhead.cpp index 7703a3182..f28475e73 100644 --- a/Tactical/Overhead.cpp +++ b/Tactical/Overhead.cpp @@ -3466,6 +3466,7 @@ void HandleNPCTeamMemberDeath( SOLDIERTYPE *pSoldierOld ) if (pSoldierOld->bTeam == CIV_TEAM ) { #ifdef JA2UB + #else SOLDIERTYPE * pOther; #endif @@ -3475,30 +3476,12 @@ void HandleNPCTeamMemberDeath( SOLDIERTYPE *pSoldierOld ) ScreenMsg( FONT_RED, MSG_INTERFACE, pMercDeadString[ 0 ], pSoldierOld->GetName() ); } - #ifdef JA2UB - if ( pSoldierOld->ubProfile == MORRIS_UB ) - { - { - INT8 bSoldierID; - - //Geta a random soldier ID - bSoldierID = RandomSoldierIdFromNewMercsOnPlayerTeam(); - - //if there is any - if( bSoldierID != -1 ) - { - //say the MORRIS dead quote - TacticalCharacterDialogue( &Menptr[ bSoldierID ], QUOTE_LEARNED_TO_HATE_MERC_1_ON_TEAM_WONT_RENEW ); - } - } - } - #endif - - switch( pSoldierOld->ubProfile ) - { #ifdef JA2UB -#else //Ja25: none of these characters are in the exp. +#else //Ja25: none of these characters are in the exp. + switch( pSoldierOld->ubProfile ) + { + case BRENDA: SetFactTrue( FACT_BRENDA_DEAD ); { @@ -3637,20 +3620,43 @@ void HandleNPCTeamMemberDeath( SOLDIERTYPE *pSoldierOld ) HandleNPCDoAction( DOREEN, NPC_ACTION_FREE_KIDS, 0 ); } break; -#endif -#ifdef JA2UB - -#else // SANDRO - Check if queen bitch is dead case QUEEN: // Muhahahahaaa, QUEST COMPLETED! Give us everything!! Exp, glory, fame! EndQuest( QUEST_KILL_DEIDRANNA, pSoldierOld->sSectorX, pSoldierOld->sSectorY ); break; -#endif + } +#endif + #ifdef JA2UB + if ( pSoldierOld->ubProfile == MORRIS_UB ) + { + { + INT8 bSoldierID; + SOLDIERTYPE * pOther; + + pOther = FindSoldierByProfileID( MORRIS_UB, FALSE ); + if ( pOther ) + { + OBJECTTYPE Object; + CreateItem( MORRIS_INSTRUCTION_NOTE, 100, &Object ); + AutoPlaceObject( pOther, &Object, TRUE ); + } + + //Geta a random soldier ID + bSoldierID = RandomSoldierIdFromNewMercsOnPlayerTeam(); + + //if there is any + if( bSoldierID != -1 ) + { + //say the MORRIS dead quote + TacticalCharacterDialogue( &Menptr[ bSoldierID ], QUOTE_LEARNED_TO_HATE_MERC_1_ON_TEAM_WONT_RENEW ); + } + } + } // Ja25no queen #else // Are we looking at the queen? diff --git a/TacticalAI/NPC.cpp b/TacticalAI/NPC.cpp index c1f156c4e..0865be035 100644 --- a/TacticalAI/NPC.cpp +++ b/TacticalAI/NPC.cpp @@ -53,6 +53,13 @@ #include "Encyclopedia.h" +#ifdef JA2UB +#include "Ja25_Tactical.h" +#include "Ja25_Tactical.h" +#include "ub_config.h" +#endif + + //forward declarations of common classes to eliminate includes class OBJECTTYPE; class SOLDIERTYPE; @@ -178,6 +185,71 @@ NPCQuoteInfo * LoadQuoteFile( UINT8 ubNPC ) } } + + #ifdef JA2UB + if ( ubNPC == MANUEL_UB ) + { + sprintf( zFileName, "NPCData\\%03d.npc", MANUEL_UB ); + } + + if ( ubNPC == BIGGENS_UB ) + { + sprintf( zFileName, "NPCData\\%03d.npc", BIGGENS_UB ); + } + + if ( ubNPC == JOHN_K_UB ) + { + sprintf( zFileName, "NPCData\\%03d.npc", JOHN_K_UB ); + } + + if ( ubNPC == TEX_UB ) + { + sprintf( zFileName, "NPCData\\%03d.npc", TEX_UB ); + } + + if ( ubNPC == GASTON_UB ) + { + sprintf( zFileName, "NPCData\\%03d.npc", GASTON_UB ); + } + + if ( ubNPC == STOGIE_UB ) + { + sprintf( zFileName, "NPCData\\%03d.npc", STOGIE_UB ); + } + + if ( ubNPC == JERRY_MILO_UB ) + { + sprintf( zFileName, "NPCData\\%03d.npc", JERRY_MILO_UB ); + } + + if ( ubNPC == PGMALE4_UB ) + { + sprintf( zFileName, "NPCData\\%03d.npc", PGMALE4_UB ); + } + + if ( ubNPC == BETTY_UB ) + { + sprintf( zFileName, "NPCData\\%03d.npc", BETTY_UB ); + } + + if ( ubNPC == RAUL_UB ) + { + sprintf( zFileName, "NPCData\\%03d.npc", RAUL_UB ); + } + + if ( ubNPC == MORRIS_UB ) + { + sprintf( zFileName, "NPCData\\%03d.npc", MORRIS_UB ); + } + + if ( ubNPC == RUDY_UB ) + { + sprintf( zFileName, "NPCData\\%03d.npc", RUDY_UB ); + } + + #endif + + //else if ( ubNPC < FIRST_RPC || ubNPC >= GASTON || (ubNPC < FIRST_NPC && gMercProfiles[ ubNPC ].ubMiscFlags & PROFILE_MISC_FLAG_RECRUITED ) ) //new profiles by Jazz else if ( gProfilesIMP[ubNPC].ProfilId == ubNPC || gProfilesAIM[ubNPC].ProfilId == ubNPC || gProfilesMERC[ubNPC].ProfilId == ubNPC || ( gProfilesRPC[ubNPC].ProfilId == ubNPC && gMercProfiles[ ubNPC ].ubMiscFlags & PROFILE_MISC_FLAG_RECRUITED ) ) diff --git a/TileEngine/worlddef.cpp b/TileEngine/worlddef.cpp index be668e903..9eed63461 100644 --- a/TileEngine/worlddef.cpp +++ b/TileEngine/worlddef.cpp @@ -507,11 +507,51 @@ BOOLEAN LoadTileSurfaces( char ppTileSurfaceFilenames[][32], UINT8 ubTilesetID ) } else { + + if ( uiLoop == 123 ) + { + strcpy( TileSurfaceFilenames[123], gTilesets[ TLS_GENERIC_1 ].TileSurfaceFilenames[123] );//(char *)(ppTileSurfaceFilenames + (65 * uiLoop)) ); + if (AddTileSurface( gTilesets[ TLS_GENERIC_1 ].TileSurfaceFilenames[123], 123, TLS_GENERIC_1, FALSE ) == FALSE) + { + DestroyTileSurfaces( ); + return( FALSE ); + } + } + else if ( uiLoop == 124 ) + { + strcpy( TileSurfaceFilenames[124], gTilesets[ TLS_GENERIC_1 ].TileSurfaceFilenames[124] );//(char *)(ppTileSurfaceFilenames + (65 * uiLoop)) ); + if (AddTileSurface( gTilesets[ TLS_GENERIC_1 ].TileSurfaceFilenames[124], 124, TLS_GENERIC_1, FALSE ) == FALSE) + { + DestroyTileSurfaces( ); + return( FALSE ); + } + } + else if ( uiLoop == 125 ) + { + strcpy( TileSurfaceFilenames[125], gTilesets[ TLS_GENERIC_1 ].TileSurfaceFilenames[125] );//(char *)(ppTileSurfaceFilenames + (65 * uiLoop)) ); + if (AddTileSurface( gTilesets[ TLS_GENERIC_1 ].TileSurfaceFilenames[125], 125, TLS_GENERIC_1, FALSE ) == FALSE) + { + DestroyTileSurfaces( ); + return( FALSE ); + } + } + else if ( uiLoop == 127 ) + { + strcpy( TileSurfaceFilenames[127], gTilesets[ TLS_GENERIC_1 ].TileSurfaceFilenames[127] );//(char *)(ppTileSurfaceFilenames + (65 * uiLoop)) ); + if (AddTileSurface( gTilesets[ TLS_GENERIC_1 ].TileSurfaceFilenames[127], 127, TLS_GENERIC_1, FALSE ) == FALSE) + { + DestroyTileSurfaces( ); + return( FALSE ); + } + } + else + { strcpy( TileSurfaceFilenames[uiLoop], gTilesets[ DEFAULT_JA25_TILESET ].TileSurfaceFilenames[uiLoop] );//(char *)(ppTileSurfaceFilenames + (65 * uiLoop)) ); if (AddTileSurface( gTilesets[ DEFAULT_JA25_TILESET ].TileSurfaceFilenames[uiLoop], uiLoop, DEFAULT_JA25_TILESET, FALSE ) == FALSE) { DestroyTileSurfaces( ); return( FALSE ); + } } } #else diff --git a/Utils/_PolishText.cpp b/Utils/_PolishText.cpp index d32d87a4a..db2a8db13 100644 --- a/Utils/_PolishText.cpp +++ b/Utils/_PolishText.cpp @@ -538,7 +538,7 @@ STR16 iEditorTaskbarInternalText[]= L"Opcje", L"|./|,: Cycle 'width: xx' dimensions\n|P|g |U|p/|P|g |D|n: Previous/Next tile for selected object(s)/in smart method", //Terrain fasthelp text // TODO.Translate L"|./|,: Cycle 'width: xx' dimensions\n|P|g |U|p/|P|g |D|n: Previous/Next tile for selected object(s)/in smart method", //Buildings fasthelp text // TODO.Translate - LL"|C|t|r|l+|/: Place new item under mouse cursor\n|/: Place same item under mouse cursor", //Items fasthelp text // TODO.Translate + L"|C|t|r|l+|/: Place new item under mouse cursor\n|/: Place same item under mouse cursor", //Items fasthelp text // TODO.Translate L"|1-|9: Set waypoints\n|C|t|r|l+|C/|C|t|r|l+|V: Copy/Paste merc", //Mercs fasthelp text // TODO.Translate L"|C|t|r|l+|G: Go to grid no\n \n|I: Toggle overhead map\n|J: Toggle draw high ground\n|K: Toggle high ground markers\n|S|h|i|f|t+|L: Toggle map edge points\n|S|h|i|f|t+|T: Toggle treetops\n|U: Toggle world raise\n \n|./|,: Cycle 'width: xx' dimensions", //Map Info fasthelp text // TODO.Translate L"|C|t|r|l+|N: Create new map\n \n|F|5: Show Summary Info/Country Map\n|F|1|0: Remove all lights\n|F|1|1: Reverse schedules\n|F|1|2: Clear schedules\n \n|S|h|i|f|t+|R: Toggle random placement based on quantity of selected object(s)", //Options fasthelp text // TODO.Translate diff --git a/ub_config.cpp b/ub_config.cpp index 59517fad2..33f0d7510 100644 --- a/ub_config.cpp +++ b/ub_config.cpp @@ -296,44 +296,46 @@ void LoadGameUBOptions() // Weapon // ----------------------- #ifdef JA2UB - TEX_MOVIE_ATTACK_CLYDESDALES = iniReader.ReadInteger("Unfinished Business Items","TEX_MOVIE_ATTACK_CLYDESDALES", 1356); - TEX_MOVIE_WILD_EAST = iniReader.ReadInteger("Unfinished Business Items","TEX_MOVIE_WILD_EAST", 1357); - TEX_MOVIE_HAVE_HONDA = iniReader.ReadInteger("Unfinished Business Items","TEX_MOVIE_HAVE_HONDA", 1358); - LAPTOP_TRANSMITTER = iniReader.ReadInteger("Unfinished Business Items","LAPTOP_TRANSMITTER", 1355); - CHE_GUEVARA_CANTEEN = iniReader.ReadInteger("Unfinished Business Items","CHE_GUEVARA_CANTEEN", 1359); - MERC_WRISTWATCH = iniReader.ReadInteger("Unfinished Business Items","MERC_WRISTWATCH", 1360); - SAM_GARVER_COMBAT_KNIFE = iniReader.ReadInteger("Unfinished Business Items","SAM_GARVER_COMBAT_KNIFE", 1353); - MERC_UMBRELLA_OLD = iniReader.ReadInteger("Unfinished Business Items","MERC_UMBRELLA_OLD", 1361); - MORRIS_INSTRUCTION_NOTE = iniReader.ReadInteger("Unfinished Business Items","MORRIS_INSTRUCTION_NOTE", 1362); - HAND_CANNON = iniReader.ReadInteger("Unfinished Business Items","HAND_CANNON", 1352); - HARTFORD_6_SHOOTER = iniReader.ReadInteger("Unfinished Business Items","HARTFORD_6_SHOOTER", 66); - MERC_UMBRELLA = iniReader.ReadInteger("Unfinished Business Items","MERC_UMBRELLA", 1361); - CLIP_CANNON_BALL = iniReader.ReadInteger("Unfinished Business Items","CLIP_CANNON_BALL", 1354); - BARRETT_UB = iniReader.ReadInteger("Unfinished Business Items","BARRETT_UB", 335); - CALICO_960_UB = iniReader.ReadInteger("Unfinished Business Items","CALICO_960_UB", 69); - PSG1_UB = iniReader.ReadInteger("Unfinished Business Items","PSG1_UB", 334); - L85_UB = iniReader.ReadInteger("Unfinished Business Items","L85_UB", 331); - TAR21_UB = iniReader.ReadInteger("Unfinished Business Items","TAR21_UB", 332); - VAL_SILENT_UB = iniReader.ReadInteger("Unfinished Business Items","VAL_SILENT_UB", 333); - MICRO_UZI_UB = iniReader.ReadInteger("Unfinished Business Items","MICRO_UZI_UB", 330); - CALICO_950_UB = iniReader.ReadInteger("Unfinished Business Items","CALICO_950_UB", 67); - CALICO_900_UB = iniReader.ReadInteger("Unfinished Business Items","CALICO_900_UB", 68); + gGameUBOptions.ubTEX_MOVIE_ATTACK_CLYDESDALES = iniReader.ReadInteger("Unfinished Business Items","TEX_MOVIE_ATTACK_CLYDESDALES", 1356); + gGameUBOptions.ubTEX_MOVIE_WILD_EAST = iniReader.ReadInteger("Unfinished Business Items","TEX_MOVIE_WILD_EAST", 1357); + gGameUBOptions.ubTEX_MOVIE_HAVE_HONDA = iniReader.ReadInteger("Unfinished Business Items","TEX_MOVIE_HAVE_HONDA", 1358); + gGameUBOptions.ubLAPTOP_TRANSMITTER = iniReader.ReadInteger("Unfinished Business Items","LAPTOP_TRANSMITTER", 1355); + gGameUBOptions.ubCHE_GUEVARA_CANTEEN = iniReader.ReadInteger("Unfinished Business Items","CHE_GUEVARA_CANTEEN", 1359); + gGameUBOptions.ubMERC_WRISTWATCH = iniReader.ReadInteger("Unfinished Business Items","MERC_WRISTWATCH", 1360); + gGameUBOptions.ubSAM_GARVER_COMBAT_KNIFE = iniReader.ReadInteger("Unfinished Business Items","SAM_GARVER_COMBAT_KNIFE", 1353); + gGameUBOptions.ubMERC_UMBRELLA_OLD = iniReader.ReadInteger("Unfinished Business Items","MERC_UMBRELLA_OLD", 1361); + gGameUBOptions.ubMORRIS_INSTRUCTION_NOTE = iniReader.ReadInteger("Unfinished Business Items","MORRIS_INSTRUCTION_NOTE", 1362); + gGameUBOptions.ubHAND_CANNON = iniReader.ReadInteger("Unfinished Business Items","HAND_CANNON", 1352); + gGameUBOptions.ubHARTFORD_6_SHOOTER = iniReader.ReadInteger("Unfinished Business Items","HARTFORD_6_SHOOTER", 66); + gGameUBOptions.ubMERC_UMBRELLA = iniReader.ReadInteger("Unfinished Business Items","MERC_UMBRELLA", 1361); + gGameUBOptions.ubCLIP_CANNON_BALL = iniReader.ReadInteger("Unfinished Business Items","CLIP_CANNON_BALL", 1354); + gGameUBOptions.ubBARRETT_UB = iniReader.ReadInteger("Unfinished Business Items","BARRETT_UB", 335); + gGameUBOptions.ubCALICO_960_UB = iniReader.ReadInteger("Unfinished Business Items","CALICO_960_UB", 69); + gGameUBOptions.ubPSG1_UB = iniReader.ReadInteger("Unfinished Business Items","PSG1_UB", 334); + gGameUBOptions.ubL85_UB = iniReader.ReadInteger("Unfinished Business Items","L85_UB", 331); + gGameUBOptions.ubTAR21_UB = iniReader.ReadInteger("Unfinished Business Items","TAR21_UB", 332); + gGameUBOptions.ubVAL_SILENT_UB = iniReader.ReadInteger("Unfinished Business Items","VAL_SILENT_UB", 333); + gGameUBOptions.ubMICRO_UZI_UB = iniReader.ReadInteger("Unfinished Business Items","MICRO_UZI_UB", 330); + gGameUBOptions.ubCALICO_950_UB = iniReader.ReadInteger("Unfinished Business Items","CALICO_950_UB", 67); + gGameUBOptions.ubCALICO_900_UB = iniReader.ReadInteger("Unfinished Business Items","CALICO_900_UB", 68); // ----------------------- // Profiles // ----------------------- - MANUEL_UB = iniReader.ReadInteger("Unfinished Business Profiles","MANUEL", 60); - BIGGENS_UB = iniReader.ReadInteger("Unfinished Business Profiles","BIGENS", 61); - JOHN_K_UB = iniReader.ReadInteger("Unfinished Business Profiles","JOHN_K", 62); - TEX_UB = iniReader.ReadInteger("Unfinished Business Profiles","TEX", 64); - GASTON_UB = iniReader.ReadInteger("Unfinished Business Profiles","GASTON", 58); - STOGIE_UB = iniReader.ReadInteger("Unfinished Business Profiles","STOGIE", 59); - JERRY_MILO_UB = iniReader.ReadInteger("Unfinished Business Profiles","JERRY", 76); - PGMALE4_UB = iniReader.ReadInteger("Unfinished Business Profiles","PGMALE4", 57); - BETTY_UB = iniReader.ReadInteger("Unfinished Business Profiles","BETTY", 73); - RAUL_UB = iniReader.ReadInteger("Unfinished Business Profiles","RAUL", 74); - MORRIS_UB = iniReader.ReadInteger("Unfinished Business Profiles","MORRIS", 75); - RUDY_UB = iniReader.ReadInteger("Unfinished Business Profiles","RUDY", 77); + gGameUBOptions.ubMANUEL_UB = iniReader.ReadInteger("Unfinished Business Profiles","MANUEL", 60); + gGameUBOptions.ubBIGGENS_UB = iniReader.ReadInteger("Unfinished Business Profiles","BIGENS", 61); + gGameUBOptions.ubJOHN_K_UB = iniReader.ReadInteger("Unfinished Business Profiles","JOHN_K", 62); + gGameUBOptions.ubTEX_UB = iniReader.ReadInteger("Unfinished Business Profiles","TEX", 64); + gGameUBOptions.ubGASTON_UB = iniReader.ReadInteger("Unfinished Business Profiles","GASTON", 58); + gGameUBOptions.ubSTOGIE_UB = iniReader.ReadInteger("Unfinished Business Profiles","STOGIE", 59); + gGameUBOptions.ubJERRY_MILO_UB = iniReader.ReadInteger("Unfinished Business Profiles","JERRY", 76); + gGameUBOptions.ubPGMALE4_UB = iniReader.ReadInteger("Unfinished Business Profiles","PGMALE4", 57); + gGameUBOptions.ubBETTY_UB = iniReader.ReadInteger("Unfinished Business Profiles","BETTY", 73); + gGameUBOptions.ubRAUL_UB = iniReader.ReadInteger("Unfinished Business Profiles","RAUL", 74); + gGameUBOptions.ubMORRIS_UB = iniReader.ReadInteger("Unfinished Business Profiles","MORRIS", 75); + gGameUBOptions.ubRUDY_UB = iniReader.ReadInteger("Unfinished Business Profiles","RUDY", 77); + + #endif } diff --git a/ub_config.h b/ub_config.h index 1c3924d2f..abb257e88 100644 --- a/ub_config.h +++ b/ub_config.h @@ -88,6 +88,42 @@ typedef struct BOOLEAN fBobbyRSite; BOOLEAN fDeadMerc; + + UINT8 ubMANUEL_UB; + UINT8 ubBIGGENS_UB; + UINT8 ubJOHN_K_UB; + UINT8 ubTEX_UB; + UINT8 ubGASTON_UB; + UINT8 ubSTOGIE_UB; + UINT8 ubJERRY_MILO_UB; + UINT8 ubPGMALE4_UB; + UINT8 ubBETTY_UB; + UINT8 ubRAUL_UB; + UINT8 ubMORRIS_UB; + UINT8 ubRUDY_UB; + + UINT32 ubTEX_MOVIE_ATTACK_CLYDESDALES; + UINT32 ubTEX_MOVIE_WILD_EAST; + UINT32 ubTEX_MOVIE_HAVE_HONDA; + UINT32 ubLAPTOP_TRANSMITTER; + UINT32 ubCHE_GUEVARA_CANTEEN; + UINT32 ubMERC_WRISTWATCH; + UINT32 ubSAM_GARVER_COMBAT_KNIFE; + UINT32 ubMERC_UMBRELLA_OLD; + UINT32 ubMORRIS_INSTRUCTION_NOTE; + UINT32 ubHAND_CANNON; + UINT32 ubHARTFORD_6_SHOOTER; + UINT32 ubMERC_UMBRELLA; + UINT32 ubCLIP_CANNON_BALL; + UINT32 ubBARRETT_UB; + UINT32 ubCALICO_960_UB; + UINT32 ubPSG1_UB; + UINT32 ubL85_UB; + UINT32 ubTAR21_UB; + UINT32 ubVAL_SILENT_UB; + UINT32 ubMICRO_UZI_UB; + UINT32 ubCALICO_950_UB; + UINT32 ubCALICO_900_UB; UINT8 MaxNumberOfMercs;