Pokered Save Editor 2
Pokemon Red & Blue save file editor - Qt 6 C++/QML
Toggle main menu visibility
Loading...
Searching...
No Matches
worldcompleted.cpp
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
22
#include <QRandomGenerator>
23
24
#include "
./worldcompleted.h
"
25
#include "
../../savefile.h
"
26
#include "
../../savefiletoolset.h
"
27
#include "
../../savefileiterator.h
"
28
29
WorldCompleted::WorldCompleted
(
SaveFile
* saveFile)
30
{
31
load
(saveFile);
32
}
33
34
WorldCompleted::~WorldCompleted
() {}
35
36
void
WorldCompleted::load
(
SaveFile
* saveFile)
37
{
38
reset
();
39
40
if
(saveFile ==
nullptr
)
41
return
;
42
43
auto
toolset = saveFile->
toolset
;
44
45
obtainedOldRod
= toolset->getBit(0x29D4, 1, 3);
46
obtainedOldRodChanged
();
47
48
obtainedGoodRod
= toolset->getBit(0x29D4, 1, 4);
49
obtainedGoodRodChanged
();
50
51
obtainedSuperRod
= toolset->getBit(0x29D4, 1, 5);
52
obtainedSuperRodChanged
();
53
54
satisfiedSaffronGuards
= toolset->getBit(0x29D4, 1, 6);
55
satisfiedSaffronGuardsChanged
();
56
57
obtainedLapras
= toolset->getBit(0x29DA, 1, 0);
58
obtainedLaprasChanged
();
59
60
everHealedPokemon
= toolset->getBit(0x29DA, 1, 2);
61
everHealedPokemonChanged
();
62
63
obtainedStarterPokemon
= toolset->getBit(0x29DA, 1, 3);
64
obtainedStarterPokemonChanged
();
65
66
defeatedLorelei
= toolset->getBit(0x29E0, 1, 1);
67
defeatedLoreleiChanged
();
68
}
69
70
void
WorldCompleted::save
(
SaveFile
* saveFile)
71
{
72
auto
toolset = saveFile->
toolset
;
73
74
toolset->
setBit
(0x29D4, 1, 3,
obtainedOldRod
);
75
toolset->setBit(0x29D4, 1, 4,
obtainedGoodRod
);
76
toolset->setBit(0x29D4, 1, 5,
obtainedSuperRod
);
77
toolset->setBit(0x29D4, 1, 6,
satisfiedSaffronGuards
);
78
toolset->setBit(0x29DA, 1, 0,
obtainedLapras
);
79
toolset->setBit(0x29DA, 1, 2,
everHealedPokemon
);
80
toolset->setBit(0x29DA, 1, 3,
obtainedStarterPokemon
);
81
toolset->setBit(0x29E0, 1, 1,
defeatedLorelei
);
82
}
83
84
void
WorldCompleted::reset
()
85
{
86
obtainedOldRod
=
false
;
87
obtainedOldRodChanged
();
88
89
obtainedGoodRod
=
false
;
90
obtainedGoodRodChanged
();
91
92
obtainedSuperRod
=
false
;
93
obtainedSuperRodChanged
();
94
95
satisfiedSaffronGuards
=
false
;
96
satisfiedSaffronGuardsChanged
();
97
98
obtainedLapras
=
false
;
99
obtainedLaprasChanged
();
100
101
everHealedPokemon
=
false
;
102
everHealedPokemonChanged
();
103
104
obtainedStarterPokemon
=
false
;
105
obtainedStarterPokemonChanged
();
106
107
defeatedLorelei
=
false
;
108
defeatedLoreleiChanged
();
109
}
110
111
// For now mark these as false, randomize wants you to play a random game
112
// from the start so it's a matter of how much will randomize complete for
113
// you
114
void
WorldCompleted::randomize
()
115
{
116
reset
();
117
}
SaveFileToolset::setBit
void setBit(var16 addr, var8 size, var8 bit, bool value, bool reverse=false)
Set a bit into a value.
Definition
savefiletoolset.cpp:183
SaveFile
One loaded save: the raw 32 KB bytes, their expanded object tree, and the tools that move between the...
Definition
savefile.h:46
SaveFile::toolset
SaveFileToolset * toolset
Tools to operate directly on the raw sav file data.
Definition
savefile.h:117
WorldCompleted::obtainedLaprasChanged
void obtainedLaprasChanged()
WorldCompleted::defeatedLorelei
bool defeatedLorelei
Definition
worldcompleted.h:81
WorldCompleted::satisfiedSaffronGuards
bool satisfiedSaffronGuards
Definition
worldcompleted.h:80
WorldCompleted::obtainedOldRodChanged
protected::void obtainedOldRodChanged()
WorldCompleted::obtainedOldRod
bool obtainedOldRod
Definition
worldcompleted.h:70
WorldCompleted::~WorldCompleted
virtual ~WorldCompleted()
Definition
worldcompleted.cpp:34
WorldCompleted::obtainedGoodRodChanged
void obtainedGoodRodChanged()
WorldCompleted::save
void save(SaveFile *saveFile)
Flatten these flags to the save.
Definition
worldcompleted.cpp:70
WorldCompleted::obtainedGoodRod
bool obtainedGoodRod
Definition
worldcompleted.h:71
WorldCompleted::obtainedStarterPokemonChanged
void obtainedStarterPokemonChanged()
WorldCompleted::randomize
void randomize()
Randomize these milestones.
Definition
worldcompleted.cpp:114
WorldCompleted::obtainedStarterPokemon
bool obtainedStarterPokemon
Definition
worldcompleted.h:76
WorldCompleted::defeatedLoreleiChanged
void defeatedLoreleiChanged()
WorldCompleted::reset
void reset()
Blank these milestones.
Definition
worldcompleted.cpp:84
WorldCompleted::obtainedLapras
bool obtainedLapras
Definition
worldcompleted.h:75
WorldCompleted::everHealedPokemon
bool everHealedPokemon
Definition
worldcompleted.h:77
WorldCompleted::WorldCompleted
WorldCompleted(SaveFile *saveFile=nullptr)
< Got the Old Rod.
Definition
worldcompleted.cpp:29
WorldCompleted::obtainedSuperRodChanged
void obtainedSuperRodChanged()
WorldCompleted::load
void load(SaveFile *saveFile=nullptr)
Expand these flags from the save.
Definition
worldcompleted.cpp:36
WorldCompleted::everHealedPokemonChanged
void everHealedPokemonChanged()
WorldCompleted::obtainedSuperRod
bool obtainedSuperRod
Definition
worldcompleted.h:72
WorldCompleted::satisfiedSaffronGuardsChanged
void satisfiedSaffronGuardsChanged()
savefile.h
savefileiterator.h
savefiletoolset.h
worldcompleted.h
projects
savefile
src
pse-savefile
expanded
world
worldcompleted.cpp
Generated by
1.17.0