Merge pull request #212 from slaw-22/Scripting4
Some checks failed
build / build (push) Has been cancelled

Decomp more script variable functions
This commit is contained in:
AnonymousRandomPerson 2025-11-23 14:42:34 -05:00 committed by GitHub
commit a798662c1d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 70 additions and 115 deletions

View File

@ -1,5 +1,4 @@
#pragma once
.public CalcScriptVariables
.public DEBUG_SPECIAL_EPISODE_NUMBER
.public Debug_Print
.public Debug_Print0
@ -16,5 +15,4 @@
.public _0209CF64
.public _0209CF84
.public _0209DFA0
.public CompareScriptVariables
.public sub_0204CBE8

View File

@ -626,12 +626,12 @@
.public sub_0204AE80
.public sub_0204AEE0
.public sub_0204B3D0
.public sub_0204BECC
.public sub_0204BED8
.public sub_0204BF10
.public sub_0204BF5C
.public sub_0204BF68
.public sub_0204BF88
.public CalcScriptVariablesVeneer
.public UpdateScriptVarWithParam
.public UpdateScriptVarWithVar
.public CompareScriptVariablesVeneer
.public CompareScriptVarWithParam
.public LoadAndCompareScriptVars
.public sub_0204C5DC
.public sub_0204C6C8
.public sub_0204C734

View File

@ -1,95 +1,8 @@
.include "asm/macros.inc"
.include "main_0204BECC.inc"
.include "main_0204BFC0.inc"
.text
arm_func_start sub_0204BECC
sub_0204BECC: ; 0x0204BECC
ldr ip, _0204BED4 ; =CalcScriptVariables
bx ip
.align 2, 0
_0204BED4: .word CalcScriptVariables
arm_func_end sub_0204BECC
arm_func_start sub_0204BED8
sub_0204BED8: ; 0x0204BED8
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r5, r2
mov r4, r3
mov r7, r0
mov r6, r1
bl LoadScriptVariableValue
mov r1, r5
mov r2, r4
bl CalcScriptVariables
mov r2, r0
mov r0, r7
mov r1, r6
bl SaveScriptVariableValue
ldmia sp!, {r3, r4, r5, r6, r7, pc}
arm_func_end sub_0204BED8
arm_func_start sub_0204BF10
sub_0204BF10: ; 0x0204BF10
stmdb sp!, {r4, r5, r6, r7, r8, lr}
mov r8, r0
mov r6, r2
mov r7, r1
mov r5, r3
bl LoadScriptVariableValue
mov r4, r0
mov r0, r8
mov r1, r6
bl LoadScriptVariableValue
mov r1, r0
mov r0, r4
mov r2, r5
bl CalcScriptVariables
mov r2, r0
mov r0, r8
mov r1, r7
bl SaveScriptVariableValue
ldmia sp!, {r4, r5, r6, r7, r8, pc}
arm_func_end sub_0204BF10
arm_func_start sub_0204BF5C
sub_0204BF5C: ; 0x0204BF5C
ldr ip, _0204BF64 ; =CompareScriptVariables
bx ip
.align 2, 0
_0204BF64: .word CompareScriptVariables
arm_func_end sub_0204BF5C
arm_func_start sub_0204BF68
sub_0204BF68: ; 0x0204BF68
stmdb sp!, {r3, r4, r5, lr}
mov r5, r2
mov r4, r3
bl LoadScriptVariableValue
mov r1, r5
mov r2, r4
bl CompareScriptVariables
ldmia sp!, {r3, r4, r5, pc}
arm_func_end sub_0204BF68
arm_func_start sub_0204BF88
sub_0204BF88: ; 0x0204BF88
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r7, r0
mov r6, r2
mov r5, r3
bl LoadScriptVariableValue
mov r4, r0
mov r0, r7
mov r1, r6
bl LoadScriptVariableValue
mov r1, r0
mov r0, r4
mov r2, r5
bl CompareScriptVariables
ldmia sp!, {r3, r4, r5, r6, r7, pc}
arm_func_end sub_0204BF88
arm_func_start EventFlagResume
EventFlagResume: ; 0x0204BFC0
stmdb sp!, {r4, lr}

View File

