@@ -55,7 +55,7 @@ typedef struct {
5555 /* 0x031 */ u8 unk31 ;
5656 /* 0x032 */ s16 unk32 ;
5757 /* 0x034 */ u16 unk34 ;
58- /* 0x036 */ u16 unk36 ;
58+ /* 0x036 */ s16 unk36 ;
5959 /* 0x038 */ u8 * vram38 ; // 124 tiles
6060 /* 0x03C */ u8 * vram3C ; // 116 tiles
6161 /* 0x040 */ Player * players [NUM_SINGLE_PLAYER_CHARS ];
@@ -616,11 +616,23 @@ void sub_806DB78(EggFoot *boss)
616616 }
617617}
618618
619- // (97.46%) https://decomp.me/scratch/cTwdX
620- NONMATCH ("asm/non_matching/game/bosses/boss_3__sub_806DD34.inc" , void sub_806DD34 (EggFoot * boss ))
619+ static inline s32 check_range (EggFoot * boss )
620+ {
621+ s32 var_r3 = 0 ;
622+
623+ // TODO: This should be able to be written with 2 conditions...
624+ s32 var = boss -> unk4 + 0x800 + boss -> unk10 ;
625+ if (var >= 0xB500 ) {
626+ var = 0xAD00 - boss -> unk10 ;
627+ boss -> unk4 = var ;
628+ var_r3 = 1 ;
629+ }
630+ return var_r3 ;
631+ }
632+
633+ void sub_806DD34 (EggFoot * boss )
621634{
622635 s32 var_r3 ;
623- s32 var ;
624636
625637 switch (boss -> unk34 ) {
626638 case 0 :
@@ -642,14 +654,7 @@ NONMATCH("asm/non_matching/game/bosses/boss_3__sub_806DD34.inc", void sub_806DD3
642654 boss -> unk10 = 0x8000 ;
643655 }
644656
645- // TODO: This should be able to be written with 2 conditions...
646- var_r3 = 0 ;
647- var = (boss -> unk10 + 0x800 );
648- if (boss -> unk4 + var >= 0xB500 ) {
649- boss -> unk4 = 0xAD00 - boss -> unk10 ;
650- var_r3 = 1 ;
651- }
652- if (var_r3 == 1 ) {
657+ if (check_range (boss ) == 1 ) {
653658 CreateScreenShake (0x800U , 0x20U , 0U , -1U , 0x91U );
654659 boss -> unk14 = -0x200 ;
655660 boss -> unk36 = 0x3C ;
@@ -706,7 +711,6 @@ NONMATCH("asm/non_matching/game/bosses/boss_3__sub_806DD34.inc", void sub_806DD3
706711 }
707712 sub_806D568 (boss );
708713}
709- END_NONMATCH
710714
711715#if 0
712716? SetFixedRandomIfTimeAttackMode (); /* extern */
0 commit comments