Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
2e80722
bit too difficult for me for now, might go back later
Zeclos Apr 18, 2025
849e0c2
Merge branch 'main' of https://github.com/zeldaret/tww
Zeclos Apr 18, 2025
6fa1a97
Merge branch 'main' of https://github.com/zeldaret/tww
Zeclos Apr 25, 2025
22708cf
Merge branch 'main' of https://github.com/zeldaret/tww
Zeclos Apr 26, 2025
de70bed
progress
Zeclos May 2, 2025
50db343
getmsg
Zeclos May 6, 2025
de31000
logic matching data isnt
Zeclos May 17, 2025
f681c10
data section matches
Zeclos May 17, 2025
d6ac31c
mathubcg 100%
Zeclos May 18, 2025
eab6e74
cleanup
Zeclos May 18, 2025
84b5e5b
Merge branch 'main' of https://github.com/zeldaret/tww
Zeclos May 18, 2025
dbf0a7f
revert this change
Zeclos May 18, 2025
e6a7ca5
Merge branch 'main' of https://github.com/Zeclos/tww into d_a_npc_photo
Zeclos May 18, 2025
95118e1
final cleanup and configure.py
Zeclos May 18, 2025
0716e2a
nevermind cleanup
Zeclos May 18, 2025
57b3415
Equivalent onstead of matching
Zeclos May 18, 2025
26af5d7
removed padding
Zeclos May 18, 2025
651f498
cleanup code comments and a bit more
Zeclos May 19, 2025
3c596e4
Merge branch 'main' of https://github.com/zeldaret/tww
Zeclos May 26, 2025
2200c17
Merge branch 'main' of https://github.com/zeldaret/tww
Zeclos Aug 30, 2025
c5aee9d
Merge branch 'main' of https://github.com/zeldaret/tww
Zeclos Sep 13, 2025
9d88ba3
matching
Zeclos Sep 27, 2025
efcc67b
cleanup
Zeclos Sep 28, 2025
1b6f663
Merge branch 'main' of https://github.com/zeldaret/tww into d_a_npc_hi1
Zeclos Sep 28, 2025
cc025c3
matching for retail
Zeclos Sep 28, 2025
b0e2183
Merge branch 'main' of https://github.com/zeldaret/tww
Zeclos Sep 28, 2025
19b1fae
Merge branch 'd_a_npc_hi1' of https://github.com/Zeclos/tww
Zeclos Sep 28, 2025
af42542
Merge branch 'main' of https://github.com/zeldaret/tww
Zeclos Nov 5, 2025
1050fc8
Merge branch 'main' of https://github.com/zeldaret/tww
Zeclos Jan 10, 2026
c0ca147
matching
Zeclos Jan 15, 2026
fcc5a4a
documentation
Zeclos Jan 15, 2026
2dda794
Merge branch 'main' of https://github.com/zeldaret/tww into d_a_obj_apzl
Zeclos Jan 15, 2026
8284c2e
changed field name
Zeclos Jan 15, 2026
b758a9d
matching for GZLE01, GZLP01
Zeclos Jan 15, 2026
cbc3d14
GZLJ01 and D44J01
Zeclos Jan 19, 2026
49de21c
verion select for jutassert
Zeclos Jan 22, 2026
46e8f2b
tiny bit of cleanup and moving enums to header
Zeclos Mar 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -1682,7 +1682,7 @@ def EquivalentFor(*versions):
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_Yboil"),
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_adnno"),
ActorRel(Matching, "d_a_obj_ajav"),
ActorRel(NonMatching, "d_a_obj_apzl"),
ActorRel(Matching, "d_a_obj_apzl"),
ActorRel(NonMatching, "d_a_obj_ashut"),
ActorRel(NonMatching, "d_a_obj_auzu"),
ActorRel(NonMatching, "d_a_obj_buoyflag"),
Expand Down
74 changes: 62 additions & 12 deletions include/d/actor/d_a_obj_apzl.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,82 @@
#define D_A_OBJ_APZL_H

#include "f_op/f_op_actor.h"
#include "d/d_lib.h"

