Pokered Save Editor 2
Pokemon Red & Blue save file editor - Qt 6 C++/QML
Toggle main menu visibility
Loading...
Searching...
No Matches
arealoadedsprites.h
Go to the documentation of this file.
1
/*
2
* Copyright 2020 Twilight
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
16
#pragma once
17
#include <QObject>
18
#include <QVector>
19
20
#include <
pse-common/types.h
>
21
#include "
../../savefile_autoport.h
"
22
23
class
SaveFile
;
24
struct
MapDBEntry
;
25
struct
SpriteSetDBEntry
;
26
27
constexpr
var8
maxLoadedSprites
= 11;
28
39
class
SAVEFILE_AUTOPORT
AreaLoadedSprites
:
public
QObject
40
{
41
Q_OBJECT
42
43
Q_PROPERTY(
int
loadedSetId
MEMBER
loadedSetId
NOTIFY
loadedSetIdChanged
)
44
45
public
:
46
AreaLoadedSprites
(
SaveFile
* saveFile =
nullptr
);
47
virtual
~AreaLoadedSprites
();
48
49
void
load
(
SaveFile
* saveFile =
nullptr
);
50
void
save
(
SaveFile
* saveFile);
51
void
loadSpriteSet
(
SpriteSetDBEntry
* entry,
int
x,
int
y);
52
53
// Loaded sprites are a fixed size and cannot be moved, created, modified, or destroyed
54
// They can be swapped
55
Q_INVOKABLE
int
lSpriteCount
();
56
Q_INVOKABLE
int
lSpriteAt
(
int
ind);
57
Q_INVOKABLE
void
lSpriteSwap
(
int
from,
int
to);
58
59
signals:
60
void
loadedSpritesChanged
();
61
void
loadedSetIdChanged
();
62
63
public
slots:
64
void
reset
();
65
void
randomize
(
MapDBEntry
* map,
int
x,
int
y);
66
void
setTo
(
MapDBEntry
* map,
int
x,
int
y);
67
68
public
:
69
var8
loadedSprites
[
maxLoadedSprites
];
70
int
loadedSetId
;
71
};
maxLoadedSprites
constexpr var8 maxLoadedSprites
Fixed number of sprite slots the game keeps loaded.
Definition
arealoadedsprites.h:27
AreaLoadedSprites::load
void load(SaveFile *saveFile=nullptr)
Expand the loaded-sprite slots from the save.
Definition
arealoadedsprites.cpp:61
AreaLoadedSprites::loadedSetId
int loadedSetId
Definition
arealoadedsprites.h:70
AreaLoadedSprites::loadedSpritesChanged
protected::void loadedSpritesChanged()
AreaLoadedSprites::save
void save(SaveFile *saveFile)
Flatten the loaded-sprite slots to the save.
Definition
arealoadedsprites.cpp:82
AreaLoadedSprites::AreaLoadedSprites
AreaLoadedSprites(SaveFile *saveFile=nullptr)
< Which sprite set is loaded.
Definition
arealoadedsprites.cpp:32
AreaLoadedSprites::lSpriteSwap
void lSpriteSwap(int from, int to)
Swap two loaded-sprite slots.
Definition
arealoadedsprites.cpp:50
AreaLoadedSprites::loadedSetIdChanged
void loadedSetIdChanged()
AreaLoadedSprites::reset
void reset()
Blank the loaded-sprite slots.
Definition
arealoadedsprites.cpp:97
AreaLoadedSprites::lSpriteCount
int lSpriteCount()
Number of loaded-sprite slots (fixed).
Definition
arealoadedsprites.cpp:40
AreaLoadedSprites::loadedSprites
var8 loadedSprites[maxLoadedSprites]
The fixed loaded-sprite picture-ids.
Definition
arealoadedsprites.h:69
AreaLoadedSprites::setTo
void setTo(MapDBEntry *map, int x, int y)
Set to map's sprite set at (x,y).
Definition
arealoadedsprites.cpp:125
AreaLoadedSprites::lSpriteAt
int lSpriteAt(int ind)
Picture-id in slot ind.
Definition
arealoadedsprites.cpp:45
AreaLoadedSprites::loadSpriteSet
void loadSpriteSet(SpriteSetDBEntry *entry, int x, int y)
Populate from a sprite-set definition.
Definition
arealoadedsprites.cpp:135
AreaLoadedSprites::randomize
void randomize(MapDBEntry *map, int x, int y)
Randomize for map at (x,y).
Definition
arealoadedsprites.cpp:106
SaveFile
One loaded save: the raw 32 KB bytes, their expanded object tree, and the tools that move between the...
Definition
savefile.h:46
types.h
Project-wide fixed-width integer aliases (var8, var16, ...).
var8
var8e var8
Everyday 8-bit alias. Exact (not "fastest") to dodge the pointer-width bug noted above.
Definition
types.h:124
savefile_autoport.h
Import/export macro for the savefile library, plus the central list of QObject types kept deliberatel...
SAVEFILE_AUTOPORT
#define SAVEFILE_AUTOPORT
Expands to the correct dllexport/dllimport decoration for this library.
Definition
savefile_autoport.h:38
MapDBEntry
One map's complete static definition – the root of the MapDBEntry family.
Definition
mapdbentry.h:56
SpriteSetDBEntry
One sprite-set: the pre-loaded sprite group for an outdoor area.
Definition
spriteSet.h:47
projects
savefile
src
pse-savefile
expanded
area
arealoadedsprites.h
Generated by
1.17.0