mirror of
https://github.com/pret/pmd-sky.git
synced 2026-03-21 17:25:15 -05:00
Merge pull request #212 from slaw-22/Scripting4
Some checks failed
build / build (push) Has been cancelled
Some checks failed
build / build (push) Has been cancelled
Decomp more script variable functions
This commit is contained in:
commit
a798662c1d
|
|
@ -1,5 +1,4 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
.public CalcScriptVariables
|
|
||||||
.public DEBUG_SPECIAL_EPISODE_NUMBER
|
.public DEBUG_SPECIAL_EPISODE_NUMBER
|
||||||
.public Debug_Print
|
.public Debug_Print
|
||||||
.public Debug_Print0
|
.public Debug_Print0
|
||||||
|
|
@ -16,5 +15,4 @@
|
||||||
.public _0209CF64
|
.public _0209CF64
|
||||||
.public _0209CF84
|
.public _0209CF84
|
||||||
.public _0209DFA0
|
.public _0209DFA0
|
||||||
.public CompareScriptVariables
|
|
||||||
.public sub_0204CBE8
|
.public sub_0204CBE8
|
||||||
|
|
@ -626,12 +626,12 @@
|
||||||
.public sub_0204AE80
|
.public sub_0204AE80
|
||||||
.public sub_0204AEE0
|
.public sub_0204AEE0
|
||||||
.public sub_0204B3D0
|
.public sub_0204B3D0
|
||||||
.public sub_0204BECC
|
.public CalcScriptVariablesVeneer
|
||||||
.public sub_0204BED8
|
.public UpdateScriptVarWithParam
|
||||||
.public sub_0204BF10
|
.public UpdateScriptVarWithVar
|
||||||
.public sub_0204BF5C
|
.public CompareScriptVariablesVeneer
|
||||||
.public sub_0204BF68
|
.public CompareScriptVarWithParam
|
||||||
.public sub_0204BF88
|
.public LoadAndCompareScriptVars
|
||||||
.public sub_0204C5DC
|
.public sub_0204C5DC
|
||||||
.public sub_0204C6C8
|
.public sub_0204C6C8
|
||||||
.public sub_0204C734
|
.public sub_0204C734
|
||||||
|
|
|
||||||
|
|
@ -1,95 +1,8 @@
|
||||||
.include "asm/macros.inc"
|
.include "asm/macros.inc"
|
||||||
.include "main_0204BECC.inc"
|
.include "main_0204BFC0.inc"
|
||||||
|
|
||||||
.text
|
.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
|
arm_func_start EventFlagResume
|
||||||
EventFlagResume: ; 0x0204BFC0
|
EventFlagResume: ; 0x0204BFC0
|
||||||
stmdb sp!, {r4, lr}
|
stmdb sp!, {r4, lr}
|
||||||
|
|
@ -3196,7 +3196,7 @@ _022DEDC4: ; 0x022DEDC4
|
||||||
mov r3, r5
|
mov r3, r5
|
||||||
mov r2, r0
|
mov r2, r0
|
||||||
add r0, r4, #0x6c
|
add r0, r4, #0x6c
|
||||||
bl sub_0204BED8
|
bl UpdateScriptVarWithParam
|
||||||
b _022E2474
|
b _022E2474
|
||||||
_022DEE00: ; 0x022DEE00
|
_022DEE00: ; 0x022DEE00
|
||||||
ldrh r0, [r6]
|
ldrh r0, [r6]
|
||||||
|
|
@ -3214,7 +3214,7 @@ _022DEE00: ; 0x022DEE00
|
||||||
add r0, r4, #0x6c
|
add r0, r4, #0x6c
|
||||||
mov r2, r2, lsl #0x10
|
mov r2, r2, lsl #0x10
|
||||||
mov r2, r2, asr #0x10
|
mov r2, r2, asr #0x10
|
||||||
bl sub_0204BF10
|
bl UpdateScriptVarWithVar
|
||||||
b _022E2474
|
b _022E2474
|
||||||
_022DEE44: ; 0x022DEE44
|
_022DEE44: ; 0x022DEE44
|
||||||
ldrh r0, [r6]
|
ldrh r0, [r6]
|
||||||
|
|
@ -3335,7 +3335,7 @@ _022DEFD0:
|
||||||
add r0, r4, #0x6c
|
add r0, r4, #0x6c
|
||||||
mov r1, r1, asr #0x10
|
mov r1, r1, asr #0x10
|
||||||
mov r3, #2
|
mov r3, #2
|
||||||
bl sub_0204BF68
|
bl CompareScriptVarWithParam
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
ldrneh r0, [r6, #4]
|
ldrneh r0, [r6, #4]
|
||||||
ldrne r1, [r4, #0x14]
|
ldrne r1, [r4, #0x14]
|
||||||
|
|
@ -3356,7 +3356,7 @@ _022DF014:
|
||||||
mov r1, r1, asr #0x10
|
mov r1, r1, asr #0x10
|
||||||
mov r3, r5
|
mov r3, r5
|
||||||
add r0, r4, #0x6c
|
add r0, r4, #0x6c
|
||||||
bl sub_0204BF68
|
bl CompareScriptVarWithParam
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
ldrneh r0, [r6, #6]
|
ldrneh r0, [r6, #6]
|
||||||
ldrne r1, [r4, #0x14]
|
ldrne r1, [r4, #0x14]
|
||||||
|
|
@ -3378,7 +3378,7 @@ _022DF064:
|
||||||
mov r1, r1, asr #0x10
|
mov r1, r1, asr #0x10
|
||||||
mov r3, r5
|
mov r3, r5
|
||||||
add r0, r4, #0x6c
|
add r0, r4, #0x6c
|
||||||
bl sub_0204BF88
|
bl LoadAndCompareScriptVars
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
ldrneh r0, [r6, #6]
|
ldrneh r0, [r6, #6]
|
||||||
ldrne r1, [r4, #0x14]
|
ldrne r1, [r4, #0x14]
|
||||||
|
|
@ -3419,7 +3419,7 @@ _022DF0FC:
|
||||||
bl LoadScriptVariableValueSum
|
bl LoadScriptVariableValueSum
|
||||||
mov r1, r5
|
mov r1, r5
|
||||||
mov r2, r7
|
mov r2, r7
|
||||||
bl sub_0204BF5C
|
bl CompareScriptVariablesVeneer
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
ldrneh r0, [r6, #6]
|
ldrneh r0, [r6, #6]
|
||||||
ldrne r1, [r4, #0x14]
|
ldrne r1, [r4, #0x14]
|
||||||
|
|
@ -3616,7 +3616,7 @@ _022DF3DC:
|
||||||
bl LoadScriptVariableValue
|
bl LoadScriptVariableValue
|
||||||
mov r1, r5
|
mov r1, r5
|
||||||
mov r2, r7
|
mov r2, r7
|
||||||
bl sub_0204BECC
|
bl CalcScriptVariablesVeneer
|
||||||
mov r7, r0
|
mov r7, r0
|
||||||
b _022DF6FC
|
b _022DF6FC
|
||||||
_022DF424:
|
_022DF424:
|
||||||
|
|
@ -3641,7 +3641,7 @@ _022DF424:
|
||||||
mov r2, r7
|
mov r2, r7
|
||||||
mov r1, r0
|
mov r1, r0
|
||||||
mov r0, r5
|
mov r0, r5
|
||||||
bl sub_0204BECC
|
bl CalcScriptVariablesVeneer
|
||||||
mov r7, r0
|
mov r7, r0
|
||||||
b _022DF6FC
|
b _022DF6FC
|
||||||
_022DF484:
|
_022DF484:
|
||||||
|
|
@ -9304,7 +9304,7 @@ _022E4448:
|
||||||
mov r1, sb
|
mov r1, sb
|
||||||
mov r0, r7
|
mov r0, r7
|
||||||
mov r2, fp
|
mov r2, fp
|
||||||
bl sub_0204BF5C
|
bl CompareScriptVariablesVeneer
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
beq _022E44A0
|
beq _022E44A0
|
||||||
ldrh r3, [r5, #4]
|
ldrh r3, [r5, #4]
|
||||||
|
|
@ -9332,7 +9332,7 @@ _022E44AC:
|
||||||
ldrh r2, [r5, #2]
|
ldrh r2, [r5, #2]
|
||||||
mov r1, sb
|
mov r1, sb
|
||||||
mov r0, r7
|
mov r0, r7
|
||||||
bl sub_0204BF5C
|
bl CompareScriptVariablesVeneer
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
beq _022E4508
|
beq _022E4508
|
||||||
ldrh r3, [r5, #6]
|
ldrh r3, [r5, #6]
|
||||||
|
|
@ -9364,7 +9364,7 @@ _022E4514:
|
||||||
mov r1, r0
|
mov r1, r0
|
||||||
ldrh r2, [r5, #2]
|
ldrh r2, [r5, #2]
|
||||||
mov r0, r7
|
mov r0, r7
|
||||||
bl sub_0204BF5C
|
bl CompareScriptVariablesVeneer
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
beq _022E4580
|
beq _022E4580
|
||||||
ldrh r3, [r5, #6]
|
ldrh r3, [r5, #6]
|
||||||
|
|
@ -14712,7 +14712,7 @@ _022E8AE4:
|
||||||
mov r1, #0x2a
|
mov r1, #0x2a
|
||||||
mov r2, #1
|
mov r2, #1
|
||||||
mov r3, #2
|
mov r3, #2
|
||||||
bl sub_0204BED8
|
bl UpdateScriptVarWithParam
|
||||||
bl sub_0204F034
|
bl sub_0204F034
|
||||||
mov r4, r0
|
mov r4, r0
|
||||||
bl sub_0204F050
|
bl sub_0204F050
|
||||||
|
|
|
||||||
|
|
@ -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 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);
|
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);
|
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
|
#endif //PMDSKY_SCRIPTING_H
|
||||||
4
main.lsf
4
main.lsf
|
|
@ -80,9 +80,9 @@ Static main
|
||||||
Object asm/main_0203C774.o
|
Object asm/main_0203C774.o
|
||||||
Object src/main_0204AFF8.o
|
Object src/main_0204AFF8.o
|
||||||
Object asm/main_0204B018.o
|
Object asm/main_0204B018.o
|
||||||
Object src/scripting.o
|
Object src/script_variable.o
|
||||||
Object asm/main_rodata_0209CECC.o
|
Object asm/main_rodata_0209CECC.o
|
||||||
Object asm/main_0204BECC.o
|
Object asm/main_0204BFC0.o
|
||||||
Object src/main_0204C938.o
|
Object src/main_0204C938.o
|
||||||
Object asm/main_0204C94C.o
|
Object asm/main_0204C94C.o
|
||||||
Object src/dungeon_recruitment_3.o
|
Object src/dungeon_recruitment_3.o
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
#include "dungeon_recruitment_3.h"
|
#include "dungeon_recruitment_3.h"
|
||||||
#include "enums.h"
|
#include "enums.h"
|
||||||
#include "scripting.h"
|
#include "script_variable.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
bool8 HasPlayedOldGame()
|
bool8 HasPlayedOldGame()
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
#include "main_0204C938.h"
|
#include "main_0204C938.h"
|
||||||
#include "main_0204CB94.h"
|
#include "main_0204CB94.h"
|
||||||
#include "main_020517D4.h"
|
#include "main_020517D4.h"
|
||||||
#include "scripting.h"
|
#include "script_variable.h"
|
||||||
|
|
||||||
extern struct bag_items *BAG_ITEMS_PTR_MIRROR;
|
extern struct bag_items *BAG_ITEMS_PTR_MIRROR;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
#include "main_0204C938.h"
|
#include "main_0204C938.h"
|
||||||
#include "scripting.h"
|
#include "script_variable.h"
|
||||||
|
|
||||||
s32 GetExecuteSpecialEpisodeType()
|
s32 GetExecuteSpecialEpisodeType()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
#include "main_0204CB94.h"
|
#include "main_0204CB94.h"
|
||||||
#include "scripting.h"
|
#include "script_variable.h"
|
||||||
|
|
||||||
u8 GetScenarioBalance()
|
u8 GetScenarioBalance()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
#include "enums.h"
|
#include "enums.h"
|
||||||
#include "main_0200224C.h"
|
#include "main_0200224C.h"
|
||||||
#include "scripting.h"
|
#include "script_variable.h"
|
||||||
|
|
||||||
// Global script variable definitions
|
// Global script variable definitions
|
||||||
extern struct script_var_def SCRIPT_VARS[];
|
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);
|
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);
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user