Skip to content

Update Rubicon-specific patches & hacks #109

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion src/config.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
39 changes: 27 additions & 12 deletions src/rubicon_hacks.asm
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,19 @@
; 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 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}

Expand All @@ -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.
Expand Down Expand Up @@ -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]}
Expand Down