From 54bda377ea0eb666d7ff2b4f864c0e1194bcf696 Mon Sep 17 00:00:00 2001 From: Crimsonum Date: Tue, 20 Aug 2024 15:00:58 +0300 Subject: [PATCH 1/6] Update Rubicon hacks --- src/rubicon_hacks.asm | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/src/rubicon_hacks.asm b/src/rubicon_hacks.asm index d1e0ee4..4cad0e5 100644 --- a/src/rubicon_hacks.asm +++ b/src/rubicon_hacks.asm @@ -10,9 +10,17 @@ ; Change the distribution of cluster weapons [only inner radius changed for now] ;@SET 0x004465D6, {db 0x02} ; outer spread radius in leptons -@SET 0x004465DB, {db 0x00} ; inner spread radius in leptons +;@SET 0x004465DB, {db 0x00} ; inner spread radius in leptons ;@SET 0x004465EA, {db 0x01} ; [bool] should clusters hit the center of the cell? +; Translucency fix (by Apollo) +@SET 0x00469350, {db 0xBA, 0xDE, 0xF7, 0, 0, 0x8B, 0x6C, 0x24, 0x2C, 0x31, 0xC9, 0x31, 0xC0, 0x66, 0x8B, 0x0B, 0x66, 0x8B, 0x44, 0x4D, 0, 0x8B, 0x4C, 0x24, 0x30, 0x08, 0xC8, 0x8B, 0x4C, 0x24, 0x10, 0x8B, 0x69, 0x04, 0x8B, 0x6C, 0x45, 0, 0x89, 0xE8, 0x33, 0x2F, 0x21, 0xD5, 0xD1, 0xED, 0x0B, 0x07, 0x29, 0xE8, 0x89, 0xC5, 0x33, 0x07, 0x09, 0xC5, 0x21, 0xD0, 0xD1, 0xE8, 0x29, 0xC5, 0x66, 0x89, 0x2F, 0x90, 0x90} +@SET 0x0046948E, {db 0x8B, 0x6C, 0x24, 0x2C, 0x31, 0xC9, 0x31, 0xC0, 0x66, 0x8B, 0x0B, 0x66, 0x8B, 0x44, 0x4D, 0, 0x8B, 0x4C, 0x24, 0x30, 0x8B, 0x6C, 0x24, 0x10, 0x81, 0xE1, 0xFF, 0, 0, 0, 0x09, 0xC8, 0x8B, 0x4D, 0x04, 0x8B, 0x04, 0x41, 0x8B, 0x0F, 0x89, 0xCE, 0x31, 0xC1, 0x09, 0xF0, 0x81, 0xE1, 0xDE, 0xF7, 0, 0, 0xD1, 0xE9, 0x29, 0xC8, 0x66, 0x89, 0x07, 0x90, 0x90} +@SET 0x004695C0, {db 0xBA, 0xDE, 0xF7, 0, 0, 0x8B, 0x6C, 0x24, 0x2C, 0x31, 0xC9, 0x31, 0xC0, 0x66, 0x8B, 0x0B, 0x66, 0x8B, 0x44, 0x4D, 0, 0x8B, 0x4C, 0x24, 0x30, 0x08, 0xC8, 0x8B, 0x4C, 0x24, 0x10, 0x8B, 0x69, 0x04, 0x8B, 0x44, 0x45, 0, 0x89, 0xC5, 0x33, 0x2F, 0x21, 0xD5, 0xD1, 0xED, 0x50, 0x0B, 0x07, 0x29, 0xE8, 0x5D, 0x31, 0xC5, 0x09, 0xE8, 0x21, 0xD5, 0xD1, 0xED, 0x29, 0xE8, 0x66, 0x89, 0x07, 0x90, 0x90} +@SET 0x0046BD3E, {db 0x66, 0xBE, 0xDE, 0xF7, 0x66, 0x8B, 0x0A, 0x31, 0xC0, 0x66, 0x8B, 0x44, 0x4D, 0, 0x8B, 0x4C, 0x24, 0x18, 0x81, 0xE1, 0xFF, 0, 0, 0, 0x8B, 0x6C, 0x24, 0x2C, 0x09, 0xC8, 0x8B, 0x4C, 0x24, 0x10, 0x8B, 0x49, 0x04, 0x8B, 0x04, 0x41, 0x89, 0xC1, 0x33, 0x0F, 0x21, 0xF1, 0xD1, 0xE9, 0x0B, 0x07, 0x29, 0xC8, 0x89, 0xC1, 0x33, 0x07, 0x09, 0xC1, 0x21, 0xF0, 0xD1, 0xE8, 0x29, 0xC1, 0x8B, 0x44, 0x24, 0x20, 0x66, 0x89, 0x0F, 0x47, 0x47} +@SET 0x0046BEF7, {db 0x66, 0x8B, 0x0E, 0x31, 0xC0, 0x66, 0x8B, 0x04, 0x4F, 0x8B, 0x4C, 0x24, 0x2C, 0x81, 0xE1, 0xFF, 0, 0, 0, 0x09, 0xC8, 0x8B, 0x4C, 0x24, 0x10, 0x8B, 0x49, 0x04, 0x8B, 0x04, 0x41, 0x8B, 0x0B, 0x89, 0xCA, 0x31, 0xC1, 0x09, 0xD0, 0x81, 0xE1, 0xDE, 0xF7, 0, 0, 0xD1, 0xE9, 0x29, 0xC8, 0x8B, 0x4C, 0x24, 0x20, 0x49, 0x66, 0x89, 0x03, 0x90, 0x90} +@SET 0x0046C0AE, {db 0x66, 0xBE, 0xDE, 0xF7, 0x66, 0x8B, 0x0A, 0x31, 0xC0, 0x66, 0x8B, 0x44, 0x4D, 0, 0x8B, 0x4C, 0x24, 0x18, 0x81, 0xE1, 0xFF, 0, 0, 0, 0x8B, 0x6C, 0x24, 0x2C, 0x09, 0xC8, 0x8B, 0x4C, 0x24, 0x10, 0x8B, 0x49, 0x04, 0x8B, 0x04, 0x41, 0x89, 0xC1, 0x33, 0x0F, 0x21, 0xF1, 0xD1, 0xE9, 0x50, 0x0B, 0x07, 0x29, 0xC8, 0x59, 0x31, 0xC1, 0x09, 0xC8, 0x21, 0xF1, 0xD1, 0xE9, 0x29, 0xC8, 0x66, 0x89, 0x07, 0x47, 0x47} + ; Increase Ion Storm warning speech frequency @SET 0x004ED5AA, {db 0x4E, 0x01} @@ -31,6 +39,23 @@ @SET 0x0062B2E4, {mov dword [esp+1Ch], 0x06} @SET 0x0062C0C1, {mov edi, 0x06} +; Erase HMEC hardcoding +@SET 0x00706A8C, {db 0,0,0,0} + +; Erase NAWALL and GAWALL hardcoding +@SET 0x00710DA4, {db 0,0,0,0,0,0} +@SET 0x00710DAC, {db 0,0,0,0,0,0} + +; Erase GAFSDF, 155mm and ARTYHE hardcoding +@SET 0x00710DB4, {db 0,0,0,0,0,0} +@SET 0x00715E78, {db 0,0,0,0,0} +@SET 0x00714C70, {db 0,0,0,0,0,0} + +sstring str_BriefingPCX, "BRIEFING.PCX" + +; String references +@SET 0x005C04AF, {mov ecx, str_BriefingPCX} + ; ; The following patches will not be included in Vinifera compatible builds. @@ -80,16 +105,6 @@ sstring str_LanguageDLLNotFound, "Language.dll not found, please start Rubicon.e @SET 0x005DD798, {mov cl, byte [0x007E2500]} @CLEAR 0x005DD79E, 0x90, 0x005DD7A2 -; Erase NAWALL and GAWALL hardcoding -@SET 0x00710DA4, {db 0,0,0,0,0,0} -@SET 0x00710DAC, {db 0,0,0,0,0,0} - -; Erase GAFSDF, HMEC, 155mm and ARTYHE hardcoding -@SET 0x00710DB4, {db 0,0,0,0,0,0} -@SET 0x00706A8C, {db 0,0,0,0} -@SET 0x00715E78, {db 0,0,0,0,0} -@SET 0x00714C70, {db 0,0,0,0,0,0} - ; Load speech MIX files for new sides properly (for saved games) @SET 0x005D6DCE, {xor ecx, ecx} @SET 0x005D6DD0, {mov cl, [eax+1D91h]} From 9119858fbd052f411a5d67b26ac6de800b459079 Mon Sep 17 00:00:00 2001 From: Crimsonum Date: Tue, 20 Aug 2024 15:09:44 +0300 Subject: [PATCH 2/6] Disable shared control patch for Rubicon --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index f68e3c0..bae8937 100644 --- a/Makefile +++ b/Makefile @@ -269,8 +269,8 @@ OBJS += src/saved_games_in_subdir.o OBJS += src/savegame.o OBJS += src/scrap_metal_explosion.o -# Only include in: MOD_TO MOD_RUBICON MOD_FD MOD_TM TSCLIENT -ifneq ($(call ifdef_any_of,MOD_TO MOD_TI MOD_RUBICON MOD_FD MOD_TM TSCLIENT),) +# Only include in: MOD_TO MOD_FD MOD_TM TSCLIENT +ifneq ($(call ifdef_any_of,MOD_TO MOD_TI MOD_FD MOD_TM TSCLIENT),) OBJS += src/shared_control.o endif From 988a4d1c31c6b28343f49f45793e57377cfd21a7 Mon Sep 17 00:00:00 2001 From: Crimsonum Date: Tue, 20 Aug 2024 15:11:11 +0300 Subject: [PATCH 3/6] Update comment on Rubicon hacks --- src/rubicon_hacks.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rubicon_hacks.asm b/src/rubicon_hacks.asm index 4cad0e5..727dcae 100644 --- a/src/rubicon_hacks.asm +++ b/src/rubicon_hacks.asm @@ -8,7 +8,7 @@ ; Increase max. bounces of elastic projectiles [commented out, causes issues on high bridges] ;@SET 0x00445516, {db 0x04} -; Change the distribution of cluster weapons [only inner radius changed for now] +; Change the distribution of cluster weapons [commented out for now] ;@SET 0x004465D6, {db 0x02} ; outer spread radius in leptons ;@SET 0x004465DB, {db 0x00} ; inner spread radius in leptons ;@SET 0x004465EA, {db 0x01} ; [bool] should clusters hit the center of the cell? From 1d1382bd1a08365e89f8ed070dcde60e531279e2 Mon Sep 17 00:00:00 2001 From: Crimsonum Date: Tue, 20 Aug 2024 17:10:10 +0300 Subject: [PATCH 4/6] Add prereq refresh patch for Rubicon --- Makefile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Makefile b/Makefile index bae8937..ea8d90b 100644 --- a/Makefile +++ b/Makefile @@ -332,6 +332,11 @@ OBJS += src/remove_ion_storm_effects.o OBJS += src/score_screen_player_always_on_left.o endif +# Rubicon only sources. +ifdef MOD_RUBICON +OBJS += src/prerequisites_refresh.o +endif + # TI only sources. ifdef MOD_TI OBJS += src/team_number_position.o From 7d52d3b65c3e4ed3d7e8554213b53f0293a5baf5 Mon Sep 17 00:00:00 2001 From: Crimsonum Date: Fri, 23 Aug 2024 00:16:50 +0300 Subject: [PATCH 5/6] Revert "Add prereq refresh patch for Rubicon" This reverts commit 1d1382bd1a08365e89f8ed070dcde60e531279e2. --- Makefile | 5 ----- 1 file changed, 5 deletions(-) diff --git a/Makefile b/Makefile index ea8d90b..bae8937 100644 --- a/Makefile +++ b/Makefile @@ -332,11 +332,6 @@ OBJS += src/remove_ion_storm_effects.o OBJS += src/score_screen_player_always_on_left.o endif -# Rubicon only sources. -ifdef MOD_RUBICON -OBJS += src/prerequisites_refresh.o -endif - # TI only sources. ifdef MOD_TI OBJS += src/team_number_position.o From 496eb4fcdf89734bd77e5f5284e5583950b38365 Mon Sep 17 00:00:00 2001 From: Crimsonum Date: Sun, 13 Oct 2024 16:26:06 +0300 Subject: [PATCH 6/6] Increase MultiFactoryCost to 1000 for Rubicon --- src/config.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config.c b/src/config.c index 4210553..4c5cac2 100644 --- a/src/config.c +++ b/src/config.c @@ -17,7 +17,7 @@ int32_t MultiFactoryCost = 0; bool RefundFreeUnit = false; #elif defined(MOD_RUBICON) -int32_t MultiFactoryCost = 0; +int32_t MultiFactoryCost = 1000; bool RefundFreeUnit = false; #elif defined(MOD_FD)