@ -3196,7 +3196,7 @@ _022DEDC4: ; 0x022DEDC4
mov r3, r5
mov r2, r0
add r0, r4, #0x6c
bl sub_0204BED8
bl UpdateScriptVarWithParam
b _022E2474
_022DEE00: ; 0x022DEE00
ldrh r0, [r6]
@ -3214,7 +3214,7 @@ _022DEE00: ; 0x022DEE00
add r0, r4, #0x6c
mov r2, r2, lsl #0x10
mov r2, r2, asr #0x10
bl sub_0204BF10
bl UpdateScriptVarWithVar
b _022E2474
_022DEE44: ; 0x022DEE44
ldrh r0, [r6]
@ -3335,7 +3335,7 @@ _022DEFD0:
add r0, r4, #0x6c
mov r1, r1, asr #0x10
mov r3, #2
bl sub_0204BF68
bl CompareScriptVarWithParam
cmp r0, #0
ldrneh r0, [r6, #4]
ldrne r1, [r4, #0x14]
@ -3356,7 +3356,7 @@ _022DF014:
mov r1, r1, asr #0x10
mov r3, r5
add r0, r4, #0x6c
bl sub_0204BF68
bl CompareScriptVarWithParam
cmp r0, #0
ldrneh r0, [r6, #6]
ldrne r1, [r4, #0x14]
@ -3378,7 +3378,7 @@ _022DF064:
mov r1, r1, asr #0x10
mov r3, r5
add r0, r4, #0x6c
bl sub_0204BF88
bl LoadAndCompareScriptVars
cmp r0, #0
ldrneh r0, [r6, #6]
ldrne r1, [r4, #0x14]
@ -3419,7 +3419,7 @@ _022DF0FC:
bl LoadScriptVariableValueSum
mov r1, r5
mov r2, r7
bl sub_0204BF5C
bl CompareScriptVariablesVeneer
cmp r0, #0
ldrneh r0, [r6, #6]
ldrne r1, [r4, #0x14]
@ -3616,7 +3616,7 @@ _022DF3DC:
bl LoadScriptVariableValue
mov r1, r5
mov r2, r7
bl sub_0204BECC
bl CalcScriptVariablesVeneer
mov r7, r0
b _022DF6FC
_022DF424:
@ -3641,7 +3641,7 @@ _022DF424:
mov r2, r7
mov r1, r0
mov r0, r5
bl sub_0204BECC
bl CalcScriptVariablesVeneer
mov r7, r0
b _022DF6FC
_022DF484:
@ -9304,7 +9304,7 @@ _022E4448:
mov r1, sb
mov r0, r7
mov r2, fp
bl sub_0204BF5C
bl CompareScriptVariablesVeneer
cmp r0, #0
beq _022E44A0
ldrh r3, [r5, #4]
@ -9332,7 +9332,7 @@ _022E44AC:
ldrh r2, [r5, #2]
mov r1, sb
mov r0, r7
bl sub_0204BF5C
bl CompareScriptVariablesVeneer
cmp r0, #0
beq _022E4508
ldrh r3, [r5, #6]
@ -9364,7 +9364,7 @@ _022E4514:
mov r1, r0
ldrh r2, [r5, #2]
mov r0, r7
bl sub_0204BF5C
bl CompareScriptVariablesVeneer
cmp r0, #0
beq _022E4580
ldrh r3, [r5, #6]
@ -14712,7 +14712,7 @@ _022E8AE4:
mov r1, #0x2a
mov r2, #1
mov r3, #2
bl sub_0204BED8
bl UpdateScriptVarWithParam
bl sub_0204F034
mov r4, r0
bl sub_0204F050

View File

@ -43,5 +43,11 @@ void SaveScriptVariableValueBytes(const enum script_var_id sv_id, u8* result, s3
s32 ScriptVariablesEqual(union script_var_value sv_val_ptr_local[], enum script_var_id sv_id_1, enum script_var_id sv_id_2);
s32 CalcScriptVariables(s32 param_1, s32 param_2, enum script_calc_operation operation);
bool8 CompareScriptVariables(s32 param_1, s32 param_2, enum compare_operation operation);
s32 CalcScriptVariablesVeneer(s32 param_1, s32 param_2, enum script_calc_operation operation);
void UpdateScriptVarWithParam(union script_var_value sv_local[], const enum script_var_id script_var_id, s32 param, enum script_calc_operation operation);
void UpdateScriptVarWithVar(union script_var_value sv_local[], enum script_var_id sv_id_1, enum script_var_id sv_id_2, enum script_calc_operation operation);
bool8 CompareScriptVariablesVeneer(s32 param_1, s32 param_2, enum compare_operation operation);
s32 CompareScriptVarWithParam(union script_var_value sv_local[], enum script_var_id sv_id, s32 param, enum compare_operation op);
s32 LoadAndCompareScriptVars(union script_var_value sv_local[], enum script_var_id sv_id_1, enum script_var_id sv_id_2, enum compare_operation op);
#endif //PMDSKY_SCRIPTING_H

View File

@ -80,9 +80,9 @@ Static main
Object asm/main_0203C774.o
Object src/main_0204AFF8.o
Object asm/main_0204B018.o
Object src/scripting.o
Object src/script_variable.o
Object asm/main_rodata_0209CECC.o
Object asm/main_0204BECC.o
Object asm/main_0204BFC0.o
Object src/main_0204C938.o
Object asm/main_0204C94C.o
Object src/dungeon_recruitment_3.o

View File

@ -1,6 +1,6 @@
#include "dungeon_recruitment_3.h"
#include "enums.h"
#include "scripting.h"
#include "script_variable.h"
#include "util.h"
bool8 HasPlayedOldGame()

View File

@ -3,7 +3,7 @@
#include "main_0204C938.h"
#include "main_0204CB94.h"
#include "main_020517D4.h"
#include "scripting.h"
#include "script_variable.h"
extern struct bag_items *BAG_ITEMS_PTR_MIRROR;

View File

@ -1,5 +1,5 @@
#include "main_0204C938.h"
#include "scripting.h"
#include "script_variable.h"
s32 GetExecuteSpecialEpisodeType()
{

View File

@ -1,5 +1,5 @@
#include "main_0204CB94.h"
#include "scripting.h"
#include "script_variable.h"
u8 GetScenarioBalance()
{

View File

@ -1,7 +1,7 @@
#include "debug.h"
#include "enums.h"
#include "main_0200224C.h"
#include "scripting.h"
#include "script_variable.h"
// Global script variable definitions
extern struct script_var_def SCRIPT_VARS[];
@ -441,3 +441,41 @@ bool8 CompareScriptVariables(s32 param_1, s32 param_2, enum compare_operation op
Debug_FatalError(&ppi, &EVENT_FLAG_RULE_ERROR, operation);
}
}
s32 CalcScriptVariablesVeneer(s32 param_1, s32 param_2, enum script_calc_operation operation)
{
return CalcScriptVariables(param_1, param_2, operation);
}
void UpdateScriptVarWithParam(union script_var_value sv_local[], const enum script_var_id script_var_id, s32 param, enum script_calc_operation operation)
{
s32 value = LoadScriptVariableValue(sv_local, script_var_id);
s32 result = CalcScriptVariables(value, param, operation);
SaveScriptVariableValue(sv_local, script_var_id, result);
}
void UpdateScriptVarWithVar(union script_var_value sv_local[], enum script_var_id sv_id_1, enum script_var_id sv_id_2, enum script_calc_operation op)
{
s32 value_1 = LoadScriptVariableValue(sv_local, sv_id_1);
s32 value_2 = LoadScriptVariableValue(sv_local, sv_id_2);
s32 result = CalcScriptVariables(value_1, value_2, op);
SaveScriptVariableValue(sv_local, sv_id_1, result);
}
bool8 CompareScriptVariablesVeneer(s32 param_1, s32 param_2, enum compare_operation op)
{
return CompareScriptVariables(param_1, param_2, op);
}
s32 CompareScriptVarWithParam(union script_var_value sv_local[], enum script_var_id sv_id, s32 param, enum compare_operation op)
{
s32 value = LoadScriptVariableValue(sv_local, sv_id);
return CompareScriptVariables(value, param, op);
}
s32 LoadAndCompareScriptVars(union script_var_value sv_local[], enum script_var_id sv_id_1, enum script_var_id sv_id_2, enum compare_operation op)
{
s32 value_1 = LoadScriptVariableValue(sv_local, sv_id_1);
s32 value_2 = LoadScriptVariableValue(sv_local, sv_id_2);
return CompareScriptVariables(value_1, value_2, op);
}