diff options
Diffstat (limited to '')
-rw-r--r-- | src/fileselect.S | 87 |
1 files changed, 14 insertions, 73 deletions
diff --git a/src/fileselect.S b/src/fileselect.S index 4d6ce85..86e7856 100644 --- a/src/fileselect.S +++ b/src/fileselect.S @@ -56,6 +56,7 @@ DFNiceTitle: .extern findTextBoxByName__Q23m2d17EmbedLayoutBase_cCFPCc .extern findPictureByName__Q23m2d17EmbedLayoutBase_cCFPCc .extern InsertIntIntoTextBox1 +.extern GrabExitInfoForFileSelect .global DFNiceWorldName DFNiceWorldName: stwu r1, -0x30(r1) @@ -65,9 +66,6 @@ DFNiceWorldName: 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 # Savefile is in r31 @@ -120,78 +118,20 @@ chosenWName: stw r4, 0xE0(r3) stw r4, 0xE4(r3) - # 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 - addi r23, r31, 0x6C - li r24, 0 - li r25, 0 - - # Loop through ALL levels - -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 -# addi r4, r24, 1 -# addi r5, r25, 1 -# 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 -# addi r4, r24, 1 -# addi r5, r25, 1 -# crclr 4*cr1+eq -# bl OSReport -noSecretExit: - -ignoreStartPoint: - - addi r23, r23, 4 - addi r25, r25, 1 - cmpwi r25, 42 - blt levelLoop - # next world - addi r24, r24, 1 - li r25, 0 - cmpwi r24, 10 - blt levelLoop + lis r3, Out_Stuff@h + ori r3, r3, Out_Stuff@l + mr r4, r31 + bl GrabExitInfoForFileSelect + lwz r21, 0(r3) + lwz r22, 4(r3) # Now, subtract the paid star coins lhz r3, 0x66(r31) sub r21, r21, r3 + # r21: Star Coin Count + # r22: Exit Count + # And write everything ... addi r3, r30, 0x74 lis r4, ExitCount@h @@ -215,9 +155,6 @@ ignoreStartPoint: 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) @@ -361,6 +298,10 @@ StarCoinCount: .string "StarCoinCount" ExitCount: .string "ExitCount" Picture_00: .string "Picture_00" +.global Out_Stuff +Out_Stuff: +.long 0, 0 + .align 4 DFTitle: .short 'F','i','l','e',' ','X',0 |