|
Pokered Save Editor 2
Pokemon Red & Blue save file editor - Qt 6 C++/QML
|
One on-map sprite/NPC – the most byte-level object in the area. More...
#include <spritedata.h>
Public Member Functions | |
| SpriteData (bool blankNPC=false, SaveFile *saveFile=nullptr, var8 index=0) | |
| Create a blank sprite or load one from a map. | |
| SpriteData (MapDBEntrySprite *entry) | |
| Create a sprite from map data. | |
| virtual | ~SpriteData () |
| void | load (bool blankNPC=false, SaveFile *saveFile=nullptr, var8 index=0) |
| void | load (MapDBEntrySprite *spriteData) |
| Loads preset from map data, useful if your not already in the map but want to re-create the sprites as they should be on said map. | |
| void | loadSpriteData1 (SaveFile *saveFile, var8 index) |
Expand the first sprite-data table for index. | |
| void | loadSpriteData2 (SaveFile *saveFile, var8 index) |
Expand the second sprite-data table for index. | |
| void | loadSpriteDataNPC (SaveFile *saveFile, var8 index) |
Expand the NPC-only sprite data for index. | |
| void | checkMissable (SaveFile *saveFile, var8 index) |
| Resolve whether this sprite is a missable. | |
| void | save (SaveFile *saveFile, var8 index) |
| void | saveSpriteData1 (SaveFile *saveFile, var8 index) |
| Flatten the first sprite-data table. | |
| void | saveSpriteData2 (SaveFile *saveFile, var8 index) |
| Flatten the second sprite-data table. | |
| void | saveSpriteDataNPC (SaveFile *saveFile, var8 index) |
| Flatten the NPC-only sprite data. | |
| SpriteDBEntry * | toSprite () |
| Resolve this sprite to its DB entry. | |
| int | getRangeDirByte () |
| void | setRangeDirByte (int val) |
| void | resetRangeDirByte () |
| Clear the optional rangeDirByte. | |
| int | getTextID () |
| void | setTextID (int val) |
| void | resetTextID () |
| Clear the optional textID. | |
| int | getTrainerClassOrItemID () |
| void | setTrainerClassOrItemID (int val) |
| void | resetTrainerClassOrItemID () |
| Clear the optional trainerClassOrItemID. | |
| int | getTrainerSetID () |
| void | setTrainerSetID (int val) |
| void | resetTrainerSetID () |
| Clear the optional trainerSetID. | |
| int | getMissableIndex () |
| void | setMissableIndex (int val) |
| void | resetMissableIndex () |
| Clear the optional missableIndex. | |
| int | getYStepVector () |
| void | setYStepVector (int val) |
| int | getXStepVector () |
| void | setXStepVector (int val) |
| protected::void | pictureIDChanged () |
| void | movementStatusChanged () |
| void | imageIndexChanged () |
| void | faceDirChanged () |
| void | yDispChanged () |
| void | xDispChanged () |
| void | mapYChanged () |
| void | mapXChanged () |
| void | movementByteChanged () |
| void | grassPriorityChanged () |
| void | yStepVectorChanged () |
| void | xStepVectorChanged () |
| void | yPixelsChanged () |
| void | xPixelsChanged () |
| void | intraAnimationFrameCounterChanged () |
| void | animFrameCounterChanged () |
| void | walkAnimationCounterChanged () |
| void | movementDelayChanged () |
| void | imageBaseOffsetChanged () |
| void | rangeDirByteChanged () |
| void | textIDChanged () |
| void | trainerClassOrItemIDChanged () |
| void | trainerSetIDChanged () |
| void | missableIndexChanged () |
| void | reset (bool blankNPC=false) |
| Blank this sprite (optionally as a blank NPC). | |
| void | randomize (QVector< TmpSpritePos * > *tmpPos) |
Randomize this sprite (avoiding tmpPos clashes). | |
| void | setTo (MapDBEntrySprite *spriteData) |
| Copy values from a map-defined sprite. | |
Static Public Member Functions | |
| static void | saveMissables (SaveFile *saveFile, QVector< SpriteData * > spriteData) |
| static QVector< SpriteData * > | randomizeAll (QVector< MapDBEntrySprite * > mapSprites) |
| Randomize a whole map's sprites. | |
| static QVector< SpriteData * > | setToAll (QVector< MapDBEntrySprite * > spriteSigns) |
| Build sprites from a map's sprite list. | |
Public Attributes | |
| int | pictureID |
| Sprite data that applies to all sprites. | |
| int | movementStatus |
| (0: uninitialized, 1: ready, 2: delayed, 3: moving) Advised to use ready | |
| int | imageIndex |
| Basically, in the sprite sheet strip, which "pane" or "tile" is it at 0xFF if not on the screen. | |
| int | faceDir |
| (0: down, 4: up, 8: left, $c: right) | |
| int | yDisp |
| Important to set to 0x8 Keep sprites from wandering too far however it's noted that it's bugged to begin with. | |
| int | xDisp |
| int | mapY |
| These are very important to set, just usual coordinates for map placement +4 Coordinate 0,0 would be 4,4 Coordinate 5,5 would be 9,9 etc... Values less than 4 don't appear on the map. | |
| int | mapX |
| int | movementByte |
| (0xFF not moving, 0xFE random movements, others move without collision) | |
| int | grassPriority |
| (0x80 in grass, 0x00 otherwise) - Prioritizing grass drawn around sprite | |
| var8 | yStepVector |
| These actually don't really matter and can be zero I'm not sure if the game even uses these values in the sav file when loading. | |
| var8 | xStepVector |
| int | yPixels |
| Screen position in pixels aligned to 4 pixels offset from the grid (To appear centered). | |
| int | xPixels |
| int | intraAnimationFrameCounter |
| Counter that helps delay between animation frames so things aren't so instant and fast. | |
| int | animFrameCounter |
| Animation frame counter. | |
| int | walkAnimationCounter |
| Tracks movement & wandering, sprites are given 0x10 and it's decremented. | |
| int | movementDelay |
| Delay until next movement, counts downward and flags movementStatus ready once reached. | |
| int | imageBaseOffset |
| Used to help compute imageIndex based on vram. | |
| std::optional< int > | rangeDirByte |
| How far a walking sprite can wander, or if still the facing direction A walking sprite having a value of 0 faces all directions There are certain special values that give special movement Notably 1-2 and D0-D3. | |
| std::optional< int > | textID |
| Text id when this sprite is interacted with. | |
| std::optional< int > | trainerClassOrItemID |
| If this is an item sprite, the item id, otherwise the trainer class. | |
| std::optional< int > | trainerSetID |
| Trainer data id. | |
| std::optional< int > | missableIndex |
| Sprite data that applies to all non-player missable sprites (All sprites that aren't sprite #0 and have an associated index in the global missable list which determine if it's rendered or not). | |
One on-map sprite/NPC – the most byte-level object in the area.
Mirrors the game's per-sprite memory: picture, movement state, facing, map coordinates, animation counters, and (for non-player, non-missable, missable sprites in turn) a set of std::optional fields that only some sprites carry. Because the game splits sprite memory across several tables, load()/save() are broken into ...Data1 / ...Data2 / ...NPC parts (and a missable check).
The optional fields (rangeDirByte, textID, trainerClassOrItemID, trainerSetID, missableIndex) are surfaced to QML through getter/setter/reset property triples so QML – which can't speak std::optional or var8 – can read, write, and clear them. The field comments below are the authoritative description of each byte.
Definition at line 138 of file spritedata.h.
Create a blank sprite or load one from a map.
Definition at line 88 of file spritedata.cpp.
References load().
Referenced by randomizeAll(), and setToAll().
| SpriteData::SpriteData | ( | MapDBEntrySprite * | entry | ) |
|
virtual |
Definition at line 98 of file spritedata.cpp.
| void SpriteData::animFrameCounterChanged | ( | ) |
Referenced by loadSpriteData1(), and reset().
Resolve whether this sprite is a missable.
Definition at line 300 of file spritedata.cpp.
References SaveFile::iterator(), missableIndex, and missableIndexChanged().
Referenced by load().
| void SpriteData::faceDirChanged | ( | ) |
Referenced by load(), loadSpriteData1(), randomize(), and reset().
| int SpriteData::getMissableIndex | ( | ) |
Definition at line 487 of file spritedata.cpp.
References missableIndex.
| int SpriteData::getRangeDirByte | ( | ) |
Definition at line 407 of file spritedata.cpp.
References rangeDirByte.
| int SpriteData::getTextID | ( | ) |
| int SpriteData::getTrainerClassOrItemID | ( | ) |
Definition at line 447 of file spritedata.cpp.
References trainerClassOrItemID.
| int SpriteData::getTrainerSetID | ( | ) |
Definition at line 467 of file spritedata.cpp.
References trainerSetID.
| int SpriteData::getXStepVector | ( | ) |
Definition at line 518 of file spritedata.cpp.
References xStepVector.
| int SpriteData::getYStepVector | ( | ) |
Definition at line 507 of file spritedata.cpp.
References yStepVector.
| void SpriteData::grassPriorityChanged | ( | ) |
Referenced by loadSpriteData2(), randomize(), and reset().
| void SpriteData::imageBaseOffsetChanged | ( | ) |
Referenced by loadSpriteData2(), and reset().
| void SpriteData::imageIndexChanged | ( | ) |
Referenced by loadSpriteData1(), and reset().
| void SpriteData::intraAnimationFrameCounterChanged | ( | ) |
Referenced by loadSpriteData1(), and reset().
Definition at line 100 of file spritedata.cpp.
References checkMissable(), loadSpriteData1(), loadSpriteData2(), loadSpriteDataNPC(), and reset().
Referenced by setTo(), SpriteData(), and SpriteData().
| void SpriteData::load | ( | MapDBEntrySprite * | spriteData | ) |
Loads preset from map data, useful if your not already in the map but want to re-create the sprites as they should be on said map.
Definition at line 117 of file spritedata.cpp.
References MapDBEntrySprite::adjustedX(), MapDBEntrySprite::adjustedY(), SpriteFacing::Down, faceDir, faceDirChanged(), MapDBEntrySprite::getFace(), MapDBEntrySprite::getMissable(), MapDBEntrySprite::getMove(), MapDBEntrySprite::getRange(), MapDBEntrySprite::getText(), MapDBEntrySprite::getToSprite(), SpriteDBEntry::ind, MapDBEntrySprite::ITEM, SpriteFacing::Left, mapX, mapXChanged(), mapY, mapYChanged(), missableIndex, missableIndexChanged(), movementByte, movementByteChanged(), SpriteMobility::Moving, SpriteFacing::None, SpriteMobility::NotMoving, pictureID, pictureIDChanged(), MapDBEntrySprite::POKEMON, rangeDirByte, rangeDirByteChanged(), reset(), SpriteFacing::Right, SpriteMovement::StrengthMovement, textID, textIDChanged(), MapDBEntrySprite::TRAINER, trainerClassOrItemID, trainerClassOrItemIDChanged(), trainerSetID, trainerSetIDChanged(), MapDBEntrySprite::type(), and SpriteFacing::Up.
Expand the first sprite-data table for index.
Definition at line 204 of file spritedata.cpp.
References animFrameCounter, animFrameCounterChanged(), faceDir, faceDirChanged(), imageIndex, imageIndexChanged(), intraAnimationFrameCounter, intraAnimationFrameCounterChanged(), SaveFile::iterator(), movementStatus, movementStatusChanged(), SaveFileIterator::offsetTo(), pictureID, pictureIDChanged(), xPixels, xPixelsChanged(), xStepVector, xStepVectorChanged(), yPixels, yPixelsChanged(), yStepVector, and yStepVectorChanged().
Referenced by load().
Expand the second sprite-data table for index.
Definition at line 241 of file spritedata.cpp.
References grassPriority, grassPriorityChanged(), imageBaseOffset, imageBaseOffsetChanged(), SaveFile::iterator(), mapX, mapXChanged(), mapY, mapYChanged(), movementByte, movementByteChanged(), movementDelay, movementDelayChanged(), SaveFileIterator::offsetTo(), walkAnimationCounter, walkAnimationCounterChanged(), xDisp, xDispChanged(), yDisp, and yDispChanged().
Referenced by load().
Expand the NPC-only sprite data for index.
Definition at line 275 of file spritedata.cpp.
References SaveFile::iterator(), missableIndex, missableIndexChanged(), SaveFileIterator::offsetTo(), rangeDirByte, rangeDirByteChanged(), textID, textIDChanged(), trainerClassOrItemID, trainerClassOrItemIDChanged(), trainerSetID, and trainerSetIDChanged().
Referenced by load().
| void SpriteData::mapXChanged | ( | ) |
Referenced by load(), loadSpriteData2(), randomize(), and reset().
| void SpriteData::mapYChanged | ( | ) |
Referenced by load(), loadSpriteData2(), randomize(), and reset().
| void SpriteData::missableIndexChanged | ( | ) |
References randomize(), randomizeAll(), reset(), setTo(), and setToAll().
Referenced by checkMissable(), load(), loadSpriteDataNPC(), reset(), resetMissableIndex(), and setMissableIndex().
| void SpriteData::movementByteChanged | ( | ) |
Referenced by load(), loadSpriteData2(), randomize(), and reset().
| void SpriteData::movementDelayChanged | ( | ) |
Referenced by loadSpriteData2(), and reset().
| void SpriteData::movementStatusChanged | ( | ) |
Referenced by loadSpriteData1(), and reset().
| protected::void SpriteData::pictureIDChanged | ( | ) |
Referenced by load(), loadSpriteData1(), randomize(), and reset().
| void SpriteData::randomize | ( | QVector< TmpSpritePos * > * | tmpPos | ) |
Randomize this sprite (avoiding tmpPos clashes).
Definition at line 672 of file spritedata.cpp.
References faceDir, faceDirChanged(), SpritesDB::getStore(), grassPriority, grassPriorityChanged(), Random::inst(), SpritesDB::inst(), mapX, mapXChanged(), mapY, mapYChanged(), movementByte, movementByteChanged(), pictureID, pictureIDChanged(), SpriteFacing::random(), SpriteGrass::random(), SpriteMobility::random(), and Random::rangeExclusive().
Referenced by missableIndexChanged().
|
static |
Randomize a whole map's sprites.
Definition at line 625 of file spritedata.cpp.
References SpriteData(), and TmpSpritePos::x.
Referenced by missableIndexChanged(), and AreaSprites::randomize().
| void SpriteData::rangeDirByteChanged | ( | ) |
Referenced by load(), loadSpriteDataNPC(), reset(), resetRangeDirByte(), and setRangeDirByte().
| void SpriteData::reset | ( | bool | blankNPC = false | ) |
Blank this sprite (optionally as a blank NPC).
Definition at line 529 of file spritedata.cpp.
References animFrameCounter, animFrameCounterChanged(), SpriteFacing::Down, faceDir, faceDirChanged(), grassPriority, grassPriorityChanged(), imageBaseOffset, imageBaseOffsetChanged(), imageIndex, imageIndexChanged(), intraAnimationFrameCounter, intraAnimationFrameCounterChanged(), mapX, mapXChanged(), mapY, mapYChanged(), missableIndex, missableIndexChanged(), movementByte, movementByteChanged(), movementDelay, movementDelayChanged(), movementStatus, movementStatusChanged(), SpriteGrass::NotInGrass, SpriteMobility::NotMoving, pictureID, pictureIDChanged(), rangeDirByte, rangeDirByteChanged(), SpriteMovementStatus::Ready, textID, textIDChanged(), trainerClassOrItemID, trainerClassOrItemIDChanged(), trainerSetID, trainerSetIDChanged(), walkAnimationCounter, walkAnimationCounterChanged(), xDisp, xDispChanged(), xPixels, xPixelsChanged(), xStepVector, xStepVectorChanged(), yDisp, yDispChanged(), yPixels, yPixelsChanged(), yStepVector, and yStepVectorChanged().
Referenced by load(), load(), missableIndexChanged(), and setTo().
| void SpriteData::resetMissableIndex | ( | ) |
Clear the optional missableIndex.
Definition at line 501 of file spritedata.cpp.
References missableIndex, and missableIndexChanged().
| void SpriteData::resetRangeDirByte | ( | ) |
Clear the optional rangeDirByte.
Definition at line 421 of file spritedata.cpp.
References rangeDirByte, and rangeDirByteChanged().
| void SpriteData::resetTextID | ( | ) |
Clear the optional textID.
Definition at line 441 of file spritedata.cpp.
References textID, and textIDChanged().
| void SpriteData::resetTrainerClassOrItemID | ( | ) |
Clear the optional trainerClassOrItemID.
Definition at line 461 of file spritedata.cpp.
References trainerClassOrItemID, and trainerClassOrItemIDChanged().
| void SpriteData::resetTrainerSetID | ( | ) |
Clear the optional trainerSetID.
Definition at line 481 of file spritedata.cpp.
References trainerSetID, and trainerSetIDChanged().
Definition at line 325 of file spritedata.cpp.
References saveSpriteData1(), saveSpriteData2(), and saveSpriteDataNPC().
|
static |
Definition at line 383 of file spritedata.cpp.
References SaveFile::iterator(), SaveFileIterator::offsetTo(), and SaveFileIterator::setByte().
Referenced by AreaSprites::save().
Flatten the first sprite-data table.
Definition at line 337 of file spritedata.cpp.
References animFrameCounter, faceDir, imageIndex, intraAnimationFrameCounter, SaveFile::iterator(), movementStatus, SaveFileIterator::offsetTo(), pictureID, SaveFileIterator::setByte(), xPixels, xStepVector, yPixels, and yStepVector.
Referenced by save().
Flatten the second sprite-data table.
Definition at line 354 of file spritedata.cpp.
References grassPriority, imageBaseOffset, SaveFile::iterator(), mapX, mapY, movementByte, movementDelay, SaveFileIterator::offsetTo(), SaveFileIterator::setByte(), walkAnimationCounter, xDisp, and yDisp.
Referenced by save().
Flatten the NPC-only sprite data.
Definition at line 369 of file spritedata.cpp.
References SaveFile::iterator(), SaveFileIterator::offsetTo(), rangeDirByte, SaveFileIterator::setByte(), textID, trainerClassOrItemID, and trainerSetID.
Referenced by save().
| void SpriteData::setMissableIndex | ( | int | val | ) |
Definition at line 495 of file spritedata.cpp.
References missableIndex, and missableIndexChanged().
| void SpriteData::setRangeDirByte | ( | int | val | ) |
Definition at line 415 of file spritedata.cpp.
References rangeDirByte, and rangeDirByteChanged().
| void SpriteData::setTextID | ( | int | val | ) |
Definition at line 435 of file spritedata.cpp.
References textID, and textIDChanged().
| void SpriteData::setTo | ( | MapDBEntrySprite * | spriteData | ) |
Copy values from a map-defined sprite.
Definition at line 713 of file spritedata.cpp.
References load(), and reset().
Referenced by missableIndexChanged().
|
static |
Build sprites from a map's sprite list.
Definition at line 723 of file spritedata.cpp.
References SpriteData().
Referenced by missableIndexChanged(), and AreaSprites::setTo().
| void SpriteData::setTrainerClassOrItemID | ( | int | val | ) |
Definition at line 455 of file spritedata.cpp.
References trainerClassOrItemID, and trainerClassOrItemIDChanged().
| void SpriteData::setTrainerSetID | ( | int | val | ) |
Definition at line 475 of file spritedata.cpp.
References trainerSetID, and trainerSetIDChanged().
| void SpriteData::setXStepVector | ( | int | val | ) |
Definition at line 523 of file spritedata.cpp.
References xStepVector, and xStepVectorChanged().
| void SpriteData::setYStepVector | ( | int | val | ) |
Definition at line 512 of file spritedata.cpp.
References yStepVector, and yStepVectorChanged().
| void SpriteData::textIDChanged | ( | ) |
Referenced by load(), loadSpriteDataNPC(), reset(), resetTextID(), and setTextID().
| SpriteDBEntry * SpriteData::toSprite | ( | ) |
Resolve this sprite to its DB entry.
Definition at line 739 of file spritedata.cpp.
References SpritesDB::getIndAt(), SpritesDB::inst(), and pictureID.
| void SpriteData::trainerClassOrItemIDChanged | ( | ) |
Referenced by load(), loadSpriteDataNPC(), reset(), resetTrainerClassOrItemID(), and setTrainerClassOrItemID().
| void SpriteData::trainerSetIDChanged | ( | ) |
Referenced by load(), loadSpriteDataNPC(), reset(), resetTrainerSetID(), and setTrainerSetID().
| void SpriteData::walkAnimationCounterChanged | ( | ) |
Referenced by loadSpriteData2(), and reset().
| void SpriteData::xDispChanged | ( | ) |
Referenced by loadSpriteData2(), and reset().
| void SpriteData::xPixelsChanged | ( | ) |
Referenced by loadSpriteData1(), and reset().
| void SpriteData::xStepVectorChanged | ( | ) |
Referenced by loadSpriteData1(), reset(), and setXStepVector().
| void SpriteData::yDispChanged | ( | ) |
Referenced by loadSpriteData2(), and reset().
| void SpriteData::yPixelsChanged | ( | ) |
Referenced by loadSpriteData1(), and reset().
| void SpriteData::yStepVectorChanged | ( | ) |
Referenced by loadSpriteData1(), reset(), and setYStepVector().
| int SpriteData::animFrameCounter |
Animation frame counter.
Definition at line 334 of file spritedata.h.
Referenced by loadSpriteData1(), reset(), and saveSpriteData1().
| int SpriteData::faceDir |
(0: down, 4: up, 8: left, $c: right)
Definition at line 288 of file spritedata.h.
Referenced by load(), loadSpriteData1(), randomize(), reset(), and saveSpriteData1().
| int SpriteData::grassPriority |
(0x80 in grass, 0x00 otherwise) - Prioritizing grass drawn around sprite
Definition at line 309 of file spritedata.h.
Referenced by loadSpriteData2(), randomize(), reset(), and saveSpriteData2().
| int SpriteData::imageBaseOffset |
Used to help compute imageIndex based on vram.
Definition at line 345 of file spritedata.h.
Referenced by loadSpriteData2(), reset(), and saveSpriteData2().
| int SpriteData::imageIndex |
Basically, in the sprite sheet strip, which "pane" or "tile" is it at 0xFF if not on the screen.
Advised to use 0xFF
Definition at line 285 of file spritedata.h.
Referenced by loadSpriteData1(), reset(), and saveSpriteData1().
| int SpriteData::intraAnimationFrameCounter |
Counter that helps delay between animation frames so things aren't so instant and fast.
Definition at line 331 of file spritedata.h.
Referenced by loadSpriteData1(), reset(), and saveSpriteData1().
| int SpriteData::mapX |
Definition at line 303 of file spritedata.h.
Referenced by load(), loadSpriteData2(), randomize(), reset(), and saveSpriteData2().
| int SpriteData::mapY |
These are very important to set, just usual coordinates for map placement +4 Coordinate 0,0 would be 4,4 Coordinate 5,5 would be 9,9 etc... Values less than 4 don't appear on the map.
Definition at line 302 of file spritedata.h.
Referenced by load(), loadSpriteData2(), randomize(), reset(), and saveSpriteData2().
| std::optional<int> SpriteData::missableIndex |
Sprite data that applies to all non-player missable sprites (All sprites that aren't sprite #0 and have an associated index in the global missable list which determine if it's rendered or not).
If this is not null, then this sprite is a missable and it's appearance is determined by the flag in the global missable index this points to
Definition at line 377 of file spritedata.h.
Referenced by checkMissable(), getMissableIndex(), load(), loadSpriteDataNPC(), reset(), resetMissableIndex(), and setMissableIndex().
| int SpriteData::movementByte |
(0xFF not moving, 0xFE random movements, others move without collision)
Definition at line 306 of file spritedata.h.
Referenced by load(), loadSpriteData2(), randomize(), reset(), and saveSpriteData2().
| int SpriteData::movementDelay |
Delay until next movement, counts downward and flags movementStatus ready once reached.
Definition at line 342 of file spritedata.h.
Referenced by loadSpriteData2(), reset(), and saveSpriteData2().
| int SpriteData::movementStatus |
(0: uninitialized, 1: ready, 2: delayed, 3: moving) Advised to use ready
Definition at line 281 of file spritedata.h.
Referenced by loadSpriteData1(), reset(), and saveSpriteData1().
| int SpriteData::pictureID |
Sprite data that applies to all sprites.
Actual sprite image shown
Definition at line 277 of file spritedata.h.
Referenced by load(), loadSpriteData1(), randomize(), reset(), saveSpriteData1(), and toSprite().
| std::optional<int> SpriteData::rangeDirByte |
How far a walking sprite can wander, or if still the facing direction A walking sprite having a value of 0 faces all directions There are certain special values that give special movement Notably 1-2 and D0-D3.
Definition at line 358 of file spritedata.h.
Referenced by getRangeDirByte(), load(), loadSpriteDataNPC(), reset(), resetRangeDirByte(), saveSpriteDataNPC(), and setRangeDirByte().
| std::optional<int> SpriteData::textID |
Text id when this sprite is interacted with.
Definition at line 361 of file spritedata.h.
Referenced by getTextID(), load(), loadSpriteDataNPC(), reset(), resetTextID(), saveSpriteDataNPC(), and setTextID().
| std::optional<int> SpriteData::trainerClassOrItemID |
If this is an item sprite, the item id, otherwise the trainer class.
Definition at line 364 of file spritedata.h.
Referenced by getTrainerClassOrItemID(), load(), loadSpriteDataNPC(), reset(), resetTrainerClassOrItemID(), saveSpriteDataNPC(), and setTrainerClassOrItemID().
| std::optional<int> SpriteData::trainerSetID |
Trainer data id.
Definition at line 367 of file spritedata.h.
Referenced by getTrainerSetID(), load(), loadSpriteDataNPC(), reset(), resetTrainerSetID(), saveSpriteDataNPC(), and setTrainerSetID().
| int SpriteData::walkAnimationCounter |
Tracks movement & wandering, sprites are given 0x10 and it's decremented.
Definition at line 338 of file spritedata.h.
Referenced by loadSpriteData2(), reset(), and saveSpriteData2().
| int SpriteData::xDisp |
Definition at line 294 of file spritedata.h.
Referenced by loadSpriteData2(), reset(), and saveSpriteData2().
| int SpriteData::xPixels |
Definition at line 327 of file spritedata.h.
Referenced by loadSpriteData1(), reset(), and saveSpriteData1().
| var8 SpriteData::xStepVector |
Definition at line 322 of file spritedata.h.
Referenced by getXStepVector(), loadSpriteData1(), reset(), saveSpriteData1(), and setXStepVector().
| int SpriteData::yDisp |
Important to set to 0x8 Keep sprites from wandering too far however it's noted that it's bugged to begin with.
Both are init to 0x8
Definition at line 293 of file spritedata.h.
Referenced by loadSpriteData2(), reset(), and saveSpriteData2().
| int SpriteData::yPixels |
Screen position in pixels aligned to 4 pixels offset from the grid (To appear centered).
Definition at line 326 of file spritedata.h.
Referenced by loadSpriteData1(), reset(), and saveSpriteData1().
| var8 SpriteData::yStepVector |
These actually don't really matter and can be zero I'm not sure if the game even uses these values in the sav file when loading.
Regardless things work just fine if they're all zero When the sprite moves, exactly how far or how much is that? (-1, 0 or 1) These need to be kept at var8 since they deal with reading and writing unsigned numbers that can intentionally underflow
Definition at line 321 of file spritedata.h.
Referenced by getYStepVector(), loadSpriteData1(), reset(), saveSpriteData1(), and setYStepVector().