mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-08-20 21:33:40 -07:00
Enable MQ Dungeons in Randomizer (#1828)
* Refactor GetCheckFromActor, WIP currently broken * Fixes build errors via forward declarations and emplace vs insert. * Removes some unnecessary code. * Fixes non-windows build errors. * Fixes Deku Scrubs outside of grottos. * Fixes DMC Deku Scrub Grotto Center * Fixes Ruto Blue Warp * Fix issue identifying blue warp rando checks * Move identifyCow to randomizer.cpp * Various updates to vanilla check objects * Identify MQ checks in check object table * Adjustments to how multimap is used and initialized * Convert u16 in check object table to s16 * Fix a few issues with MQ checks * Fix issue with TWO_ACTOR_PARAMS macro * Fixes some scrubs and cows appearing as identical. * Fixes known gossip stone issues (ToT, DC) * Fixes Dampe's Gravedigging tour rcObject * Fix crash on locations tab * Enable master quest dungeons in rando Co-authored-by: Christopher Leggett <chris@leggett.dev>
This commit is contained in:
parent
ef73aa4f8d
commit
1db4e9303e
16 changed files with 1197 additions and 2583 deletions
|
@ -1,9 +1,12 @@
|
|||
#pragma once
|
||||
#include "randomizerTypes.h"
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
|
||||
// Forward Declarations to avoid duplicate definition issues
|
||||
enum ActorID : int;
|
||||
enum SceneID : int;
|
||||
|
||||
// Check types based on main settings
|
||||
typedef enum {
|
||||
RCTYPE_STANDARD, // Base set of rando checks
|
||||
|
@ -64,11 +67,20 @@ typedef enum {
|
|||
RCAREA_INVALID
|
||||
} RandomizerCheckArea;
|
||||
|
||||
#define TWO_ACTOR_PARAMS(a, b) (abs(a) << 16) | abs(b)
|
||||
|
||||
#define RC_OBJECT(rc, rc_v_or_mq, rc_type, rc_area, actor_id, scene_id, actor_params, og_item_id, rc_shortname, rc_spoilername) \
|
||||
{ rc, {rc, rc_v_or_mq, rc_type, rc_area, actor_id, scene_id, actor_params, og_item_id, false, rc_shortname, rc_spoilername} }
|
||||
|
||||
typedef struct {
|
||||
RandomizerCheck rc;
|
||||
RandomizerCheckVanillaOrMQ vOrMQ;
|
||||
RandomizerCheckType rcType;
|
||||
RandomizerCheckArea rcArea;
|
||||
ActorID actorId;
|
||||
SceneID sceneId;
|
||||
int32_t actorParams;
|
||||
GetItemID ogItemId;
|
||||
bool visibleInImgui;
|
||||
std::string rcShortName;
|
||||
std::string rcSpoilerName;
|
||||
|
@ -78,6 +90,7 @@ namespace RandomizerCheckObjects {
|
|||
bool AreaIsDungeon(RandomizerCheckArea area);
|
||||
bool AreaIsOverworld(RandomizerCheckArea area);
|
||||
std::string GetRCAreaName(RandomizerCheckArea area);
|
||||
std::map<RandomizerCheckArea, std::vector<RandomizerCheckObject>> GetAllRCObjects();
|
||||
std::map<RandomizerCheck, RandomizerCheckObject> GetAllRCObjects();
|
||||
std::map<RandomizerCheckArea, std::map<RandomizerCheck, RandomizerCheckObject>> GetAllRCObjectsByArea();
|
||||
void UpdateImGuiVisibility();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue