diff options
| author | hatal175 <hatal175@users.noreply.github.com> | 2023-05-10 01:42:18 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-09 15:42:18 -0700 |
| commit | ac269f04bafda63095160d4282b9f6883179050e (patch) | |
| tree | f39675a5fd6ee2d284946b9ab304fd4b81b62b43 /libs | |
| parent | 93057e5c87a07749f8d55e62bbe4bac057bb5caf (diff) | |
JASSeqReader, d_bg_s_movebg_actor ok (#332)
match cc_at_check except data
Diffstat (limited to 'libs')
| -rw-r--r-- | libs/JSystem/JAudio2/JASSeqReader.cpp | 51 |
1 files changed, 12 insertions, 39 deletions
diff --git a/libs/JSystem/JAudio2/JASSeqReader.cpp b/libs/JSystem/JAudio2/JASSeqReader.cpp index 9e5d53b26d..744746cc6e 100644 --- a/libs/JSystem/JAudio2/JASSeqReader.cpp +++ b/libs/JSystem/JAudio2/JASSeqReader.cpp @@ -4,12 +4,8 @@ */ #include "JSystem/JAudio2/JASSeqReader.h" -#include "dol2asm.h" #include "dolphin/types.h" - -extern "C" void loopEnd__12JASSeqReaderFv(); - /* 80296108-80296148 290A48 0040+00 0/0 2/2 0/0 .text init__12JASSeqReaderFv */ void JASSeqReader::init() { field_0x00 = 0; @@ -17,7 +13,7 @@ void JASSeqReader::init() { field_0x08 = 0; for (int i = 0; i < 8; i++) { - field_0x0c[i] = 0; + field_0x0c[i] = NULL; field_0x2c[i] = 0; } } @@ -29,7 +25,7 @@ void JASSeqReader::init(void* param_0) { field_0x08 = 0; for (int i = 0; i < 8; i++) { - field_0x0c[i] = 0; + field_0x0c[i] = NULL; field_0x2c[i] = 0; } @@ -37,15 +33,11 @@ void JASSeqReader::init(void* param_0) { /* 8029618C-802961CC 290ACC 0040+00 0/0 3/3 0/0 .text call__12JASSeqReaderFUl */ bool JASSeqReader::call(u32 param_0) { - if (8 <= field_0x08) { + if (field_0x08 >= 8) { return false; } - u16* tmp2 = (u16*)field_0x04; - u32 tmp = field_0x08; - - field_0x08++; - field_0x0c[tmp] = tmp2; + field_0x0c[field_0x08++] = (u16*)field_0x04; field_0x04 = (u8*)((int)field_0x00 + param_0); return true; @@ -58,24 +50,19 @@ bool JASSeqReader::loopStart(u32 param_0) { } field_0x0c[field_0x08] = (u16*)field_0x04; - - u32 tmp = field_0x08; - field_0x08 = tmp+1; - field_0x2c[tmp] = param_0; + field_0x2c[field_0x08++] = param_0; return true; } /* 80296210-8029627C 290B50 006C+00 0/0 1/1 0/0 .text loopEnd__12JASSeqReaderFv */ -#ifdef NONMATCHING -// not sure. field_0x0c is typed wrong maybe? -int JASSeqReader::loopEnd() { +bool JASSeqReader::loopEnd() { if (field_0x08 == 0) { return false; } - u16 tmp = (u16)field_0x0c[field_0x08]; + u16 tmp = field_0x2c[field_0x08 - 1]; if (tmp != 0) { tmp--; @@ -86,32 +73,18 @@ int JASSeqReader::loopEnd() { return true; } - field_0x0c[field_0x08] = (u16*)tmp; - field_0x04 = (u8*)field_0x0c[field_0x08-1]; + field_0x2c[field_0x08 - 1] = tmp; + field_0x04 = (u8*)field_0x0c[field_0x08 - 1]; return true; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool JASSeqReader::loopEnd() { - nofralloc -#include "asm/JSystem/JAudio2/JASSeqReader/loopEnd__12JASSeqReaderFv.s" -} -#pragma pop -#endif /* 8029627C-802962B0 290BBC 0034+00 0/0 2/2 0/0 .text ret__12JASSeqReaderFv */ bool JASSeqReader::ret() { - u32 tmp = field_0x08; - - if (tmp == 0) { + if (field_0x08 == 0) { return false; } - tmp--; - field_0x08 = tmp; - field_0x04 = (u8*)field_0x0c[tmp]; + field_0x04 = (u8*)field_0x0c[--field_0x08]; return true; } @@ -146,4 +119,4 @@ int JASSeqReader::readMidiValue() { } return byte; -}
\ No newline at end of file +} |
