1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-02-10 22:57:20 +00:00
oot/tools/ZAPD/ZAPD/Globals.h
fig02 1ff2f0f849
ZAPD update (#612)
* remove roompoly

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "fd4d53a26"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "fd4d53a26"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"
2021-01-08 19:38:28 -05:00

59 lines
1.7 KiB
C++

#pragma once
#include <map>
#include <string>
#include <vector>
#include "ZFile.h"
#include "ZTexture.h"
#include "ZRoom/ZRoom.h"
typedef enum VerbosityLevel {
VERBOSITY_SILENT,
VERBOSITY_INFO,
VERBOSITY_DEBUG
} VerbosityLevel;
class Globals
{
public:
static Globals* Instance;
bool genSourceFile; // Used for extraction
bool useExternalResources;
bool testMode; // Enables certain experimental features
bool profile; // Measure performance of certain operations
bool includeFilePrefix; // Include the file prefix in symbols
VerbosityLevel verbosity; // ZAPD outputs additional information
ZFileMode fileMode;
std::string baseRomPath, inputPath, outputPath, cfgPath;
TextureType texType;
std::vector<ZFile*> files;
std::vector<int> segments;
std::map<int, std::string> segmentRefs;
std::map<int, ZFile*> segmentRefFiles;
ZRoom* lastScene;
std::map<uint32_t, std::string> symbolMap;
Globals();
std::string FindSymbolSegRef(int segNumber, uint32_t symbolAddress);
void ReadConfigFile(const std::string& configFilePath);
void GenSymbolMap(const std::string& symbolMapPath);
void AddSegment(int segment);
bool HasSegment(int segment);
};
/*
* Note: In being able to track references across files, there are a few major files that make use of segments...
* Segment 1: nintendo_rogo_static/title_static
* Segment 2: parameter_static
* Segment 4: gameplay_keep
* Segment 5: gameplay_field_keep, gameplay_dangeon_keep
* Segment 7: link_animetion
* Segment 8: icon_item_static
* Segment 9: icon_item_24_static
* Segment 12: icon_item_field_static, icon_item_dungeon_static
* Segment 13: icon_item_nes_static
*
* I'm thinking a config file could be usable, but I'll have to experiment...
*/