game constants housekeeping
This commit is contained in:
@@ -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_));
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user