Pages: 1
skawo |
Posted on 01-11-17, 08:57 pm (rev. 2 by skawo on 01-11-17, 09:00 pm)
|
Karma: 19752 Posts: 896/1100 Since: 04-02-13 |
Most of the code that makes up sprite 125:
bool Class229_ExecuteState0(Class229* class)
{
0x2185EBC(class);
0x209ADB0(class, 0);
return 1;
}
void 0x2185F30(Class229* class, unk, unk1)
{
class->unk3FC = unk;
int something = (0x2186634 + ((unk<<3) / 4) + 1);
int somethingelse = *(0x2186634 + ((unk<<3) / 4));
class->unk3F4 = somethingelse;
class->unk3F8 = something;
class->unk400 = 1;
}
void 0x2185EBC(Class229* class);
{
if (!class->unk400)
{
u32* pointer = (((class->unk3F8 >>> 1) / 4) + class);
if (class->unk3F8 & 1)
{
u32* pointer2 = *pointer;
u32* pointer3 = (*pointer2 + *class->unk3F8);
}
else u32* pointer3 = *class->unk3F8;
pointer3();
}
else
{
Similar jump as above;
}
}
bool Class229_LoadFiles(Class229* class)
{
return 1;
}
bool Class229_onDelete(Class229* class)
{
return 1;
}
void 0x21860F0(Class229* class)
{
return;
}
bool Class229_OnCreate(Class229* class)
{
class->direction = (class->spriteData >> 28) & 1;
class->scale.x = 0x1000;
class->scale.y = 0x1000;
class->scale.z = 0x1000;
class->unk40C = (class->spriteData << 4) >> 28;
if (class->unk40C == 0) class->unk40C = 1;
if (class->unk40C > 4) class->unk40C = 4;
int TempUnk40D = ((class->spriteData << 8) >> 28) & 0xFF;
if (TempUnk40D == 0) TempUnk40D = 1;
if (TempUnk40D > 3) TempUnk40D = 3;
class->unk40D = (TempUnk40D - 1) << (TempUnk40D - 1);
if (class->EventIDField2 == class->EventIDField1)
{
if (!IsEventActivated(class->EventFieldID2) && !IsEventActivated(class->EventFieldIDw))
{
class->unk404 = 0;
0x2185F30(class, 0, ActivatedEventsBitmask);
*20CAC9C = -class->unk40D & *20CAC9C;
}
}
else
{
class->unk404 = 3;
0x2185F30(class, 2, 3);
*20CAC9C = -class->unk40D & *20CAC9C;
}
class->unk3B4 = 1;
return 1;
} Well, uh... it sets some level params on event, it seems. No idea what those params do. There are three nybbles it references: Nybble 5 which changes the field usually used by other sprites for direction, Nybble 6, which has range of 1-4 and Nybble 7, which has range of 1-3. There's more code to tackle here, which I'll do later. |
skawo |
Posted on 01-22-17, 03:09 pm (rev. 12 by skawo on 01-22-17, 05:32 pm)
|
Karma: 19752 Posts: 900/1100 Since: 04-02-13 |
Actor 2 is a dummied out debug menu.
Sadly, all that left of it is the OnDelete and LoadFiles; everything else is just a return; Load Files seems to check which levels can be used and whether midway points have been acquired in them. There's also some strings left of it: KINOK, KINO2, KINO3, WORLD, SAVE, TITLE, ENDIN, GOVER, KEY, SOUND, ENTRY, ERROR, MGVS Seems like it would let you go to different scenes from a menu. They would load: KINOK = World Map, from node 1 in World 1 KINO2 = World Map, on 1-1 KINO3 = World Map, on node 1 in World 2 WORLD = The also-unused early World Select: https://www.youtube.com/watch?v=0ndFUoSyIYk SAVE = Scene 7* TITLE = Title screen ENDIN = Ending CRSIN = The "World X-X" screen. GOVER = Game Over screen. KEY = Scene 17? SOUND = Scene 10** ENTRY = MvsL Opponent select screen ERROR = File corrupted error screen MGVS = Minigames screen The code that switches the scene is there too, but not hooked to anything. As such, the entirety of overlay 2 is unused. Scene 7* seems also unused and seems to be an early save-handling menu that was also dummied out. It could have loaded a save, erased it, or returned to the Debug Menu. It DOES work, but the OnDraw has been dummied out. The options on this screen were: Load Save 1 Load Save 2 Load Save 3 Erase Data Erasing Data seems to just corrupt it. I redid the OnDraw, and there it is, undummied: Scene 10** is a Sound Effect test. Left and Right scroll through the effects. A plays it. I redid the OnDraw, and there it is, undummied: |
Pages: 1