mirror of https://github.com/zeldaret/tp.git
some d_map_path_fmap work
This commit is contained in:
parent
cbfdf6533c
commit
ce13823586
|
|
@ -1,38 +0,0 @@
|
|||
lbl_8003D790:
|
||||
/* 8003D790 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 8003D794 7C 08 02 A6 */ mflr r0
|
||||
/* 8003D798 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 8003D79C 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 8003D7A0 48 32 4A 39 */ bl _savegpr_28
|
||||
/* 8003D7A4 7C 7C 1B 78 */ mr r28, r3
|
||||
/* 8003D7A8 7C 9D 23 78 */ mr r29, r4
|
||||
/* 8003D7AC 7C BE 2B 78 */ mr r30, r5
|
||||
/* 8003D7B0 83 E3 00 04 */ lwz r31, 4(r3)
|
||||
/* 8003D7B4 38 60 00 0C */ li r3, 0xc
|
||||
/* 8003D7B8 48 29 14 95 */ bl __nw__FUl
|
||||
/* 8003D7BC 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 8003D7C0 41 82 00 10 */ beq lbl_8003D7D0
|
||||
/* 8003D7C4 38 00 00 00 */ li r0, 0
|
||||
/* 8003D7C8 90 03 00 00 */ stw r0, 0(r3)
|
||||
/* 8003D7CC 90 03 00 04 */ stw r0, 4(r3)
|
||||
lbl_8003D7D0:
|
||||
/* 8003D7D0 80 1C 00 00 */ lwz r0, 0(r28)
|
||||
/* 8003D7D4 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8003D7D8 40 82 00 08 */ bne lbl_8003D7E0
|
||||
/* 8003D7DC 90 7C 00 00 */ stw r3, 0(r28)
|
||||
lbl_8003D7E0:
|
||||
/* 8003D7E0 93 C3 00 00 */ stw r30, 0(r3)
|
||||
/* 8003D7E4 38 00 00 00 */ li r0, 0
|
||||
/* 8003D7E8 90 03 00 04 */ stw r0, 4(r3)
|
||||
/* 8003D7EC 9B A3 00 08 */ stb r29, 8(r3)
|
||||
/* 8003D7F0 28 1F 00 00 */ cmplwi r31, 0
|
||||
/* 8003D7F4 41 82 00 08 */ beq lbl_8003D7FC
|
||||
/* 8003D7F8 90 7F 00 04 */ stw r3, 4(r31)
|
||||
lbl_8003D7FC:
|
||||
/* 8003D7FC 90 7C 00 04 */ stw r3, 4(r28)
|
||||
/* 8003D800 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 8003D804 48 32 4A 21 */ bl _restgpr_28
|
||||
/* 8003D808 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 8003D80C 7C 08 03 A6 */ mtlr r0
|
||||
/* 8003D810 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 8003D814 4E 80 00 20 */ blr
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
lbl_8003D92C:
|
||||
/* 8003D92C 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 8003D930 7C 08 02 A6 */ mflr r0
|
||||
/* 8003D934 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 8003D938 88 C3 00 10 */ lbz r6, 0x10(r3)
|
||||
/* 8003D93C 80 03 00 00 */ lwz r0, 0(r3)
|
||||
/* 8003D940 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8003D944 41 82 00 08 */ beq lbl_8003D94C
|
||||
/* 8003D948 4B FF FF 21 */ bl buildTresTypeGroup__22dMenu_Fmap_room_data_cFiii
|
||||
lbl_8003D94C:
|
||||
/* 8003D94C 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 8003D950 7C 08 03 A6 */ mtlr r0
|
||||
/* 8003D954 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 8003D958 4E 80 00 20 */ blr
|
||||
|
|
@ -1,101 +0,0 @@
|
|||
lbl_8003D9D8:
|
||||
/* 8003D9D8 94 21 FF 80 */ stwu r1, -0x80(r1)
|
||||
/* 8003D9DC 7C 08 02 A6 */ mflr r0
|
||||
/* 8003D9E0 90 01 00 84 */ stw r0, 0x84(r1)
|
||||
/* 8003D9E4 DB E1 00 70 */ stfd f31, 0x70(r1)
|
||||
/* 8003D9E8 F3 E1 00 78 */ psq_st f31, 120(r1), 0, 0 /* qr0 */
|
||||
/* 8003D9EC DB C1 00 60 */ stfd f30, 0x60(r1)
|
||||
/* 8003D9F0 F3 C1 00 68 */ psq_st f30, 104(r1), 0, 0 /* qr0 */
|
||||
/* 8003D9F4 DB A1 00 50 */ stfd f29, 0x50(r1)
|
||||
/* 8003D9F8 F3 A1 00 58 */ psq_st f29, 88(r1), 0, 0 /* qr0 */
|
||||
/* 8003D9FC DB 81 00 40 */ stfd f28, 0x40(r1)
|
||||
/* 8003DA00 F3 81 00 48 */ psq_st f28, 72(r1), 0, 0 /* qr0 */
|
||||
/* 8003DA04 DB 61 00 30 */ stfd f27, 0x30(r1)
|
||||
/* 8003DA08 F3 61 00 38 */ psq_st f27, 56(r1), 0, 0 /* qr0 */
|
||||
/* 8003DA0C DB 41 00 20 */ stfd f26, 0x20(r1)
|
||||
/* 8003DA10 F3 41 00 28 */ psq_st f26, 40(r1), 0, 0 /* qr0 */
|
||||
/* 8003DA14 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 8003DA18 48 32 47 C1 */ bl _savegpr_28
|
||||
/* 8003DA1C 7C 7C 1B 78 */ mr r28, r3
|
||||
/* 8003DA20 7C 9D 23 78 */ mr r29, r4
|
||||
/* 8003DA24 FF 40 08 90 */ fmr f26, f1
|
||||
/* 8003DA28 FF 60 10 90 */ fmr f27, f2
|
||||
/* 8003DA2C 83 E3 00 0C */ lwz r31, 0xc(r3)
|
||||
/* 8003DA30 3C 60 80 45 */ lis r3, __float_max@ha /* 0x80450AE8@ha */
|
||||
/* 8003DA34 C0 03 0A E8 */ lfs f0, __float_max@l(r3) /* 0x80450AE8@l */
|
||||
/* 8003DA38 FF E0 00 90 */ fmr f31, f0
|
||||
/* 8003DA3C FF C0 00 90 */ fmr f30, f0
|
||||
/* 8003DA40 FC 00 00 50 */ fneg f0, f0
|
||||
/* 8003DA44 FF A0 00 90 */ fmr f29, f0
|
||||
/* 8003DA48 FF 80 00 90 */ fmr f28, f0
|
||||
/* 8003DA4C 3B C0 00 00 */ li r30, 0
|
||||
/* 8003DA50 48 00 00 74 */ b lbl_8003DAC4
|
||||
lbl_8003DA54:
|
||||
/* 8003DA54 7F E3 FB 78 */ mr r3, r31
|
||||
/* 8003DA58 7F A4 EB 78 */ mr r4, r29
|
||||
/* 8003DA5C 7F C5 F3 78 */ mr r5, r30
|
||||
/* 8003DA60 FC 20 D0 90 */ fmr f1, f26
|
||||
/* 8003DA64 FC 40 D8 90 */ fmr f2, f27
|
||||
/* 8003DA68 C0 7C 00 14 */ lfs f3, 0x14(r28)
|
||||
/* 8003DA6C C0 9C 00 18 */ lfs f4, 0x18(r28)
|
||||
/* 8003DA70 4B FF FE BD */ bl buildFmapRoomData__22dMenu_Fmap_room_data_cFiiffff
|
||||
/* 8003DA74 80 7F 00 00 */ lwz r3, 0(r31)
|
||||
/* 8003DA78 80 63 00 04 */ lwz r3, 4(r3)
|
||||
/* 8003DA7C C0 03 00 00 */ lfs f0, 0(r3)
|
||||
/* 8003DA80 C0 23 00 04 */ lfs f1, 4(r3)
|
||||
/* 8003DA84 C0 43 00 08 */ lfs f2, 8(r3)
|
||||
/* 8003DA88 C0 63 00 0C */ lfs f3, 0xc(r3)
|
||||
/* 8003DA8C FC 00 F8 40 */ fcmpo cr0, f0, f31
|
||||
/* 8003DA90 40 80 00 08 */ bge lbl_8003DA98
|
||||
/* 8003DA94 FF E0 00 90 */ fmr f31, f0
|
||||
lbl_8003DA98:
|
||||
/* 8003DA98 FC 01 F0 40 */ fcmpo cr0, f1, f30
|
||||
/* 8003DA9C 40 80 00 08 */ bge lbl_8003DAA4
|
||||
/* 8003DAA0 FF C0 08 90 */ fmr f30, f1
|
||||
lbl_8003DAA4:
|
||||
/* 8003DAA4 FC 02 E8 40 */ fcmpo cr0, f2, f29
|
||||
/* 8003DAA8 40 81 00 08 */ ble lbl_8003DAB0
|
||||
/* 8003DAAC FF A0 10 90 */ fmr f29, f2
|
||||
lbl_8003DAB0:
|
||||
/* 8003DAB0 FC 03 E0 40 */ fcmpo cr0, f3, f28
|
||||
/* 8003DAB4 40 81 00 08 */ ble lbl_8003DABC
|
||||
/* 8003DAB8 FF 80 18 90 */ fmr f28, f3
|
||||
lbl_8003DABC:
|
||||
/* 8003DABC 83 FF 00 08 */ lwz r31, 8(r31)
|
||||
/* 8003DAC0 3B DE 00 01 */ addi r30, r30, 1
|
||||
lbl_8003DAC4:
|
||||
/* 8003DAC4 28 1F 00 00 */ cmplwi r31, 0
|
||||
/* 8003DAC8 40 82 FF 8C */ bne lbl_8003DA54
|
||||
/* 8003DACC 2C 1E 00 00 */ cmpwi r30, 0
|
||||
/* 8003DAD0 40 81 00 18 */ ble lbl_8003DAE8
|
||||
/* 8003DAD4 D3 FC 00 1C */ stfs f31, 0x1c(r28)
|
||||
/* 8003DAD8 D3 DC 00 20 */ stfs f30, 0x20(r28)
|
||||
/* 8003DADC D3 BC 00 24 */ stfs f29, 0x24(r28)
|
||||
/* 8003DAE0 D3 9C 00 28 */ stfs f28, 0x28(r28)
|
||||
/* 8003DAE4 48 00 00 18 */ b lbl_8003DAFC
|
||||
lbl_8003DAE8:
|
||||
/* 8003DAE8 C0 02 84 20 */ lfs f0, lit_3894(r2)
|
||||
/* 8003DAEC D0 1C 00 1C */ stfs f0, 0x1c(r28)
|
||||
/* 8003DAF0 D0 1C 00 20 */ stfs f0, 0x20(r28)
|
||||
/* 8003DAF4 D0 1C 00 24 */ stfs f0, 0x24(r28)
|
||||
/* 8003DAF8 D0 1C 00 28 */ stfs f0, 0x28(r28)
|
||||
lbl_8003DAFC:
|
||||
/* 8003DAFC 7F C3 F3 78 */ mr r3, r30
|
||||
/* 8003DB00 E3 E1 00 78 */ psq_l f31, 120(r1), 0, 0 /* qr0 */
|
||||
/* 8003DB04 CB E1 00 70 */ lfd f31, 0x70(r1)
|
||||
/* 8003DB08 E3 C1 00 68 */ psq_l f30, 104(r1), 0, 0 /* qr0 */
|
||||
/* 8003DB0C CB C1 00 60 */ lfd f30, 0x60(r1)
|
||||
/* 8003DB10 E3 A1 00 58 */ psq_l f29, 88(r1), 0, 0 /* qr0 */
|
||||
/* 8003DB14 CB A1 00 50 */ lfd f29, 0x50(r1)
|
||||
/* 8003DB18 E3 81 00 48 */ psq_l f28, 72(r1), 0, 0 /* qr0 */
|
||||
/* 8003DB1C CB 81 00 40 */ lfd f28, 0x40(r1)
|
||||
/* 8003DB20 E3 61 00 38 */ psq_l f27, 56(r1), 0, 0 /* qr0 */
|
||||
/* 8003DB24 CB 61 00 30 */ lfd f27, 0x30(r1)
|
||||
/* 8003DB28 E3 41 00 28 */ psq_l f26, 40(r1), 0, 0 /* qr0 */
|
||||
/* 8003DB2C CB 41 00 20 */ lfd f26, 0x20(r1)
|
||||
/* 8003DB30 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 8003DB34 48 32 46 F1 */ bl _restgpr_28
|
||||
/* 8003DB38 80 01 00 84 */ lwz r0, 0x84(r1)
|
||||
/* 8003DB3C 7C 08 03 A6 */ mtlr r0
|
||||
/* 8003DB40 38 21 00 80 */ addi r1, r1, 0x80
|
||||
/* 8003DB44 4E 80 00 20 */ blr
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
lbl_8003D868:
|
||||
/* 8003D868 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 8003D86C 7C 08 02 A6 */ mflr r0
|
||||
/* 8003D870 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 8003D874 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 8003D878 48 32 49 5D */ bl _savegpr_27
|
||||
/* 8003D87C 7C 7B 1B 78 */ mr r27, r3
|
||||
/* 8003D880 7C DC 33 78 */ mr r28, r6
|
||||
/* 8003D884 80 63 00 00 */ lwz r3, 0(r3)
|
||||
/* 8003D888 80 63 00 00 */ lwz r3, 0(r3)
|
||||
/* 8003D88C 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 8003D890 41 82 00 84 */ beq lbl_8003D914
|
||||
/* 8003D894 83 C3 00 00 */ lwz r30, 0(r3)
|
||||
/* 8003D898 83 A3 00 04 */ lwz r29, 4(r3)
|
||||
/* 8003D89C 80 1B 00 04 */ lwz r0, 4(r27)
|
||||
/* 8003D8A0 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8003D8A4 40 82 00 34 */ bne lbl_8003D8D8
|
||||
/* 8003D8A8 38 60 00 88 */ li r3, 0x88
|
||||
/* 8003D8AC 48 29 13 A1 */ bl __nw__FUl
|
||||
/* 8003D8B0 7C 7F 1B 79 */ or. r31, r3, r3
|
||||
/* 8003D8B4 41 82 00 20 */ beq lbl_8003D8D4
|
||||
/* 8003D8B8 3C 80 80 04 */ lis r4, __ct__26fmpTresTypeGroupDataList_cFv@ha /* 0x8003EC90@ha */
|
||||
/* 8003D8BC 38 84 EC 90 */ addi r4, r4, __ct__26fmpTresTypeGroupDataList_cFv@l /* 0x8003EC90@l */
|
||||
/* 8003D8C0 3C A0 80 04 */ lis r5, __dt__26fmpTresTypeGroupDataList_cFv@ha /* 0x8003EB10@ha */
|
||||
/* 8003D8C4 38 A5 EB 10 */ addi r5, r5, __dt__26fmpTresTypeGroupDataList_cFv@l /* 0x8003EB10@l */
|
||||
/* 8003D8C8 38 C0 00 08 */ li r6, 8
|
||||
/* 8003D8CC 38 E0 00 11 */ li r7, 0x11
|
||||
/* 8003D8D0 48 32 44 91 */ bl __construct_array
|
||||
lbl_8003D8D4:
|
||||
/* 8003D8D4 93 FB 00 04 */ stw r31, 4(r27)
|
||||
lbl_8003D8D8:
|
||||
/* 8003D8D8 3B E0 00 00 */ li r31, 0
|
||||
/* 8003D8DC 48 00 00 30 */ b lbl_8003D90C
|
||||
lbl_8003D8E0:
|
||||
/* 8003D8E0 9B 9D 00 01 */ stb r28, 1(r29)
|
||||
/* 8003D8E4 88 7D 00 11 */ lbz r3, 0x11(r29)
|
||||
/* 8003D8E8 48 05 EB C9 */ bl getTypeToTypeGroupNo__7dTres_cFUc
|
||||
/* 8003D8EC 7C 64 1B 78 */ mr r4, r3
|
||||
/* 8003D8F0 80 7B 00 04 */ lwz r3, 4(r27)
|
||||
/* 8003D8F4 54 80 1D 78 */ rlwinm r0, r4, 3, 0x15, 0x1c
|
||||
/* 8003D8F8 7C 63 02 14 */ add r3, r3, r0
|
||||
/* 8003D8FC 7F A5 EB 78 */ mr r5, r29
|
||||
/* 8003D900 4B FF FE 91 */ bl addTypeGroupData__26fmpTresTypeGroupDataList_cFUcPCQ27dTres_c6data_s
|
||||
/* 8003D904 3B BD 00 14 */ addi r29, r29, 0x14
|
||||
/* 8003D908 3B FF 00 01 */ addi r31, r31, 1
|
||||
lbl_8003D90C:
|
||||
/* 8003D90C 7C 1F F0 00 */ cmpw r31, r30
|
||||
/* 8003D910 41 80 FF D0 */ blt lbl_8003D8E0
|
||||
lbl_8003D914:
|
||||
/* 8003D914 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 8003D918 48 32 49 09 */ bl _restgpr_27
|
||||
/* 8003D91C 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 8003D920 7C 08 03 A6 */ mtlr r0
|
||||
/* 8003D924 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 8003D928 4E 80 00 20 */ blr
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
lbl_8003DB48:
|
||||
/* 8003DB48 80 63 00 00 */ lwz r3, 0(r3)
|
||||
/* 8003DB4C 38 A0 00 00 */ li r5, 0
|
||||
/* 8003DB50 48 00 00 0C */ b lbl_8003DB5C
|
||||
lbl_8003DB54:
|
||||
/* 8003DB54 80 63 00 10 */ lwz r3, 0x10(r3)
|
||||
/* 8003DB58 38 A5 00 01 */ addi r5, r5, 1
|
||||
lbl_8003DB5C:
|
||||
/* 8003DB5C 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 8003DB60 4D 82 00 20 */ beqlr
|
||||
/* 8003DB64 7C 05 20 00 */ cmpw r5, r4
|
||||
/* 8003DB68 41 80 FF EC */ blt lbl_8003DB54
|
||||
/* 8003DB6C 4E 80 00 20 */ blr
|
||||
|
|
@ -41,8 +41,8 @@ public:
|
|||
}; // Size: 0x1C
|
||||
|
||||
struct list_class {
|
||||
/* 0x0 */ typeGroupData_c* field_0x0;
|
||||
/* 0x4 */ typeGroupData_c* field_0x4;
|
||||
/* 0x0 */ int field_0x0;
|
||||
/* 0x4 */ data_s* field_0x4;
|
||||
/* 0x8 */ u8 mNumber;
|
||||
};
|
||||
|
||||
|
|
@ -60,7 +60,7 @@ public:
|
|||
/* 8009C3B4 */ static typeGroupData_c* getNextData(dTres_c::typeGroupData_c const*);
|
||||
/* 8009C3CC */ static void setPosition(int, u8, Vec const*, int);
|
||||
/* 8009C49C */ static int getTypeGroupNoToType(u8);
|
||||
/* 8009C4B0 */ static int getTypeToTypeGroupNo(u8);
|
||||
/* 8009C4B0 */ static u8 getTypeToTypeGroupNo(u8);
|
||||
|
||||
static int getTypeGroupNumber(int index) {
|
||||
return mTypeGroupListAll[index].mNumber;
|
||||
|
|
|
|||
|
|
@ -264,7 +264,8 @@ dTres_c::typeGroupData_c* dTres_c::getFirstData(u8 listIdx) {
|
|||
return NULL;
|
||||
}
|
||||
|
||||
return mTypeGroupListAll[listIdx].field_0x0;
|
||||
// this is wrong, fix later
|
||||
return (dTres_c::typeGroupData_c*)mTypeGroupListAll[listIdx].field_0x0;
|
||||
}
|
||||
|
||||
/* 8009C39C-8009C3B4 096CDC 0018+00 2/2 3/3 0/0 .text
|
||||
|
|
@ -327,8 +328,8 @@ int dTres_c::getTypeGroupNoToType(u8 i_typeGroupNo) {
|
|||
|
||||
/* 8009C4B0-8009C4FC 096DF0 004C+00 1/1 3/3 0/0 .text getTypeToTypeGroupNo__7dTres_cFUc
|
||||
*/
|
||||
int dTres_c::getTypeToTypeGroupNo(u8 i_type) {
|
||||
u8 groupNo = 17;
|
||||
u8 dTres_c::getTypeToTypeGroupNo(u8 i_type) {
|
||||
int groupNo = 17;
|
||||
for (int i = 0; i < 17; i++) {
|
||||
if (i_type == typeToTypeGroup[i][0]) {
|
||||
groupNo = typeToTypeGroup[i][1];
|
||||
|
|
|
|||
|
|
@ -4,8 +4,6 @@
|
|||
//
|
||||
|
||||
#include "d/map/d_map_path.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "m_Do/m_Do_lib.h"
|
||||
|
||||
|
|
@ -42,25 +40,12 @@ extern "C" u8 m_texObjAgg__8dMpath_n[28];
|
|||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoLib_setResTimgObj__FPC7ResTIMGP9_GXTexObjUlP10_GXTlutObj();
|
||||
extern "C" void draw__12dDlst_base_cFv();
|
||||
extern "C" bool isDrawType__11dDrawPath_cFi();
|
||||
extern "C" void __dt__18dRenderingFDAmap_cFv();
|
||||
extern "C" void __dt__11dDrawPath_cFv();
|
||||
extern "C" void getLineColor__11dDrawPath_cFii();
|
||||
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void GXClearVtxDesc();
|
||||
extern "C" void GXPixModeSync();
|
||||
extern "C" void __register_global_object();
|
||||
extern "C" void _savegpr_26();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _restgpr_26();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" extern Mtx g_mDoMtx_identity;
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
|
|
@ -93,7 +78,7 @@ void dMpath_n::dTexObjAggregate_c::remove() {
|
|||
void dDrawPath_c::rendering(dDrawPath_c::line_class const* p_line) {
|
||||
if (isDrawType(p_line->unk0)) {
|
||||
int width = getLineWidth(p_line->unk1);
|
||||
|
||||
|
||||
if (width > 0 && p_line->unk2 >= 2) {
|
||||
GXSetLineWidth(width, GX_TO_ZERO);
|
||||
GXSetTevColor(GX_TEVREG0, *getLineColor(p_line->unk0 & 0x3F, p_line->unk1));
|
||||
|
|
@ -114,7 +99,7 @@ void dDrawPath_c::rendering(dDrawPath_c::line_class const* p_line) {
|
|||
void dDrawPath_c::rendering(dDrawPath_c::poly_class const* p_poly) {
|
||||
if (isDrawType(p_poly->field_0x0)) {
|
||||
GXSetTevColor(GX_TEVREG0, *getColor(p_poly->field_0x0 & 0x3F));
|
||||
|
||||
|
||||
if (p_poly->field_0x1 >= 3) {
|
||||
GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, p_poly->field_0x1);
|
||||
|
||||
|
|
@ -169,7 +154,7 @@ void dDrawPath_c::rendering(dDrawPath_c::room_class const* p_room) {
|
|||
if (floor != NULL) {
|
||||
for (int i = 0; i < p_room->field_0x0; i++) {
|
||||
if (isRenderingFloor(floor->field_0x0)) {
|
||||
rendering(floor);
|
||||
rendering(floor);
|
||||
}
|
||||
floor++;
|
||||
}
|
||||
|
|
@ -189,7 +174,7 @@ void dDrawPath_c::drawPath() {
|
|||
/* 8003CD38-8003CDAC 037678 0074+00 0/0 3/3 0/0 .text
|
||||
* makeResTIMG__15dRenderingMap_cCFP7ResTIMGUsUsPUcPUcUs */
|
||||
void dRenderingMap_c::makeResTIMG(ResTIMG* p_image, u16 width, u16 height, u8* p_data,
|
||||
u8* p_palette, u16 param_5) const {
|
||||
u8* p_palette, u16 param_5) const {
|
||||
p_image->format = GX_TF_CI14;
|
||||
p_image->alphaEnabled = 2;
|
||||
p_image->width = width;
|
||||
|
|
@ -253,7 +238,8 @@ void dRenderingFDAmap_c::setTevSettingIntensityTextureToCI() const {
|
|||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_KONST, GX_CC_TEXC, GX_CC_C1);
|
||||
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_CPREV, GX_CC_C2, GX_CC_CPREV, GX_CC_ZERO);
|
||||
GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_COMP_R8_GT, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_COMP_R8_GT, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA);
|
||||
|
|
@ -324,7 +310,7 @@ dMpath_n::dTexObjAggregate_c dMpath_n::m_texObjAgg;
|
|||
* make the map look worse for extra speed in the emulator, especially in large
|
||||
* areas such as hyrule field.
|
||||
*/
|
||||
//#define HYRULE_FIELD_SPEEDHACK
|
||||
// #define HYRULE_FIELD_SPEEDHACK
|
||||
|
||||
/* 8003D3C0-8003D68C 037D00 02CC+00 0/0 2/2 0/0 .text
|
||||
* renderingDecoration__18dRenderingFDAmap_cFPCQ211dDrawPath_c10line_class */
|
||||
|
|
@ -333,6 +319,7 @@ void dRenderingFDAmap_c::renderingDecoration(dDrawPath_c::line_class const* p_li
|
|||
if (width <= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
setTevSettingIntensityTextureToCI();
|
||||
GXClearVtxDesc();
|
||||
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
|
||||
|
|
@ -341,6 +328,7 @@ void dRenderingFDAmap_c::renderingDecoration(dDrawPath_c::line_class const* p_li
|
|||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_POS_XYZ, GX_F32, 0);
|
||||
GXSetNumTevStages(1);
|
||||
GXLoadTexObj(dMpath_n::m_texObjAgg.mp_texObj[6], GX_TEXMAP0);
|
||||
|
||||
u16* unk = p_line->unk4;
|
||||
s32 unk2 = p_line->unk2;
|
||||
GXSetLineWidth(width, GX_TO_ONE);
|
||||
|
|
@ -349,6 +337,7 @@ void dRenderingFDAmap_c::renderingDecoration(dDrawPath_c::line_class const* p_li
|
|||
GXSetTevColor(GX_TEVREG0, lineColor);
|
||||
lineColor.r = lineColor.r - 4;
|
||||
GXSetTevColor(GX_TEVREG1, lineColor);
|
||||
|
||||
for (int i = 0; i < unk2; unk++, i++) {
|
||||
#ifndef HYRULE_FIELD_SPEEDHACK
|
||||
if (i < unk2 - 1) {
|
||||
|
|
@ -374,6 +363,7 @@ void dRenderingFDAmap_c::renderingDecoration(dDrawPath_c::line_class const* p_li
|
|||
GXTexCoord2f32(0, 0);
|
||||
i_GXEnd();
|
||||
}
|
||||
|
||||
setTevSettingNonTextureDirectColor();
|
||||
GXClearVtxDesc();
|
||||
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
|
||||
|
|
@ -393,7 +383,7 @@ s32 dRenderingFDAmap_c::getDecorationLineWidth(int param_0) {
|
|||
|
||||
/* ############################################################################################## */
|
||||
/* 803A7C90-803A7CF8 004DB0 0068+00 0/0 12/12 0/0 .data __vt__18dRenderingFDAmap_c */
|
||||
SECTION_DATA extern void* __vt__18dRenderingFDAmap_c[26] = {
|
||||
extern void* __vt__18dRenderingFDAmap_c[26] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)draw__12dDlst_base_cFv,
|
||||
|
|
@ -423,7 +413,7 @@ SECTION_DATA extern void* __vt__18dRenderingFDAmap_c[26] = {
|
|||
};
|
||||
|
||||
/* 803A7CF8-803A7D38 004E18 0040+00 0/0 15/15 0/0 .data __vt__11dDrawPath_c */
|
||||
SECTION_DATA extern void* __vt__11dDrawPath_c[16] = {
|
||||
extern void* __vt__11dDrawPath_c[16] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)draw__12dDlst_base_cFv,
|
||||
|
|
|
|||
|
|
@ -4,78 +4,143 @@
|
|||
//
|
||||
|
||||
#include "d/map/d_map_path_fmap.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct fmpTresTypeGroupData_c {
|
||||
class fmpTresTypeGroupData_c {
|
||||
public:
|
||||
fmpTresTypeGroupData_c() {
|
||||
mpTresData = NULL;
|
||||
mpNext = NULL;
|
||||
}
|
||||
|
||||
/* 8003EB70 */ ~fmpTresTypeGroupData_c();
|
||||
};
|
||||
|
||||
struct dTres_c {
|
||||
struct data_s {};
|
||||
void setTypeGroupNo(u8 i_no) { mTypeGroupNo = i_no; }
|
||||
void setNextData(fmpTresTypeGroupData_c* i_next) { mpNext = i_next; }
|
||||
void setTresData(const dTres_c::data_s* i_data) { mpTresData = i_data; }
|
||||
const dTres_c::data_s* getTresData() { return mpTresData; }
|
||||
fmpTresTypeGroupData_c* getNextData() { return mpNext; }
|
||||
|
||||
struct typeGroupData_c {};
|
||||
/* 0x0 */ const dTres_c::data_s* mpTresData;
|
||||
/* 0x0 */ fmpTresTypeGroupData_c* mpNext;
|
||||
/* 0x8 */ u8 mTypeGroupNo;
|
||||
}; // Size: 0xC
|
||||
|
||||
/* 8009C360 */ void getFirstData(u8);
|
||||
/* 8009C39C */ void getNextData(dTres_c::typeGroupData_c*);
|
||||
/* 8009C49C */ void getTypeGroupNoToType(u8);
|
||||
/* 8009C4B0 */ void getTypeToTypeGroupNo(u8);
|
||||
};
|
||||
|
||||
struct fmpTresTypeGroupDataList_c {
|
||||
class fmpTresTypeGroupDataList_c {
|
||||
public:
|
||||
/* 8003D790 */ void addTypeGroupData(u8, dTres_c::data_s const*);
|
||||
/* 8003EB10 */ ~fmpTresTypeGroupDataList_c();
|
||||
/* 8003EC90 */ fmpTresTypeGroupDataList_c();
|
||||
|
||||
/* 0x0 */ fmpTresTypeGroupData_c* mpTypeGroupDataHead;
|
||||
/* 0x4 */ fmpTresTypeGroupData_c* mpNextData;
|
||||
};
|
||||
|
||||
struct dSv_save_c {
|
||||
/* 800350A8 */ void getSave2(int);
|
||||
class fmpTresTypeGroupDataListAll_c {
|
||||
public:
|
||||
void addTypeGroupData(u8 i_typeGroupNo, const dTres_c::data_s* i_data) {
|
||||
mpTypeGroupData[i_typeGroupNo].addTypeGroupData(i_typeGroupNo, i_data);
|
||||
}
|
||||
|
||||
/* 0x0 */ fmpTresTypeGroupDataList_c mpTypeGroupData[17];
|
||||
};
|
||||
|
||||
struct dSv_memory2_c {
|
||||
/* 80034AEC */ void isVisitedRoom(int);
|
||||
class dMenu_Fmap_data_c {
|
||||
public:
|
||||
dTres_c::list_class* getTresure() { return mp_tresure; }
|
||||
f32 getFilelist2MinX() { return m_fileList2->mLeftRmX; }
|
||||
f32 getFilelist2MinZ() { return m_fileList2->mInnerRmZ; }
|
||||
f32 getFilelist2MaxX() { return m_fileList2->mRightRmX; }
|
||||
f32 getFilelist2MaxZ() { return m_fileList2->mFrontRmZ; }
|
||||
|
||||
/* 0x0 */ dTres_c::list_class* mp_tresure;
|
||||
/* 0x4 */ dStage_FileList2_dt_c* m_fileList2;
|
||||
/* 0x8 */ dDrawPath_c::room_class* mp_mapPath;
|
||||
/* 0xC */ void* mp_dzsData;
|
||||
};
|
||||
|
||||
struct dSv_memBit_c {
|
||||
/* 800347E8 */ void isTbox(int) const;
|
||||
class dMenu_Fmap_stage_data_c;
|
||||
class dMenu_Fmap_room_data_c {
|
||||
public:
|
||||
/* 8003D818 */ bool isArrival();
|
||||
/* 8003D868 */ void buildTresTypeGroup(int, int, int);
|
||||
/* 8003D92C */ void buildFmapRoomData(int, int, f32, f32, f32, f32);
|
||||
|
||||
f32 getFileList2MinX() { return mp_fmapData->getFilelist2MinX(); }
|
||||
f32 getFileList2MinZ() { return mp_fmapData->getFilelist2MinZ(); }
|
||||
f32 getFileList2MaxX() { return mp_fmapData->getFilelist2MaxX(); }
|
||||
f32 getFileList2MaxZ() { return mp_fmapData->getFilelist2MaxZ(); }
|
||||
dMenu_Fmap_room_data_c* getNextData() { return mp_nextData; }
|
||||
int getRoomNo() { return m_roomNo; }
|
||||
|
||||
/* 0x00 */ dMenu_Fmap_data_c* mp_fmapData;
|
||||
/* 0x04 */ fmpTresTypeGroupDataListAll_c* mp_fmpTresTypeGroupDataListAll;
|
||||
/* 0x08 */ dMenu_Fmap_room_data_c* mp_nextData;
|
||||
/* 0x0C */ dMenu_Fmap_stage_data_c* mp_parentStage;
|
||||
/* 0x10 */ u8 m_roomNo;
|
||||
};
|
||||
|
||||
struct dSv_info_c {
|
||||
/* 80035360 */ void isSwitch(int, int) const;
|
||||
class dMenu_Fmap_stage_arc_data_c {
|
||||
public:
|
||||
u8 getVisitedRoomSaveTableNo() { return mVisitedRoomSaveTableNo; }
|
||||
|
||||
/* 0x0 */ u8 field_0x0;
|
||||
/* 0x1 */ u8 mSaveTableNo;
|
||||
/* 0x2 */ u8 mVisitedRoomSaveTableNo;
|
||||
};
|
||||
|
||||
struct dSv_event_flag_c {
|
||||
static u8 saveBitLabels[1644 + 4 /* padding */];
|
||||
class dMenu_Fmap_stage_data_c {
|
||||
public:
|
||||
/* 8003D95C */ bool isArrival();
|
||||
/* 8003D9D8 */ int buildFmapStageData(int, f32, f32);
|
||||
|
||||
dMenu_Fmap_stage_arc_data_c* getStageArc() { return mpStageArc; }
|
||||
dMenu_Fmap_stage_data_c* getNextData() { return mpNextData; }
|
||||
|
||||
/* 0x00 */ char name[8];
|
||||
/* 0x08 */ dMenu_Fmap_stage_arc_data_c* mpStageArc;
|
||||
/* 0x0C */ dMenu_Fmap_room_data_c* mp_roomTop;
|
||||
/* 0x10 */ dMenu_Fmap_stage_data_c* mpNextData;
|
||||
/* 0x14 */ f32 m_offsetX;
|
||||
/* 0x18 */ f32 m_offsetZ;
|
||||
/* 0x1C */ f32 m_stageMinX;
|
||||
/* 0x20 */ f32 m_stageMinZ;
|
||||
/* 0x24 */ f32 m_stageMaxX;
|
||||
/* 0x28 */ f32 m_stageMaxZ;
|
||||
/* 0x2C */ int m_stageCntNo;
|
||||
};
|
||||
|
||||
struct dSv_event_c {
|
||||
/* 800349BC */ void isEventBit(u16) const;
|
||||
};
|
||||
|
||||
struct dMenu_Fmap_region_data_c {
|
||||
/* 8003DB48 */ void getMenuFmapStageData(int);
|
||||
class dMenu_Fmap_region_data_c {
|
||||
public:
|
||||
/* 8003DB48 */ dMenu_Fmap_stage_data_c* getMenuFmapStageData(int);
|
||||
/* 8003DB70 */ void getPointStagePathInnerNo(f32, f32, int, int*, int*);
|
||||
/* 8003DEE0 */ void buildFmapRegionData(int);
|
||||
|
||||
/* 0x00 */ dMenu_Fmap_stage_data_c* mpMenuFmapStageDataTop;
|
||||
/* 0x04 */ dMenu_Fmap_region_data_c* mpNextData;
|
||||
/* 0x08 */ f32 mRegionOffsetX;
|
||||
/* 0x0C */ f32 mRegionOffsetZ;
|
||||
/* 0x10 */ f32 mRegionMinX;
|
||||
/* 0x14 */ f32 mRegionMaxX;
|
||||
/* 0x18 */ f32 mRegionMinZ;
|
||||
/* 0x1C */ f32 mRegionMaxZ;
|
||||
/* 0x20 */ int mRegionNo;
|
||||
};
|
||||
|
||||
struct dMenu_Fmap_world_data_c {
|
||||
/* 8003E028 */ void create(dMenu_Fmap_region_data_c*);
|
||||
/* 8003E04C */ void buildFmapWorldData();
|
||||
};
|
||||
|
||||
struct dMenu_Fmap_stage_data_c {
|
||||
/* 8003D95C */ void isArrival();
|
||||
/* 8003D9D8 */ void buildFmapStageData(int, f32, f32);
|
||||
};
|
||||
|
||||
struct dMenu_Fmap_room_data_c {
|
||||
/* 8003D818 */ void isArrival();
|
||||
/* 8003D868 */ void buildTresTypeGroup(int, int, int);
|
||||
/* 8003D92C */ void buildFmapRoomData(int, int, f32, f32, f32, f32);
|
||||
/* 0x00 */ dMenu_Fmap_region_data_c* mp_fmapRegionData;
|
||||
/* 0x04 */ f32 m_worldMinX;
|
||||
/* 0x08 */ f32 m_worldMinZ;
|
||||
/* 0x0C */ f32 m_worldMaxX;
|
||||
/* 0x10 */ f32 m_worldMaxZ;
|
||||
};
|
||||
|
||||
struct dMenuFmapIconPointer_c {
|
||||
|
|
@ -145,7 +210,6 @@ extern "C" void getTypeGroupNoToType__7dTres_cFUc();
|
|||
extern "C" void getTypeToTypeGroupNo__7dTres_cFUc();
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void PSVECCrossProduct();
|
||||
extern "C" void __construct_array();
|
||||
extern "C" void __save_gpr();
|
||||
extern "C" void _savegpr_22();
|
||||
|
|
@ -159,10 +223,7 @@ extern "C" void _restgpr_26();
|
|||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" void strcmp();
|
||||
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u32 __float_max;
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
|
|
@ -170,57 +231,98 @@ extern "C" extern u32 __float_max;
|
|||
|
||||
/* 8003D790-8003D818 0380D0 0088+00 1/1 0/0 0/0 .text
|
||||
* addTypeGroupData__26fmpTresTypeGroupDataList_cFUcPCQ27dTres_c6data_s */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fmpTresTypeGroupDataList_c::addTypeGroupData(u8 param_0, dTres_c::data_s const* param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/addTypeGroupData__26fmpTresTypeGroupDataList_cFUcPCQ27dTres_c6data_s.s"
|
||||
void fmpTresTypeGroupDataList_c::addTypeGroupData(u8 i_typeGroupNo,
|
||||
dTres_c::data_s const* i_tresData) {
|
||||
fmpTresTypeGroupData_c* next = mpNextData;
|
||||
fmpTresTypeGroupData_c* fmpTresTypeGroupData_p = new fmpTresTypeGroupData_c();
|
||||
|
||||
if (mpTypeGroupDataHead == NULL) {
|
||||
mpTypeGroupDataHead = fmpTresTypeGroupData_p;
|
||||
}
|
||||
|
||||
fmpTresTypeGroupData_p->setTresData(i_tresData);
|
||||
fmpTresTypeGroupData_p->setNextData(NULL);
|
||||
fmpTresTypeGroupData_p->setTypeGroupNo(i_typeGroupNo);
|
||||
|
||||
if (next != NULL) {
|
||||
next->setNextData(fmpTresTypeGroupData_p);
|
||||
}
|
||||
|
||||
mpNextData = fmpTresTypeGroupData_p;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003D818-8003D868 038158 0050+00 1/1 1/1 0/0 .text isArrival__22dMenu_Fmap_room_data_cFv */
|
||||
#ifdef NONMATCHING
|
||||
bool dMenu_Fmap_room_data_c::isArrival() {
|
||||
u8 table_no = mp_parentStage->getStageArc()->getVisitedRoomSaveTableNo();
|
||||
return dComIfGs_isSaveVisitedRoom(table_no, m_roomNo) != false;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenu_Fmap_room_data_c::isArrival() {
|
||||
asm bool dMenu_Fmap_room_data_c::isArrival() {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/isArrival__22dMenu_Fmap_room_data_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8003D868-8003D92C 0381A8 00C4+00 1/1 0/0 0/0 .text
|
||||
* buildTresTypeGroup__22dMenu_Fmap_room_data_cFiii */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenu_Fmap_room_data_c::buildTresTypeGroup(int param_0, int param_1, int param_2) {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/buildTresTypeGroup__22dMenu_Fmap_room_data_cFiii.s"
|
||||
void dMenu_Fmap_room_data_c::buildTresTypeGroup(int param_0, int param_1, int param_2) {
|
||||
dTres_c::list_class* tresure_p = mp_fmapData->getTresure();
|
||||
if (tresure_p != NULL) {
|
||||
int num = tresure_p->field_0x0;
|
||||
dTres_c::data_s* data_p = tresure_p->field_0x4;
|
||||
|
||||
if (mp_fmpTresTypeGroupDataListAll == NULL) {
|
||||
mp_fmpTresTypeGroupDataListAll = new fmpTresTypeGroupDataListAll_c();
|
||||
}
|
||||
|
||||
for (int i = 0; i < num; i++) {
|
||||
data_p->mRoomNo = param_2;
|
||||
u8 typeGroupNo = dTres_c::getTypeToTypeGroupNo(data_p->mType);
|
||||
mp_fmpTresTypeGroupDataListAll->addTypeGroupData(typeGroupNo, data_p);
|
||||
data_p++;
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003D92C-8003D95C 03826C 0030+00 1/1 0/0 0/0 .text
|
||||
* buildFmapRoomData__22dMenu_Fmap_room_data_cFiiffff */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenu_Fmap_room_data_c::buildFmapRoomData(int param_0, int param_1, f32 param_2,
|
||||
f32 param_3, f32 param_4, f32 param_5) {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/buildFmapRoomData__22dMenu_Fmap_room_data_cFiiffff.s"
|
||||
void dMenu_Fmap_room_data_c::buildFmapRoomData(int param_0, int param_1, f32 param_2, f32 param_3,
|
||||
f32 param_4, f32 param_5) {
|
||||
int roomNo = m_roomNo;
|
||||
|
||||
if (mp_fmapData != NULL) {
|
||||
buildTresTypeGroup(param_0, param_1, roomNo);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003D95C-8003D9D8 03829C 007C+00 1/1 0/0 0/0 .text isArrival__23dMenu_Fmap_stage_data_cFv */
|
||||
#ifdef NONMATCHING
|
||||
bool dMenu_Fmap_stage_data_c::isArrival() {
|
||||
bool is_arrival = false;
|
||||
|
||||
dMenu_Fmap_room_data_c* room = mp_roomTop;
|
||||
u8 table_no = mpStageArc->getVisitedRoomSaveTableNo();
|
||||
for (; !is_arrival && room != NULL; room = room->getNextData()) {
|
||||
is_arrival = dComIfGs_isSaveVisitedRoom(table_no, room->getRoomNo()) != false;
|
||||
}
|
||||
|
||||
return is_arrival;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenu_Fmap_stage_data_c::isArrival() {
|
||||
asm bool dMenu_Fmap_stage_data_c::isArrival() {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/isArrival__23dMenu_Fmap_stage_data_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451E20-80451E28 000420 0004+04 5/5 0/0 0/0 .sdata2 @3894 */
|
||||
|
|
@ -232,25 +334,66 @@ SECTION_SDATA2 static f32 lit_3894[1 + 1 /* padding */] = {
|
|||
|
||||
/* 8003D9D8-8003DB48 038318 0170+00 1/1 0/0 0/0 .text
|
||||
* buildFmapStageData__23dMenu_Fmap_stage_data_cFiff */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenu_Fmap_stage_data_c::buildFmapStageData(int param_0, f32 param_1, f32 param_2) {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/buildFmapStageData__23dMenu_Fmap_stage_data_cFiff.s"
|
||||
int dMenu_Fmap_stage_data_c::buildFmapStageData(int param_0, f32 param_1, f32 param_2) {
|
||||
dMenu_Fmap_room_data_c* room = mp_roomTop;
|
||||
f32 fvar3 = __float_max[0];
|
||||
f32 fvar4 = __float_max[0];
|
||||
f32 fvar5 = -__float_max[0];
|
||||
f32 fvar6 = -__float_max[0];
|
||||
int ivar = 0;
|
||||
|
||||
for (; room != NULL; room = room->getNextData()) {
|
||||
room->buildFmapRoomData(param_0, ivar, param_1, param_2, m_offsetX, m_offsetZ);
|
||||
f32 min_x = room->getFileList2MinX();
|
||||
f32 min_z = room->getFileList2MinZ();
|
||||
f32 max_x = room->getFileList2MaxX();
|
||||
f32 max_z = room->getFileList2MaxZ();
|
||||
|
||||
if (min_x < fvar3) {
|
||||
fvar3 = min_x;
|
||||
}
|
||||
|
||||
if (min_z < fvar4) {
|
||||
fvar4 = min_z;
|
||||
}
|
||||
|
||||
if (max_x > fvar5) {
|
||||
fvar5 = max_x;
|
||||
}
|
||||
|
||||
if (max_z > fvar6) {
|
||||
fvar6 = max_z;
|
||||
}
|
||||
|
||||
ivar++;
|
||||
}
|
||||
|
||||
if (ivar > 0) {
|
||||
m_stageMinX = fvar3;
|
||||
m_stageMinZ = fvar4;
|
||||
m_stageMaxX = fvar5;
|
||||
m_stageMaxZ = fvar6;
|
||||
} else {
|
||||
f32 tmp_0 = lit_3894[0];
|
||||
m_stageMinX = tmp_0;
|
||||
m_stageMinZ = tmp_0;
|
||||
m_stageMaxX = tmp_0;
|
||||
m_stageMaxZ = tmp_0;
|
||||
}
|
||||
|
||||
return ivar;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003DB48-8003DB70 038488 0028+00 0/0 1/1 0/0 .text
|
||||
* getMenuFmapStageData__24dMenu_Fmap_region_data_cFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenu_Fmap_region_data_c::getMenuFmapStageData(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_fmap/getMenuFmapStageData__24dMenu_Fmap_region_data_cFi.s"
|
||||
dMenu_Fmap_stage_data_c* dMenu_Fmap_region_data_c::getMenuFmapStageData(int param_0) {
|
||||
dMenu_Fmap_stage_data_c* stage = mpMenuFmapStageDataTop;
|
||||
for (int i = 0; stage != NULL && i < param_0; i++) {
|
||||
stage = stage->getNextData();
|
||||
}
|
||||
|
||||
return stage;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003DB70-8003DEE0 0384B0 0370+00 0/0 1/1 0/0 .text
|
||||
* getPointStagePathInnerNo__24dMenu_Fmap_region_data_cFffiPiPi */
|
||||
|
|
|
|||
Loading…
Reference in New Issue