game constants housekeeping

This commit is contained in:
scawful
2024-08-29 13:08:36 -04:00
parent 20f7f04520
commit 5532623e16
5 changed files with 51 additions and 56 deletions

View File

@@ -12,7 +12,7 @@ void OverworldEditor::RefreshChildMap(int map_index) {
status_ = overworld_.mutable_overworld_map(map_index)->BuildTileset(); status_ = overworld_.mutable_overworld_map(map_index)->BuildTileset();
PRINT_IF_ERROR(status_); PRINT_IF_ERROR(status_);
status_ = overworld_.mutable_overworld_map(map_index)->BuildTiles16Gfx( status_ = overworld_.mutable_overworld_map(map_index)->BuildTiles16Gfx(
overworld_.tiles16().size()); *overworld_.mutable_tiles16(), overworld_.tiles16().size());
PRINT_IF_ERROR(status_); PRINT_IF_ERROR(status_);
status_ = overworld_.mutable_overworld_map(map_index)->BuildBitmap( status_ = overworld_.mutable_overworld_map(map_index)->BuildBitmap(
overworld_.GetMapTiles(current_world_)); overworld_.GetMapTiles(current_world_));

View File

@@ -1,8 +1,6 @@
#ifndef YAZE_APP_EDITOR_SPRITE_ZSPRITE_H #ifndef YAZE_APP_EDITOR_SPRITE_ZSPRITE_H
#define YAZE_APP_EDITOR_SPRITE_ZSPRITE_H #define YAZE_APP_EDITOR_SPRITE_ZSPRITE_H
#include "imgui/imgui.h"
#include <algorithm> #include <algorithm>
#include <cstdint> #include <cstdint>
#include <fstream> #include <fstream>
@@ -11,6 +9,7 @@
#include "absl/status/status.h" #include "absl/status/status.h"
#include "app/gfx/snes_tile.h" #include "app/gfx/snes_tile.h"
#include "imgui/imgui.h"
namespace yaze { namespace yaze {
namespace app { namespace app {
@@ -46,7 +45,7 @@ struct OamTile {
struct AnimationGroup { struct AnimationGroup {
AnimationGroup() = default; AnimationGroup() = default;
AnimationGroup(uint8_t fs, uint8_t fe, uint8_t fsp, std::string fn) AnimationGroup(uint8_t fs, uint8_t fe, uint8_t fsp, std::string fn)
: frame_start(fs), frame_end(fe), frame_speed(fsp), frame_name(fn) {} : frame_name(fn), frame_start(fs), frame_end(fe), frame_speed(fsp) {}
std::string frame_name; std::string frame_name;
uint8_t frame_start; uint8_t frame_start;

View File

@@ -330,7 +330,8 @@ absl::Status Overworld::LoadOverworldMaps() {
void Overworld::LoadTileTypes() { void Overworld::LoadTileTypes() {
for (int i = 0; i < 0x200; i++) { for (int i = 0; i < 0x200; i++) {
all_tiles_types_[i] = rom()->data()[overworldTilesType + i]; all_tiles_types_[i] =
rom()->data()[rom()->version_constants().overworldTilesType + i];
} }
} }
@@ -632,8 +633,9 @@ absl::Status Overworld::SaveOverworldMaps() {
core::Logger::log("Saving map pointers1 and compressed data for map " + core::Logger::log("Saving map pointers1 and compressed data for map " +
core::UppercaseHexByte(i) + " at " + core::UppercaseHexByte(i) + " at " +
core::UppercaseHexLong(snes_pos)); core::UppercaseHexLong(snes_pos));
RETURN_IF_ERROR( RETURN_IF_ERROR(rom()->WriteLong(
rom()->WriteLong(kCompressedAllMap32PointersLow + (3 * i), snes_pos)); rom()->version_constants().kCompressedAllMap32PointersLow + (3 * i),
snes_pos));
RETURN_IF_ERROR(rom()->WriteVector(pos, a)); RETURN_IF_ERROR(rom()->WriteVector(pos, a));
pos += size_a; pos += size_a;
} else { } else {
@@ -642,8 +644,9 @@ absl::Status Overworld::SaveOverworldMaps() {
core::Logger::log("Saving map pointers1 for map " + core::Logger::log("Saving map pointers1 for map " +
core::UppercaseHexByte(i) + " at " + core::UppercaseHexByte(i) + " at " +
core::UppercaseHexLong(snes_pos)); core::UppercaseHexLong(snes_pos));
RETURN_IF_ERROR( RETURN_IF_ERROR(rom()->WriteLong(
rom()->WriteLong(kCompressedAllMap32PointersLow + (3 * i), snes_pos)); rom()->version_constants().kCompressedAllMap32PointersLow + (3 * i),
snes_pos));
} }
if ((pos + b.size()) >= 0x5FE70 && (pos + b.size()) <= 0x60000) { if ((pos + b.size()) >= 0x5FE70 && (pos + b.size()) <= 0x60000) {
@@ -666,7 +669,8 @@ absl::Status Overworld::SaveOverworldMaps() {
core::UppercaseHexByte(i) + " at " + core::UppercaseHexByte(i) + " at " +
core::UppercaseHexLong(snes_pos)); core::UppercaseHexLong(snes_pos));
RETURN_IF_ERROR(rom()->WriteLong( RETURN_IF_ERROR(rom()->WriteLong(
kCompressedAllMap32PointersHigh + (3 * i), snes_pos)); rom()->version_constants().kCompressedAllMap32PointersHigh + (3 * i),
snes_pos));
RETURN_IF_ERROR(rom()->WriteVector(pos, b)); RETURN_IF_ERROR(rom()->WriteVector(pos, b));
pos += size_b; pos += size_b;
} else { } else {
@@ -676,7 +680,8 @@ absl::Status Overworld::SaveOverworldMaps() {
core::UppercaseHexByte(i) + " at " + core::UppercaseHexByte(i) + " at " +
core::UppercaseHexLong(snes_pos)); core::UppercaseHexLong(snes_pos));
RETURN_IF_ERROR(rom()->WriteLong( RETURN_IF_ERROR(rom()->WriteLong(
kCompressedAllMap32PointersHigh + (3 * i), snes_pos)); rom()->version_constants().kCompressedAllMap32PointersHigh + (3 * i),
snes_pos));
} }
} }
@@ -1433,9 +1438,9 @@ absl::Status Overworld::SaveItems() {
absl::Status Overworld::SaveMapProperties() { absl::Status Overworld::SaveMapProperties() {
core::Logger::log("Saving Map Properties"); core::Logger::log("Saving Map Properties");
for (int i = 0; i < 64; i++) { for (int i = 0; i < 64; i++) {
RETURN_IF_ERROR( RETURN_IF_ERROR(rom()->WriteByte(kAreaGfxIdPtr + i,
rom()->WriteByte(mapGfx + i, overworld_maps_[i].area_graphics())); overworld_maps_[i].area_graphics()));
RETURN_IF_ERROR(rom()->WriteByte(overworldMapPalette + i, RETURN_IF_ERROR(rom()->WriteByte(kOverworldMapPaletteIds + i,
overworld_maps_[i].area_palette())); overworld_maps_[i].area_palette()));
RETURN_IF_ERROR(rom()->WriteByte(overworldSpriteset + i, RETURN_IF_ERROR(rom()->WriteByte(overworldSpriteset + i,
overworld_maps_[i].sprite_graphics(0))); overworld_maps_[i].sprite_graphics(0)));
@@ -1443,30 +1448,30 @@ absl::Status Overworld::SaveMapProperties() {
overworld_maps_[i].sprite_graphics(1))); overworld_maps_[i].sprite_graphics(1)));
RETURN_IF_ERROR(rom()->WriteByte(overworldSpriteset + 128 + i, RETURN_IF_ERROR(rom()->WriteByte(overworldSpriteset + 128 + i,
overworld_maps_[i].sprite_graphics(2))); overworld_maps_[i].sprite_graphics(2)));
RETURN_IF_ERROR(rom()->WriteByte(overworldSpritePalette + i, RETURN_IF_ERROR(rom()->WriteByte(kOverworldSpritePaletteIds + i,
overworld_maps_[i].sprite_palette(0))); overworld_maps_[i].sprite_palette(0)));
RETURN_IF_ERROR(rom()->WriteByte(overworldSpritePalette + 64 + i, RETURN_IF_ERROR(rom()->WriteByte(kOverworldSpritePaletteIds + 64 + i,
overworld_maps_[i].sprite_palette(1))); overworld_maps_[i].sprite_palette(1)));
RETURN_IF_ERROR(rom()->WriteByte(overworldSpritePalette + 128 + i, RETURN_IF_ERROR(rom()->WriteByte(kOverworldSpritePaletteIds + 128 + i,
overworld_maps_[i].sprite_palette(2))); overworld_maps_[i].sprite_palette(2)));
} }
for (int i = 64; i < 128; i++) { for (int i = 64; i < 128; i++) {
RETURN_IF_ERROR( RETURN_IF_ERROR(rom()->WriteByte(kAreaGfxIdPtr + i,
rom()->WriteByte(mapGfx + i, overworld_maps_[i].area_graphics())); overworld_maps_[i].area_graphics()));
RETURN_IF_ERROR(rom()->WriteByte(overworldSpriteset + i, RETURN_IF_ERROR(rom()->WriteByte(overworldSpriteset + i,
overworld_maps_[i].sprite_graphics(0))); overworld_maps_[i].sprite_graphics(0)));
RETURN_IF_ERROR(rom()->WriteByte(overworldSpriteset + 64 + i, RETURN_IF_ERROR(rom()->WriteByte(overworldSpriteset + 64 + i,
overworld_maps_[i].sprite_graphics(1))); overworld_maps_[i].sprite_graphics(1)));
RETURN_IF_ERROR(rom()->WriteByte(overworldSpriteset + 128 + i, RETURN_IF_ERROR(rom()->WriteByte(overworldSpriteset + 128 + i,
overworld_maps_[i].sprite_graphics(2))); overworld_maps_[i].sprite_graphics(2)));
RETURN_IF_ERROR(rom()->WriteByte(overworldMapPalette + i, RETURN_IF_ERROR(rom()->WriteByte(kOverworldMapPaletteIds + i,
overworld_maps_[i].area_palette())); overworld_maps_[i].area_palette()));
RETURN_IF_ERROR(rom()->WriteByte(overworldSpritePalette + 64 + i, RETURN_IF_ERROR(rom()->WriteByte(kOverworldSpritePaletteIds + 64 + i,
overworld_maps_[i].sprite_palette(0))); overworld_maps_[i].sprite_palette(0)));
RETURN_IF_ERROR(rom()->WriteByte(overworldSpritePalette + 128 + i, RETURN_IF_ERROR(rom()->WriteByte(kOverworldSpritePaletteIds + 128 + i,
overworld_maps_[i].sprite_palette(1))); overworld_maps_[i].sprite_palette(1)));
RETURN_IF_ERROR(rom()->WriteByte(overworldSpritePalette + 192 + i, RETURN_IF_ERROR(rom()->WriteByte(kOverworldSpritePaletteIds + 192 + i,
overworld_maps_[i].sprite_palette(2))); overworld_maps_[i].sprite_palette(2)));
} }

View File

@@ -376,13 +376,8 @@ class OverworldEntrance : public GameEntity {
} }
}; };
constexpr int kCompressedAllMap32PointersHigh = 0x1794D; constexpr int kOverworldMapPaletteIds = 0x7D1C;
constexpr int kCompressedAllMap32PointersLow = 0x17B2D; constexpr int kOverworldSpritePaletteIds = 0x7B41;
constexpr int overworldPalGroup1 = 0xDE6C8;
constexpr int overworldPalGroup2 = 0xDE86C;
constexpr int overworldPalGroup3 = 0xDE604;
constexpr int overworldMapPalette = 0x7D1C;
constexpr int overworldSpritePalette = 0x7B41;
constexpr int overworldMapPaletteGroup = 0x75504; constexpr int overworldMapPaletteGroup = 0x75504;
constexpr int overworldSpritePaletteGroup = 0x75580; constexpr int overworldSpritePaletteGroup = 0x75580;
constexpr int overworldSpriteset = 0x7A41; constexpr int overworldSpriteset = 0x7A41;
@@ -392,12 +387,8 @@ constexpr int overworldSpritesBegining = 0x4C881;
constexpr int overworldSpritesAgahnim = 0x4CA21; constexpr int overworldSpritesAgahnim = 0x4CA21;
constexpr int overworldSpritesZelda = 0x4C901; constexpr int overworldSpritesZelda = 0x4C901;
constexpr int mapGfx = 0x7C9C; constexpr int kAreaGfxIdPtr = 0x7C9C;
constexpr int overlayPointers = 0x77664; constexpr int kOverworldMessageIds = 0x3F51D;
constexpr int overlayPointersBank = 0x0E;
constexpr int overworldTilesType = 0x71459;
constexpr int overworldMessages = 0x3F51D;
constexpr int overworldMusicBegining = 0x14303; constexpr int overworldMusicBegining = 0x14303;
constexpr int overworldMusicZelda = 0x14303 + 0x40; constexpr int overworldMusicZelda = 0x14303 + 0x40;

View File

@@ -48,8 +48,8 @@ absl::Status OverworldMap::BuildMap(int count, int game_state, int world,
area_graphics_ = 0x51; area_graphics_ = 0x51;
area_palette_ = 0x00; area_palette_ = 0x00;
} else { } else {
area_graphics_ = rom_[mapGfx + parent_]; area_graphics_ = rom_[kAreaGfxIdPtr + parent_];
area_palette_ = rom_[overworldMapPalette + parent_]; area_palette_ = rom_[kOverworldMapPaletteIds + parent_];
} }
initialized_ = true; initialized_ = true;
@@ -75,11 +75,11 @@ void OverworldMap::LoadAreaInfo() {
} }
} }
message_id_ = rom_.toint16(overworldMessages + (parent_ * 2)); message_id_ = rom_.toint16(kOverworldMessageIds + (parent_ * 2));
if (index_ < 0x40) { if (index_ < 0x40) {
area_graphics_ = rom_[mapGfx + parent_]; area_graphics_ = rom_[kAreaGfxIdPtr + parent_];
area_palette_ = rom_[overworldMapPalette + parent_]; area_palette_ = rom_[kOverworldMapPaletteIds + parent_];
area_music_[0] = rom_[overworldMusicBegining + parent_]; area_music_[0] = rom_[overworldMusicBegining + parent_];
area_music_[1] = rom_[overworldMusicZelda + parent_]; area_music_[1] = rom_[overworldMusicZelda + parent_];
@@ -90,21 +90,21 @@ void OverworldMap::LoadAreaInfo() {
sprite_graphics_[1] = rom_[overworldSpriteset + parent_ + 0x40]; sprite_graphics_[1] = rom_[overworldSpriteset + parent_ + 0x40];
sprite_graphics_[2] = rom_[overworldSpriteset + parent_ + 0x80]; sprite_graphics_[2] = rom_[overworldSpriteset + parent_ + 0x80];
sprite_palette_[0] = rom_[overworldSpritePalette + parent_]; sprite_palette_[0] = rom_[kOverworldSpritePaletteIds + parent_];
sprite_palette_[1] = rom_[overworldSpritePalette + parent_ + 0x40]; sprite_palette_[1] = rom_[kOverworldSpritePaletteIds + parent_ + 0x40];
sprite_palette_[2] = rom_[overworldSpritePalette + parent_ + 0x80]; sprite_palette_[2] = rom_[kOverworldSpritePaletteIds + parent_ + 0x80];
} else if (index_ < 0x80) { } else if (index_ < 0x80) {
area_graphics_ = rom_[mapGfx + parent_]; area_graphics_ = rom_[kAreaGfxIdPtr + parent_];
area_palette_ = rom_[overworldMapPalette + parent_]; area_palette_ = rom_[kOverworldMapPaletteIds + parent_];
area_music_[0] = rom_[overworldMusicDW + (parent_ - 64)]; area_music_[0] = rom_[overworldMusicDW + (parent_ - 64)];
sprite_graphics_[0] = rom_[overworldSpriteset + parent_ + 0x80]; sprite_graphics_[0] = rom_[overworldSpriteset + parent_ + 0x80];
sprite_graphics_[1] = rom_[overworldSpriteset + parent_ + 0x80]; sprite_graphics_[1] = rom_[overworldSpriteset + parent_ + 0x80];
sprite_graphics_[2] = rom_[overworldSpriteset + parent_ + 0x80]; sprite_graphics_[2] = rom_[overworldSpriteset + parent_ + 0x80];
sprite_palette_[0] = rom_[overworldSpritePalette + parent_ + 0x80]; sprite_palette_[0] = rom_[kOverworldSpritePaletteIds + parent_ + 0x80];
sprite_palette_[1] = rom_[overworldSpritePalette + parent_ + 0x80]; sprite_palette_[1] = rom_[kOverworldSpritePaletteIds + parent_ + 0x80];
sprite_palette_[2] = rom_[overworldSpritePalette + parent_ + 0x80]; sprite_palette_[2] = rom_[kOverworldSpritePaletteIds + parent_ + 0x80];
} else { } else {
if (index_ == 0x94) { if (index_ == 0x94) {
parent_ = 0x80; parent_ = 0x80;
@@ -139,17 +139,17 @@ void OverworldMap::LoadAreaInfo() {
area_palette_ = 0x00; area_palette_ = 0x00;
} else { } else {
// pyramid bg use 0x5B map // pyramid bg use 0x5B map
area_graphics_ = rom_[mapGfx + parent_]; area_graphics_ = rom_[kAreaGfxIdPtr + parent_];
area_palette_ = rom_[overworldMapPalette + parent_]; area_palette_ = rom_[kOverworldMapPaletteIds + parent_];
} }
sprite_graphics_[0] = rom_[overworldSpriteset + parent_ + 0x80]; sprite_graphics_[0] = rom_[overworldSpriteset + parent_ + 0x80];
sprite_graphics_[1] = rom_[overworldSpriteset + parent_ + 0x80]; sprite_graphics_[1] = rom_[overworldSpriteset + parent_ + 0x80];
sprite_graphics_[2] = rom_[overworldSpriteset + parent_ + 0x80]; sprite_graphics_[2] = rom_[overworldSpriteset + parent_ + 0x80];
sprite_palette_[0] = rom_[overworldSpritePalette + parent_ + 0x80]; sprite_palette_[0] = rom_[kOverworldSpritePaletteIds + parent_ + 0x80];
sprite_palette_[1] = rom_[overworldSpritePalette + parent_ + 0x80]; sprite_palette_[1] = rom_[kOverworldSpritePaletteIds + parent_ + 0x80];
sprite_palette_[2] = rom_[overworldSpritePalette + parent_ + 0x80]; sprite_palette_[2] = rom_[kOverworldSpritePaletteIds + parent_ + 0x80];
} }
} }
@@ -571,9 +571,9 @@ absl::StatusOr<gfx::SnesPalette> OverworldMap::GetPalette(
} }
absl::Status OverworldMap::LoadPalette() { absl::Status OverworldMap::LoadPalette() {
int previousPalId = index_ > 0 ? rom_[overworldMapPalette + parent_ - 1] : 0; int previousPalId = index_ > 0 ? rom_[kOverworldMapPaletteIds + parent_ - 1] : 0;
int previousSprPalId = int previousSprPalId =
index_ > 0 ? rom_[overworldSpritePalette + parent_ - 1] : 0; index_ > 0 ? rom_[kOverworldSpritePaletteIds + parent_ - 1] : 0;
area_palette_ = std::min((int)area_palette_, 0xA3); area_palette_ = std::min((int)area_palette_, 0xA3);