class daObjApzl_c : public fopAc_ac_c {
public:

enum EventIdx {
EVENT_TALK,
EVENT_GAME,
EVENT_RUPEE,
};

enum States {
STATE_IDLE,
STATE_TALK,
STATE_START,
STATE_PLAYING,
STATE_END,
STATE_RUPEE,
};

inline cPhs_State _create();
inline bool _delete();
inline bool _draw();
inline bool _execute();
void getblank() {}
u8 getblank() { return mPiecePos[mBlankIdx]; }

void move_piece();
bool move_piece();
void check_arrow_draw();
void search_piece(unsigned char);
void swap_piece(unsigned char, unsigned char);
u8 search_piece(u8);
void swap_piece(u8, u8);
void randamize_piece();
void save_piece();
void check_clear();
void next_msgStatus(unsigned long*);
void getMsg();
void talk(int);
bool check_clear();
u16 next_msgStatus(u32*);
u32 getMsg();
u16 talk(int);
void privateCut();
void CreateHeap();
BOOL CreateHeap();
void CreateInit();
void set_mtx();

public:
/* Place member variables here */
};
/* 0x290 */ request_of_phase_process_class mPhs;
/* 0x298 */ J3DModel* mpPieceModel[16];
/* 0x2D8 */ J3DModel* mpArrowModel[4];
/* 0x2E8 */ J3DModel* mpScoreboardModel[16];
/* 0x328 */ mDoExt_btpAnm mScoreboardBtpAnm[16];
/* 0x468 */ u8 mPuzzleNo;
/* 0x46C */ STControl* stick;
/* 0x470 */ u8 mType;
/* 0x471 */ u8 mBlankIdx;
/* 0x472 */ u8 mSwappedPieceIdx;
/* 0x473 */ u8 mMoveTimer;
/* 0x474 */ u8 mMoveDirection;
/* 0x475 */ bool mShowBlankPiece;
/* 0x476 */ u8 mPiecePos[16];
/* 0x486 */ u8 mState;
/* 0x487 */ bool mDrawArrow[4];
/* 0x48C */ s16 mEventIdx[3];
/* 0x492 */ s8 mActIdx;
/* 0x493 */ bool mQuitGame;
/* 0x494 */ bool mGameStarted;
/* 0x495 */ bool mGameCleared;
/* 0x496 */ bool mGaveReward;
/* 0x497 */ bool mShownRewardMessage;
/* 0x498 */ bool mPlayedStartSound;
/* 0x49C */ fpc_ProcID mRupeeIds[30];
/* 0x514 */ int mGivenRupeeCount;
/* 0x518 */ u32 mMsgNo;
/* 0x51C */ u32 mCurrMsgId;
/* 0x520 */ msg_class* mpCurrMsg;
/* 0x524 */ int mRewardTimer;
}; // Size: 0x528

namespace daObjApzl_prm {
inline u8 getType(daObjApzl_c* i_this) { return (fopAcM_GetParam(i_this) >> 8); }
}

#endif /* D_A_OBJ_APZL_H */
12 changes: 12 additions & 0 deletions include/d/d_com_inf_game.h
Original file line number Diff line number Diff line change
Expand Up @@ -1833,6 +1833,18 @@ inline void dComIfGs_setRandomSalvagePoint(u8 point) {
g_dComIfG_gameInfo.save.getPlayer().getPlayerInfo().setRandomSalvage(point);
}

inline void dComIfGs_setPuzzleData(int i_idx, u8 i_puzzlePieceData) {
g_dComIfG_gameInfo.save.getPlayer().getPlayerInfo().setPuzzleData(i_idx, i_puzzlePieceData);
}

inline u8 dComIfGs_getPuzzleInfo() {
return g_dComIfG_gameInfo.save.getPlayer().getPlayerInfo().getPuzzleInfo();
}

inline void dComIfGs_setPuzzleInfo(int i_idx) {
return g_dComIfG_gameInfo.save.getPlayer().getPlayerInfo().setPuzzleInfo(i_idx);
}

inline u8 dComIfGs_getGbaRupeeCount() {
return g_dComIfG_gameInfo.save.getDan().getGbaRupeeCount();
}
Expand Down
8 changes: 4 additions & 4 deletions include/d/d_save.h
Original file line number Diff line number Diff line change
Expand Up @@ -436,9 +436,9 @@ class dSv_player_info_c {
if (mDeathCount < 9999)
mDeathCount++;
}
void getPuzzleInfo() {}
void setPuzzleInfo(u8) {}
void setPuzzleData(int, u8) {}
u8 getPuzzleInfo() { return mPuzzleData[16]; }
void setPuzzleInfo(u8 clearCount) { mPuzzleData[16] = clearCount; }
void setPuzzleData(int idx, u8 puzzlePiecePos) { mPuzzleData[idx] = puzzlePiecePos; }
u8 getRandomSalvage() { return mRandomSalvagePoint; }
void setRandomSalvage(u8 point) { mRandomSalvagePoint = point; }

Expand All @@ -448,7 +448,7 @@ class dSv_player_info_c {
/* 0x14 */ char mPlayerName[17];
/* 0x25 */ char field_0x25[17];
/* 0x36 */ char field_0x36[17];
/* 0x47 */ char field_0x47[17];
/* 0x47 */ u8 mPuzzleData[17];
/* 0x58 */ u8 mClearCount;
/* 0x59 */ u8 mRandomSalvagePoint;
/* 0x5A */ u8 field_0x5a[0x5c - 0x5a];
Expand Down
4 changes: 3 additions & 1 deletion include/m_Do/m_Do_audio.h
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,9 @@ inline void mDoAud_talkOut() {
mDoAud_zelAudio_c::getInterface()->talkOut();
}

inline void mDoAud_checkSePlaying(u32 param_0) {}
inline BOOL mDoAud_checkSePlaying(u32 param_0) {
return mDoAud_zelAudio_c::getInterface()->checkSePlaying(param_0);
}
inline void mDoAud_heartGaugeOn() {
mDoAud_zelAudio_c::getInterface()->heartGaugeOn();
}
Expand Down
Loading