.set sp,1 .set rtoc,2 .text .extern OSReport .extern enableNonLoopAnim__Q23m2d13EmbedLayout_cFib .global FSShowCD, FSHideCD FSShowCD: addi r3, r3, 0x74 li r4, 0x2A b enableNonLoopAnim__Q23m2d13EmbedLayout_cFib FSHideCD: addi r3, r3, 0x74 li r4, 0x2B b enableNonLoopAnim__Q23m2d13EmbedLayout_cFib .global FSShowCD_OpenWait FSShowCD_OpenWait: addi r3, r31, 0x74 li r4, 0x2A bl enableNonLoopAnim__Q23m2d13EmbedLayout_cFib lwz r0, 0x14(r1) lwz r31, 0xC(r1) mtlr r0 addi r1, r1, 0x10 blr #.global FSHideCD_IWOSAEW #FSHideCD_IWOSAEW: # addi r3, r31, 0x74 # li r4, 0x2B # bl enableNonLoopAnim__Q23m2d13EmbedLayout_cFib # lwz r0, 0x14(r1) # lwz r31, 0xC(r1) # mtlr r0 # addi r1, r1, 0x10 # blr .global DFNiceTitle DFNiceTitle: mr r3, r4 lis r4, DFTitle@h ori r4, r4, DFTitle@l lwz r6, 0xE44(r30) addi r6, r6, '1' sth r6, 0xA(r4) li r5, 0 li r6, 6 lwz r12, 0(r3) lwz r12, 0x80(r12) mtctr r12 bctr .extern findTextBoxByName__Q23m2d17EmbedLayoutBase_cCFPCc .extern NewerWorldNames .extern NewerWorldCount .extern InsertIntIntoTextBox1 .global DFNiceWorldName DFNiceWorldName: stwu r1, -0x30(r1) mflr r0 stw r0, 0x34(r1) stw r20, 0x2C(r1) stw r21, 0x28(r1) stw r22, 0x24(r1) # r1+0x20 is reserved for the stupid ints in textboxes stw r23, 0x1C(r1) stw r24, 0x18(r1) stw r25, 0x14(r1) mr r20, r4 # get Newer map number lbz r6, 0x6FC(r31) lis r8, NewerWorldCount@h ori r8, r8, NewerWorldCount@h lwz r8, 0(r8) cmpw r6, r8 bge invalidThing slwi r6, r6, 2 lis r7, NewerWorldNames@h ori r7, r7, NewerWorldNames@l lwzx r4, r7, r6 li r5, 0 b gotName invalidThing: lis r4, InvalidWorld@h ori r4, InvalidWorld@l gotName: mr r3, r20 lwz r12, 0(r3) lwz r12, 0x7C(r12) mtctr r12 bctrl # While we're at it, take care of some other things # r21 shall hold our star coin count; r22 shall hold our exit count # r23 shall hold the level pointer # r24 shall hold the world number, and r25 the level number li r21, 0 li r22, 0 li r24, 0 li r25, 0 # Loop through ALL levels addi r23, r31, 0x6C li r4, 420 mtctr r4 levelLoop: lwz r4, 0(r23) cmpwi r25, 38 beq ignoreStartPoint clrlwi. r0, r4, 31 beq noCoin1 addi r21, r21, 1 noCoin1: extrwi. r0, r4, 1,30 beq noCoin2 addi r21, r21, 1 noCoin2: extrwi. r0, r4, 1,29 beq noCoin3 addi r21, r21, 1 noCoin3: extrwi. r0, r4, 1,27 beq noNormalExit addi r22, r22, 1 lis r3, NormalExitStr@h ori r3, r3, NormalExitStr@l mr r4, r24 mr r5, r25 crclr 4*cr1+eq bl OSReport noNormalExit: lwz r4, 0(r23) extrwi. r0, r4, 1,26 beq noSecretExit addi r22, r22, 1 lis r3, SecretExitStr@h ori r3, r3, SecretExitStr@l mr r4, r24 mr r5, r25 crclr 4*cr1+eq bl OSReport noSecretExit: ignoreStartPoint: addi r23, r23, 4 addi r25, r25, 1 cmpwi r25, 42 blt dontGoNextWorld addi r24, r24, 1 li r25, 0 dontGoNextWorld: bdnz levelLoop # Now, subtract the paid star coins lhz r3, 0x66(r31) sub r21, r21, r3 # And write everything ... addi r3, r30, 0x74 lis r4, ExitCount@h ori r4, r4, ExitCount@l bl findTextBoxByName__Q23m2d17EmbedLayoutBase_cCFPCc stw r22, 0x20(r1) mr r4, r3 addi r3, r1, 0x20 li r5, 1 bl InsertIntIntoTextBox1 addi r3, r30, 0x74 lis r4, StarCoinCount@h ori r4, r4, StarCoinCount@l bl findTextBoxByName__Q23m2d17EmbedLayoutBase_cCFPCc stw r21, 0x20(r1) mr r4, r3 addi r3, r1, 0x20 li r5, 0 bl InsertIntIntoTextBox1 lwz r25, 0x14(r1) lwz r24, 0x18(r1) lwz r23, 0x1C(r1) lwz r22, 0x24(r1) lwz r21, 0x28(r1) lwz r20, 0x2C(r1) lwz r0, 0x34(r1) mtlr r0 addi r1, r1, 0x30 blr .global FSDebugStates FSDebugStates: stwu r1, -0x10(r1) mflr r0 stw r0, 0x14(r1) stw r31, 0xC(r1) stw r30, 0x8(r1) mr r31, r3 mr r30, r4 lis r3, FSStateDebugStr@h ori r3, r3, FSStateDebugStr@l crclr 4*cr1+eq lwz r4, 4(r4) bl OSReport mr r3, r31 mr r4, r30 lwzu r12, 0x18(r3) lwz r12, 0x18(r12) mtctr r12 bctrl lwz r31, 0xC(r1) lwz r30, 0x8(r1) lwz r0, 0x14(r1) mtlr r0 addi r1, r1, 0x10 blr .align 4 .data FSStateDebugStr: .string "State: %s\n" .global FSDummyBrlanName, FSDummyGroup, FSDummyPane FSDummyBrlanName: .string "fileSelectBase_18_DummyAnim.brlan" FSDummyGroup: .string "DummyGroup" FSDummyPane: .string "DummyPane" .global A00_window A00_window: .string "A00_window" .global ShowEraseCopy, HideEraseCopy ShowEraseCopy: .string "fileSelectBase_18_ShowEraseCopy.brlan" HideEraseCopy: .string "fileSelectBase_18_HideEraseCopy.brlan" .global N_posFile1_00 N_posFile1_00: .string "N_posFile1_00" .global CDHolderGroup CDHolderGroup: .string "CDHolderGroup" NormalExitStr: .string " %d-%d\n" SecretExitStr: .string " %d-%d\n" StarCoinCount: .string "StarCoinCount" ExitCount: .string "ExitCount" .align 4 DFTitle: .short 'F','i','l','e',' ','X',0 InvalidWorld: .short '<','I','n','v','a','l','i','d',' ','W','o','r','l','d','>',0