implement agitha rewards

This commit is contained in:
gymnast86
2026-04-23 06:37:00 -07:00
parent 726999c476
commit 0da8b4c6dc
6 changed files with 194 additions and 149 deletions
+4 -1
View File
@@ -120,7 +120,10 @@ public:
BOOL chkAction(actionFunc action) { return action == mAction; }
static eventFunc mEvtSeqList[1];
#if TARGET_PC
// Keep track of last given bug for rando
static u8 mGivenInsectId;
#endif
private:
/* 0xB48 */ Z2Creature mSound;
/* 0xBD8 */ J3DModel* mpUmbrellaModel;
+22
View File
@@ -11,6 +11,13 @@
#include "d/d_msg_object.h"
#include <cstring>
#if TARGET_PC
#include "dusk/randomizer/game/randomizer_context.hpp"
#include "dusk/randomizer/game/verify_item_functions.h"
#endif
enum Ins_RES_File_ID {
/* BCK */
/* 0x06 */ BCK_INS_F_HAPPY = 0x6,
@@ -292,6 +299,10 @@ daNpcIns_c::eventFunc daNpcIns_c::mEvtSeqList[1] = {
NULL,
};
#if TARGET_PC
u8 daNpcIns_c::mGivenInsectId = 0xFF;
#endif
static insect_param_data const l_insectParams[24] = {
{0x0191, 0x709, 0, 0},
{0x0192, 0x709, 0, 0},
@@ -1259,6 +1270,9 @@ int daNpcIns_c::waitPresent(void* param_1) {
daPy_py_c* player = daPy_getPlayerActorClass();
player->changeOriginalDemo();
player->changeDemoMode(0x25, 2, type, 0);
#if TARGET_PC
mGivenInsectId = type;
#endif
} else {
mInsectMsgNo = 0x719;
}
@@ -1487,6 +1501,14 @@ int daNpcIns_c::talk(void* param_1) {
OS_REPORT("会話終了時 イベントID=%d アイテムNo=%d\n", eventID, itemNo);
if (eventID == 1) {
#if TARGET_PC
// In rando, get the randomzied bug reward
if (randomizer_IsActive()) {
itemNo = randomizer_GetContext().mBugRewardOverrides[mGivenInsectId];
itemNo = static_cast<int>(verifyProgressiveItem(itemNo));
mGivenInsectId = 0xFF;
}
#endif
mItemID = fopAcM_createItemForPresentDemo(&current.pos, itemNo, 0, -1, -1, NULL, NULL);
if (mItemID != fpcM_ERROR_PROCESS_ID_e) {
+7
View File
@@ -71,6 +71,13 @@ namespace dusk {
randoData.mFreestandingItemOverrides[stage][flag] = itemId;
}
// Bug Rewards
if (location->HasCategories("Bug Reward")) {
u8 bugItemId = metaData[0]["Bug Item Id"].as<u8>();
u8 itemId = location->GetCurrentItem()->GetID();
randoData.mBugRewardOverrides[bugItemId] = itemId;
}
// Items that we lookup just by calling their location name
if (location->HasCategories("Location Name Lookup")) {
const auto& locationName = metaData.as<std::string>();
@@ -61,6 +61,9 @@ std::optional<std::string> RandomizerContext::WriteToFile() {
}
}
const std::unordered_map<u16, u16> u16BugRewardOverrides(this->mBugRewardOverrides.begin(), this->mBugRewardOverrides.end());
out["mBugRewardOverrides"] = u16BugRewardOverrides;
out["mItemLocations"] = this->mItemLocations;
out["mStartHour"] = static_cast<u16>(this->mStartHour);
@@ -137,7 +140,14 @@ std::optional<std::string> RandomizerContext::LoadFromHash(const std::string& ha
}
}
// Items For Present Demos
// Bug Rewards
for (const auto& bugNode : in["mBugRewardOverrides"]) {
u8 bugItemId = bugNode.first.as<u8>();
u8 itemId = bugNode.second.as<u8>();
this->mBugRewardOverrides[bugItemId] = itemId;
}
// Items we call by location name
for (const auto& locationNode : in["mItemLocations"]) {
const auto& locationName = locationNode.first.as<std::string>();
int itemId = locationNode.second.as<int>();
@@ -27,6 +27,7 @@ public:
std::unordered_map<std::string, std::unordered_map<u8, u8>> mTreasureChestOverrides{};
std::unordered_map<std::string, std::unordered_map<u8, u8>> mPoeOverrides{};
std::unordered_map<u8, std::unordered_map<u8, u8>> mFreestandingItemOverrides{};
std::unordered_map<u8, u8> mBugRewardOverrides{};
std::unordered_map<std::string, int> mItemLocations{};
u8 mStartHour{0};
u8 mMapBits{};
+149 -147
View File
@@ -2170,15 +2170,15 @@
Metadata:
- None
- Name: Agitha Female Ant Reward
Original Item: Purple Rupee
- Name: Agitha Male Beetle Reward
Original Item: Orange Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- None
- Bug Item Id: 0xC0
- Name: Agitha Female Beetle Reward
Original Item: Purple Rupee
@@ -2188,127 +2188,7 @@
- Castle Town
- Bug Reward
Metadata:
- None
- Name: Agitha Female Butterfly Reward
Original Item: Purple Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- None
- Name: Agitha Female Dayfly Reward
Original Item: Orange Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- None
- Name: Agitha Female Dragonfly Reward
Original Item: Orange Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- None
- Name: Agitha Female Grasshopper Reward
Original Item: Orange Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- None
- Name: Agitha Female Ladybug Reward
Original Item: Orange Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- None
- Name: Agitha Female Mantis Reward
Original Item: Orange Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- None
- Name: Agitha Female Phasmid Reward
Original Item: Orange Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- None
- Name: Agitha Female Pill Bug Reward
Original Item: Purple Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- None
- Name: Agitha Female Snail Reward
Original Item: Purple Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- None
- Name: Agitha Female Stag Beetle Reward
Original Item: Orange Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- None
- Name: Agitha Male Ant Reward
Original Item: Orange Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- None
- Name: Agitha Male Beetle Reward
Original Item: Orange Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- None
- Bug Item Id: 0xC1
- Name: Agitha Male Butterfly Reward
Original Item: Orange Rupee
@@ -2318,9 +2198,9 @@
- Castle Town
- Bug Reward
Metadata:
- None
- Bug Item Id: 0xC2
- Name: Agitha Male Dayfly Reward
- Name: Agitha Female Butterfly Reward
Original Item: Purple Rupee
Categories:
- Overworld
@@ -2328,9 +2208,9 @@
- Castle Town
- Bug Reward
Metadata:
- None
- Bug Item Id: 0xC3
- Name: Agitha Male Dragonfly Reward
- Name: Agitha Male Stag Beetle Reward
Original Item: Purple Rupee
Categories:
- Overworld
@@ -2338,7 +2218,17 @@
- Castle Town
- Bug Reward
Metadata:
- None
- Bug Item Id: 0xC4
- Name: Agitha Female Stag Beetle Reward
Original Item: Orange Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- Bug Item Id: 0xC5
- Name: Agitha Male Grasshopper Reward
Original Item: Progressive Wallet
@@ -2348,27 +2238,17 @@
- Castle Town
- Bug Reward
Metadata:
- None
- Bug Item Id: 0xC6
- Name: Agitha Male Ladybug Reward
Original Item: Purple Rupee
- Name: Agitha Female Grasshopper Reward
Original Item: Orange Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- None
- Name: Agitha Male Mantis Reward
Original Item: Purple Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- None
- Bug Item Id: 0xC7
- Name: Agitha Male Phasmid Reward
Original Item: Progressive Wallet
@@ -2378,7 +2258,17 @@
- Castle Town
- Bug Reward
Metadata:
- None
- Bug Item Id: 0xC8
- Name: Agitha Female Phasmid Reward
Original Item: Orange Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- Bug Item Id: 0xC9
- Name: Agitha Male Pill Bug Reward
Original Item: Orange Rupee
@@ -2388,7 +2278,57 @@
- Castle Town
- Bug Reward
Metadata:
- None
- Bug Item Id: 0xCA
- Name: Agitha Female Pill Bug Reward
Original Item: Purple Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- Bug Item Id: 0xCB
- Name: Agitha Male Mantis Reward
Original Item: Purple Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- Bug Item Id: 0xCC
- Name: Agitha Female Mantis Reward
Original Item: Orange Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- Bug Item Id: 0xCD
- Name: Agitha Male Ladybug Reward
Original Item: Purple Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- Bug Item Id: 0xCE
- Name: Agitha Female Ladybug Reward
Original Item: Orange Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- Bug Item Id: 0xCF
- Name: Agitha Male Snail Reward
Original Item: Purple Rupee
@@ -2398,15 +2338,77 @@
- Castle Town
- Bug Reward
Metadata:
- None
- Bug Item Id: 0xD0
- Name: Agitha Male Stag Beetle Reward
- Name: Agitha Female Snail Reward
Original Item: Purple Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- Bug Item Id: 0xD1
- Name: Agitha Male Dragonfly Reward
Original Item: Purple Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- Bug Item Id: 0xD2
- Name: Agitha Female Dragonfly Reward
Original Item: Orange Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- Bug Item Id: 0xD3
- Name: Agitha Male Ant Reward
Original Item: Orange Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- Bug Item Id: 0xD4
- Name: Agitha Female Ant Reward
Original Item: Purple Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- Bug Item Id: 0xD5
- Name: Agitha Male Dayfly Reward
Original Item: Purple Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- Bug Item Id: 0xD6
- Name: Agitha Female Dayfly Reward
Original Item: Orange Rupee
Categories:
- Overworld
- Npc
- Castle Town
- Bug Reward
Metadata:
- Bug Item Id: 0xD7
# HD Only Location
# - Name: Agitha 12 Golden Bugs Reward