Skip to content

Commit 372c035

Browse files
authored
Merge pull request #215 from RedShyGuy/release/2.1.0
Release/2.1.0
2 parents 255e769 + ee3e45a commit 372c035

33 files changed

+3131
-574
lines changed

Includes/Address/Address.hpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,14 @@ namespace CTRPluginFramework {
4646
bool WriteFloat(float newValue);
4747
bool Patch(u32 newValue);
4848
bool Unpatch(void);
49+
bool IsPatched(void);
4950

5051
template <typename T, class ...Args>
5152
T Call(Args ...args) {
5253
return((T(*)(Args...))(addr))(args...);
53-
};
54+
};
55+
private:
56+
void SetAddressData(u32 address);
57+
static std::unordered_map<u32, u32> origValList;
5458
};
5559
}

Includes/Address/Addresses.hpp

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,17 @@
33
#include "types.h"
44

55
static const u32 ADDRESSES[][8] = {
6+
{ 0x316F40, 0x317148, 0x316E84, 0x316E84, 0x316ECC, 0x316ECC, 0x316EDC, 0x316EDC }, //GET_HOUSE_CHECK_DATA
7+
{ 0x30F770, 0x30FBB4, 0x30F820, 0x30F820, 0x30F88C, 0x30F88C, 0x30F744, 0x30F744 }, //GET_HOUSE_SAVE_FROM_PLAYER_OFFSET
8+
{ 0x6FB9E8, 0x6FAE98, 0x6FAA08, 0x6FA9E0, 0x6FA1B4, 0x6FA18C, 0x6F9D5C, 0x6F9D34 }, //GET_ROOM_SIZE
9+
{ 0x2FE95C, 0x2FE7CC, 0x2FE9E4, 0x2FE9E4, 0x2FE9D4, 0x2FE9D4, 0x2FE9BC, 0x2FE9BC }, //GET_ROOM_DATA
610
{ 0x6AF954, 0x6AEE7C, 0x6AE98C, 0x6AE98C, 0x6AE324, 0x6AE324, 0x6ADECC, 0x6ADECC }, //BADGE_AFTERWARDS
711
{ 0x6AECA0, 0x6AE1C8, 0x6ADCD8, 0x6ADCD8, 0x6AD72C, 0x6AD72C, 0x6AD2D4, 0x6AD2D4 }, //BADGE_FIRST
812
{ 0x19CE64, 0x19C8AC, 0x19CE84, 0x19CE84, 0x19CDC4, 0x19CDC4, 0x19CDC4, 0x19CDC4 }, //HOVERED_ITEM_NAME
913
{ 0x6BAC8C, 0x6BA13C, 0x6B9CC4, 0x6B9C9C, 0x6B95BC, 0x6B9594, 0x6B9164, 0x6B913C }, //SEED_ITEM_LEGIT
1014
{ 0x4E1720, 0x4E1098, 0x4E0768, 0x4E0768, 0x4E0364, 0x4E0364, 0x4DFB3C, 0x4DFB3C }, //MOVING_FURNITURE
11-
{ 0x678AC0, 0x677FE8, 0x677AF8, 0x677AF8, 0x6775B8, 0x6775B8, 0x677160, 0x677160 }, //PICKING_UP_FURNITURE
12-
{ 0x76B880, 0x76A864, 0x76A888, 0x76A860, 0x76A020, 0x769FF8, 0x769BC8, 0x769BA0 }, //PLACING_FURNITURE1
15+
{ 0x678AC0, 0x677FE8, 0x677AF8, 0x677AF8, 0x6775B8, 0x6775B8, 0x677160, 0x677160 }, //PICKING_UP_FURNITURE
16+
{ 0x76B880, 0x76A864, 0x76A888, 0x76A860, 0x76A020, 0x769FF8, 0x769BC8, 0x769BA0 }, //PLACING_FURNITURE1
1317
{ 0x26FED8, 0x26F91C, 0x26FED4, 0x26FED4, 0x26FDE0, 0x26FDE0, 0x26FDAC, 0x26FDAC }, //PLACING_FURNITURE2
1418
{ 0x4E78A8, 0x4E7220, 0x4E68F0, 0x4E68F0, 0x4E64EC, 0x4E64EC, 0x4E5CC4, 0x4E5CC4 }, //PLACING_FURNITURE3
1519
{ 0x3279CC, 0x3273E0, 0x326D20, 0x326D20, 0x3269AC, 0x3269AC, 0x326864, 0x326864 }, //LIGHTSWITCH_VISIBLE
@@ -19,8 +23,6 @@ static const u32 ADDRESSES[][8] = {
1923
{ 0x31DDE4, 0x31D7F8, 0x31D138, 0x31D138, 0x31DECC, 0x31DECC, 0x31CCA4, 0x31CCA4 }, //FACE_EXPRESSION
2024
{ 0x31DF40, 0x31D954, 0x31D518, 0x31D518, 0x31E028, 0x31E028, 0x31CDE0, 0x31CDE0 }, //FACE_EXPRESSION
2125
{ 0x58C414, 0x58B92C, 0x58B45C, 0x58B45C, 0x58AD4C, 0x58AD4C, 0x58AA20, 0x58AA20 }, //RADIO_PLAYER
22-
{ 0x2FEA78, 0x2FE7F4, 0x2FEA0C, 0x2FEA0C, 0x2FEAAC, 0x2FEAAC, 0x2FE9E4, 0x2FE9E4 }, //GET_ITEM_NAME
23-
{ 0x767028, 0x76600C, 0x766030, 0x766008, 0x7657C8, 0x7657A0, 0x765370, 0x765348 }, //DEVER5
2426
{ 0x2912B8, 0x290CFC, 0x2912B4, 0x2912B4, 0x2911B4, 0x2911B4, 0x29118C, 0x29118C }, //DISP
2527
{ 0x2F7384, 0x2F74C8, 0x2F73AC, 0x2F73AC, 0x2F75CC, 0x2F75CC, 0x2F7488, 0x2F7488 }, //GETROOM
2628
{ 0x51C104, 0x51BA58, 0x51B14C, 0x51B14C, 0x51AA68, 0x51AA68, 0x51A3FC, 0x51A3FC }, //OFFSETPATCH
@@ -31,7 +33,7 @@ static const u32 ADDRESSES[][8] = {
3133
{ 0x65E9B0, 0x65DED8, 0x65D9E8, 0x65D9E8, 0x65D4A8, 0x65D4A8, 0x65D050, 0x65D050 }, //INFEX
3234
{ 0x654578, 0x653AA0, 0x6535B0, 0x6535B0, 0x653070, 0x653070, 0x652C18, 0x652C18 }, //SLO1
3335
{ 0x652C10, 0x652138, 0x651C48, 0x651C48, 0x651708, 0x651708, 0x6512B0, 0x6512B0 }, //SLO2
34-
{ 0x887880, 0x886878, 0x88670C, 0x88670C, 0x880B2C, 0x87FB2C, 0x87FBE0, 0x87FBE0 }, //SLO3
36+
{ 0x887880, 0x886878, 0x88670C, 0x88670C, 0x880B2C, 0x87FB2C, 0x87FADC, 0x87FADC }, //SP1
3537
{ 0x190EA8, 0x1908F0, 0x190EC8, 0x190EC8, 0x190E18, 0x190E18, 0x190E18, 0x190E18 }, //TARGETADDRESS
3638
{ 0x1E7AD8, 0x1E751C, 0x1E7AF8, 0x1E7AF8, 0x1E7A34, 0x1E7A34, 0x1E7A00, 0x1E7A00 }, //PATCH
3739
{ 0x1ACE00, 0x1AC848, 0x1ACE20, 0x1ACE20, 0x1ACD5C, 0x1ACD5C, 0x1ACD5C, 0x1ACD5C }, //PLAYER
@@ -105,7 +107,6 @@ static const u32 ADDRESSES[][8] = {
105107
{ 0x655E44, 0x65536C, 0x654E7C, 0x654E7C, 0x65493C, 0x65493C, 0x6544E4, 0x6544E4 }, //VISI1
106108
{ 0x67743C, 0x676964, 0x676474, 0x676474, 0x675F34, 0x675F34, 0x675ADC, 0x675ADC }, //VISI2
107109
{ 0x68DC3C, 0x68D164, 0x68CC74, 0x68CC74, 0x68C734, 0x68C734, 0x68C2DC, 0x68C2DC }, //VISI3
108-
{ 0x887880, 0x886878, 0x88670C, 0x88670C, 0x880B2C, 0x87FB2C, 0x87FADC, 0x87FADC }, //SP1
109110
{ 0x887888, 0x886880, 0x886714, 0x886714, 0x880B34, 0x87FB34, 0x87FB34, 0x87FB34 }, //SP2
110111
{ 0x887958, 0x886950, 0x8867E4, 0x8867E4, 0x880C04, 0x87FC04, 0x87FC04, 0x87FC04 }, //SP3
111112
{ 0x5D4C80, 0x5D41B0, 0x5D3CC8, 0x5D3CC8, 0x5D34FC, 0x5D34FC, 0x5D31D0, 0x5D31D0 }, //SP4
@@ -124,7 +125,6 @@ static const u32 ADDRESSES[][8] = {
124125
{ 0x5FD774, 0x5FCCA4, 0x5FC7AC, 0x5FC7AC, 0x5FC02C, 0x5FC02C, 0x5FBCB4, 0x5FBCB4 }, //GAMEKEYBOARD_FUNC3
125126
{ 0x6EC4E0, 0x6EB990, 0x6EB500, 0x6EB4D8, 0x6EACAC, 0x6EAC84, 0x6EA854, 0x6EA82C }, //NPCCODES_FUNC3
126127
{ 0x5E3A64, 0x5E2F94, 0x5E2A9C, 0x5E2A9C, 0x5E231C, 0x5E231C, 0x5E1FA4, 0x5E1FA4 }, //ACMESSAGEBOX_FUNC3
127-
{ 0x5E3920, 0x5E2E50, 0x5E2958, 0x5E2958, 0x5E21D8, 0x5E21D8, 0x5E1E60, 0x5E1E60 }, //GAMEKEYBOARD_FUNC4
128128
{ 0x6EE778, 0x6EDC28, 0x6ED798, 0x6ED770, 0x6ECF44, 0x6ECF1C, 0x6ECAEC, 0x6ECAC4 }, //NPCCODES_FUNC4
129129
{ 0x75BDAC, 0x75AD90, 0x75ADB4, 0x75AD8C, 0x75A54C, 0x75A524, 0x75A0F4, 0x75A0CC }, //ACMESSAGEBOX_FUNC4
130130
{ 0x569118, 0x568630, 0x568160, 0x568160, 0x567A50, 0x567A50, 0x567770, 0x567770 }, //ACSYSTEM_DATA1
@@ -262,11 +262,9 @@ static const u32 ADDRESSES[][8] = {
262262
{ 0x597F38, 0x5995DC, 0x596F80, 0x596F80, 0x596870, 0x596870, 0x5986D0, 0x5986D0 }, //REM2
263263
{ 0x597FAC, 0x5974C4, 0x596FF4, 0x596FF4, 0x5968E4, 0x5968E4, 0x5965B8, 0x5965B8 }, //REM3
264264
{ 0x207B90, 0x2075D4, 0x207BB0, 0x207BB0, 0x207AD0, 0x207AD0, 0x207A9C, 0x207A9C }, //PARTICLECLASS
265-
{ 0x976C0E, 0x975BEE, 0x975C06, 0x975C06, 0x96FC06, 0x96EC06, 0x96EC06, 0x96EC06 }, //U0
266265
{ 0xAE6870, 0xAE5664, 0xAE5870, 0xAE5870, 0xADF870, 0xADE870, 0xADE870, 0xADE870 }, //U1
267266
{ 0x5A1278, 0x5A0790, 0x5A02C0, 0x5A02C0, 0x59E634, 0x59E634, 0x59F884, 0x59F884 }, //CLEARLOCKED
268267
{ 0x5A13C4, 0x5A08DC, 0x5A040C, 0x5A040C, 0x59FCFC, 0x59FCFC, 0x59F9D0, 0x59F9D0 }, //CREATELOCKED
269-
{ 0x5A13C8, 0x5A08E0, 0x5A0410, 0x5A0410, 0x59FD00, 0x59FD00, 0x59F9D4, 0x59F9D4 }, //LOCKSPOT1
270268
{ 0x5A11BC, 0x5A06D4, 0x5A0204, 0x5A0204, 0x59FAF4, 0x59FAF4, 0x59F7C8, 0x59F7C8 }, //GETLOCKED
271269
{ 0x625488, 0x6249B0, 0x6244C0, 0x6244C0, 0x623F80, 0x623F80, 0x623B28, 0x623B28 }, //TRAMPLE
272270
{ 0x168E20, 0x168868, 0x168E40, 0x168E40, 0x168E08, 0x168E08, 0x168E08, 0x168E08 }, //TRAMPLE1
@@ -330,7 +328,6 @@ static const u32 ADDRESSES[][8] = {
330328
{ 0x19B97C, 0x19B3C4, 0x19B99C, 0x19B99C, 0x19B8EC, 0x19B8EC, 0x19B8EC, 0x19B8EC }, //PLANT2
331329
{ 0x2AEAC4, 0x2AE4F8, 0x2AEAC0, 0x2AEAC0, 0x2AE9C0, 0x2AE9C0, 0x2AE998, 0x2AE998 }, //PLANT3
332330
{ 0x2AFD24, 0x2AF758, 0x2AFD20, 0x2AFD20, 0x2AFC20, 0x2AFC20, 0x2AFBF8, 0x2AFBF8 }, //PLANT4
333-
{ 0x109D52, 0x109D56, 0x109D56, 0x109D56, 0x109D56, 0x109D56, 0x109D56, 0x109D56 }, //TITLESCREENWARP
334331
{ 0x2B9110, 0x2B8B44, 0x2B910C, 0x2B910C, 0x2B9004, 0x2B9004, 0x2B8FE4, 0x2B8FE4 }, //SETITEMICON
335332
{ 0x5A1454, 0x5A096C, 0x5A049C, 0x5A049C, 0x59FD8C, 0x59FD8C, 0x59FA60, 0x59FA60 }, //HOST1
336333
{ 0x5A12F4, 0x5A080C, 0x5A033C, 0x5A033C, 0x59FC2C, 0x59FC2C, 0x59F900, 0x59F900 }, //HOST2
@@ -361,7 +358,6 @@ static const u32 ADDRESSES[][8] = {
361358
{ 0x597F64, 0x59747C, 0x596FAC, 0x596FAC, 0x59689C, 0x59689C, 0x596570, 0x596570 }, //UNBREAKABLEFLOWER
362359
{ 0x47E48C, 0x47DE04, 0x47D4D4, 0x47D4D4, 0x47D16C, 0x47D16C, 0x47D02C, 0x47D02C }, //FOV
363360
{ 0x1A0980, 0x1A03C8, 0x1A09A0, 0x1A09A0, 0x1A08E0, 0x1A08E0, 0x1A08E0, 0x1A08E0 }, //NOSAVE
364-
{ 0x598DBC, 0x5982D4, 0x597E04, 0x597E04, 0x5976F4, 0x5976F4, 0x5973C8, 0x5973C8 }, //CLOSEHOLEITEM
365361
{ 0x59A268, 0x599780, 0x5992B0, 0x5992B0, 0x598BA0, 0x598BA0, 0x598874, 0x598874 }, //PICKUPITEM
366362
{ 0x85FE58, 0x85EE50, 0x85ECE4, 0x85ECE4, 0x859104, 0x858104, 0x8580B4, 0x8580B4 }, //DROPPATTERN
367363
{ 0x30B83C, 0x30B6DC, 0x30B820, 0x30B820, 0x30B844, 0x30B844, 0x30B7EC, 0x30B7EC }, //DROPM2
@@ -375,12 +371,9 @@ static const u32 ADDRESSES[][8] = {
375371
{ 0x75F010, 0x75DFF4, 0x75E018, 0x75DFF0, 0x75D7B0, 0x75D788, 0x75D358, 0x75D358 }, //PLAYSELECTOR
376372
{ 0x59FC7C, 0x59F194, 0x59ECC4, 0x59ECC4, 0x59E5B4, 0x59E5B4, 0x59E288, 0x59E288 }, //PLACEITEMOFFSET
377373
{ 0x1A51C8, 0x1A4C10, 0x1A51E8, 0x1A51E8, 0x1A5128, 0x1A5128, 0x1A5128, 0x1A5128 }, //UNLOCKCAMERA
378-
{ 0x2FC978, 0x2FC8E8, 0x2FC8B8, 0x2FC8B8, 0x2FC878, 0x2FC878, 0x2FC8E0, 0x2FC8E0 }, //COPYPASTEFUNC
379374
{ 0x26DC00, 0x26D644, 0x26DBFC, 0x26DBFC, 0x26DB1C, 0x26DB1C, 0x26DAE8, 0x26DAE8 }, //LOADICON
380375
{ 0x628B54, 0x62807C, 0x627B8C, 0x627B8C, 0x62764C, 0x62764C, 0x6271F4, 0x6271F4 }, //INDEXCHANGE
381376
{ 0x677504, 0x676A2C, 0x67653C, 0x67653C, 0x675FFC, 0x675FFC, 0x675BA4, 0x675BA4 }, //ANIMCONDITIONPATCH
382-
{ 0x2FBA60, 0x2FB96C, 0x2FBAE8, 0x2FBAE8, 0x2FB920, 0x2FB920, 0x2FB8F8, 0x2FB8F8 }, //PLAYERSAVE
383-
{ 0x2FEB2C, 0x2FE8A8, 0x2FEBB4, 0x2FEBB4, 0x2FEB60, 0x2FEB60, 0x2FEA98, 0x2FEA98 }, //LOADEDPLAYERSAVE
384377
{ 0x5C3EA0, 0x5C33D0, 0x5C2EE8, 0x5C2EE8, 0x5C27D8, 0x5C27D8, 0x5C24AC, 0x5C24AC }, //PLAYERINSTANCE
385378
{ 0x1939EC, 0x193434, 0x193A0C, 0x193A0C, 0x19395C, 0x19395C, 0x19395C, 0x19395C }, //DISABLECHATREMOVAL
386379
{ 0x305EF0, 0x305F44, 0x305EF0, 0x305EF0, 0x305F6C, 0x305F6C, 0x305F3C, 0x305F3C }, //A_GETONLINEPLAYERINDEX
@@ -396,6 +389,13 @@ static const u32 ADDRESSES[][8] = {
396389
{ 0x95F11C, 0x95E0FC, 0x95E114, 0x95E114, 0x958114, 0x957114, 0x957114, 0x957114 }, //CHATPOINT
397390
{ 0x95EEDC, 0x95DEBC, 0x95DED4, 0x95DED4, 0x957ED4, 0x956ED4, 0x956ED4, 0x956ED4 }, //DATAPOINTER
398391
{ 0x95D3F4, 0x95C3D4, 0x95C3EC, 0x95C3EC, 0x9563EC, 0x9553EC, 0x9553EC, 0x9553EC }, //EXGAMEDATA
399-
{ 0x2FB344, 0x2FB328, 0x2FB340, 0x2FB340, 0x2FB354, 0x2FB354, 0x2FB360, 0x2FB360 }, //GARDENPLUS
400392
{ 0x2FF76C, 0x2FFAD8, 0x2FF7F4, 0x2FF7F4, 0x2FF9CC, 0x2FF9CC, 0x2FFA18, 0x2FFA18 }, //CALCBITFIELD
393+
/*
394+
Unused:
395+
{ 0x2FEA78, 0x2FE7F4, 0x2FEA0C, 0x2FEA0C, 0x2FEAAC, 0x2FEAAC, 0x2FE9E4, 0x2FE9E4 }, //GET_ITEM_NAME
396+
{ 0x767028, 0x76600C, 0x766030, 0x766008, 0x7657C8, 0x7657A0, 0x765370, 0x765348 }, //DEVER5
397+
{ 0x2FC978, 0x2FC8E8, 0x2FC8B8, 0x2FC8B8, 0x2FC878, 0x2FC878, 0x2FC8E0, 0x2FC8E0 }, //COPYPASTEFUNC
398+
{ 0x598DBC, 0x5982D4, 0x597E04, 0x597E04, 0x5976F4, 0x5976F4, 0x5973C8, 0x5973C8 }, //CLOSEHOLEITEM
399+
{ 0x109D52, 0x109D56, 0x109D56, 0x109D56, 0x109D56, 0x109D56, 0x109D56, 0x109D56 }, //TITLESCREENWARP
400+
*/
401401
};

Includes/Config.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
#define majorV 2
66
#define minorV 0
7-
#define revisV 2
7+
#define revisV 3
88

99
namespace CTRPluginFramework {
1010
bool WriteLanguage(const std::string& langCode);

Includes/Helpers/Game.hpp

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,13 @@ namespace CTRPluginFramework {
1717
}
1818

1919
namespace Game {
20+
enum GameMode : u8 {
21+
OFFLINE = 0,
22+
ONLINE1 = 1,
23+
ONLINE2 = 2,
24+
DREAM = 3
25+
};
26+
2027
ACNL_Date GetCurrentDate(void);
2128
void PlaySound(u16 soundID);
2229
//save files
@@ -69,8 +76,8 @@ namespace CTRPluginFramework {
6976
bool IsRoomLoading();
7077
bool SetItem(Item *item);
7178
void OpenMenu(u8 menuID, bool NoMenCall = false);
72-
void ChangeGameType(u8 GameType);
73-
u8 GetGameType();
79+
void ChangeGameMode(GameMode GameType);
80+
GameMode GetGameMode();
7481
bool GameSaving();
7582
u32 GetRoomData();
7683
bool WaterFlower(u8 wX, u8 wY);

0 commit comments

Comments
 (0)