MCPcopy Create free account
hub / github.com/EasyRPG/Player / Event

Method Event

src/game_interpreter_control_variables.cpp:158–218  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

156}
157
158int ControlVariables::Event(int op, int event_id, const Game_BaseInterpreterContext& interpreter) {
159 auto character = interpreter.GetCharacter(event_id, "ControlVariables::Event");
160 if (character) {
161 switch (op) {
162 case 0:
163 // Map ID
164 if (!Player::IsRPG2k()
165 || event_id == Game_Character::CharPlayer
166 || event_id == Game_Character::CharBoat
167 || event_id == Game_Character::CharShip
168 || event_id == Game_Character::CharAirship) {
169 return character->GetMapId();
170 } else {
171 // This is an RPG_RT bug for 2k only. Requesting the map id of an event always returns 0.
172 return 0;
173 }
174 break;
175 case 1:
176 // X Coordinate
177 return character->GetX();
178 break;
179 case 2:
180 // Y Coordinate
181 return character->GetY();
182 break;
183 case 3:
184 // Orientation
185 int dir;
186 dir = character->GetFacing();
187 return dir == 0 ? 8 :
188 dir == 1 ? 6 :
189 dir == 2 ? 2 : 4;
190 break;
191 case 4: {
192 // Screen X
193 if (Player::game_config.fake_resolution.Get()) {
194 int pan_delta = (Game_Player::GetDefaultPanX() - lcf::rpg::SavePartyLocation::kPanXDefault) / TILE_SIZE;
195 return character->GetScreenX() - pan_delta;
196 } else {
197 return character->GetScreenX();
198 }
199 }
200 case 5: {
201 // Screen Y
202 if (Player::game_config.fake_resolution.Get()) {
203 int pan_delta = (Game_Player::GetDefaultPanY() - lcf::rpg::SavePartyLocation::kPanYDefault) / TILE_SIZE;
204 return character->GetScreenY() - pan_delta;
205 } else {
206 return character->GetScreenY();
207 }
208 }
209 case 6:
210 // Event ID
211 return Player::IsPatchManiac() ? interpreter.GetThisEventId() : 0;
212 }
213
214 Output::Warning("ControlVariables::Event: Unknown op {}", op);
215 }

Callers

nothing calls this directly

Calls 9

GetFacingMethod · 0.80
GetScreenXMethod · 0.80
GetThisEventIdMethod · 0.80
GetCharacterMethod · 0.45
GetMapIdMethod · 0.45
GetXMethod · 0.45
GetYMethod · 0.45
GetMethod · 0.45
GetScreenYMethod · 0.45

Tested by

no test coverage detected