Skip to content

Commit

Permalink
Re-enable sidebar hack for FD
Browse files Browse the repository at this point in the history
  • Loading branch information
ZivDero committed Sep 29, 2024
1 parent 903ab0c commit efd5e3c
Showing 1 changed file with 23 additions and 20 deletions.
43 changes: 23 additions & 20 deletions src/fd_hacks.asm
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,29 @@
@SET 0x0062B2E4, {mov dword [esp+1Ch], 0x06}
@SET 0x0062C0C1, {mov edi, 0x06}

;
; The following Sidebar Hack-related patches are included in Vinifera compatible builds until the spawner is reimplemented.
;

; Set global variable byte containing side ID to load files for
@SET 0x004E2CFA, {mov byte [0x7E2500], al}
@SET 0x004E2CFF, nop
@SET 0x004E2D00, {add esp, 4}
@SJMP 0x004E2D03, 0x004E2D13 ; jmp short
@SET 0x004E2D05, nop

; Load sidebar MIX files for new sides properly
@SET 0x005DD798, {mov cl, byte [0x007E2500]}
@CLEAR 0x005DD79E, 0x90, 0x005DD7A2

; Load speech MIX files for new sides properly
; Defaults SpeechSide to our hijacked player side value
hack 0x005DD75B
mov eax, [Scen]
xor ecx, ecx
mov cl, byte [0x007E2500] ; PlayerSide (was Session.IsGDI)
mov [eax+0x1E44], ecx ; set SpeechSide
jmp 0x005DD784 ; go back to game code for initializing side

;
; The following patches will not be included in Vinifera compatible builds.
Expand Down Expand Up @@ -52,21 +75,10 @@ sstring str_LanguageDLLNotFound, "Language.dll not found, please start TiberianS
@SET 0x005899F6, nop
@SET 0x005899F7, nop

; Set global variable byte containing side ID to load files for
@SET 0x004E2CFA, {mov byte [0x7E2500], al}
@SET 0x004E2CFF, nop
@SET 0x004E2D00, {add esp, 4}
@SJMP 0x004E2D03, 0x004E2D13 ; jmp short
@SET 0x004E2D05, nop

; Load sidebar MIX files for new sides properly (for saved games)
@SET 0x005D6C4F, {mov cl, [eax+1D91h]}
@CLEAR 0x005D6C55, 0x90, 0x005D6C58

; Load sidebar MIX files for new sides properly
@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}
Expand All @@ -82,13 +94,4 @@ sstring str_LanguageDLLNotFound, "Language.dll not found, please start TiberianS
@SET 0x005D6DD0, {mov cl, [eax+1D91h]}
@CLEAR 0x005D6DD6, 0x90, 0x005D6DDB

; Load speech MIX files for new sides properly
; Defaults SpeechSide to our hijacked player side value
hack 0x005DD75B
mov eax, [Scen]
xor ecx, ecx
mov cl, byte [0x007E2500] ; PlayerSide (was Session.IsGDI)
mov [eax+0x1E44], ecx ; set SpeechSide
jmp 0x005DD784 ; go back to game code for initializing side

%endif

0 comments on commit efd5e3c

Please sign in to comment.