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

Method vUpdate

src/scene_item.cpp:54–112  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

52}
53
54void Scene_Item::vUpdate() {
55 help_window->Update();
56 item_window->Update();
57
58 if (Input::IsTriggered(Input::CANCEL)) {
59 Main_Data::game_system->SePlay(Main_Data::game_system->GetSystemSE(Main_Data::game_system->SFX_Cancel));
60 Scene::Pop();
61 } else if (Input::IsTriggered(Input::DECISION)) {
62 int item_id = item_window->GetItem() == NULL ? 0 : item_window->GetItem()->ID;
63
64 if (item_id > 0 && item_window->CheckEnable(item_id)) {
65 // The party only has valid items
66 const lcf::rpg::Item& item = *item_window->GetItem();
67
68 if (item.type == lcf::rpg::Item::Type_switch) {
69 Main_Data::game_system->SePlay(Main_Data::game_system->GetSystemSE(Main_Data::game_system->SFX_Decision));
70 Main_Data::game_party->ConsumeItemUse(item_id);
71 Main_Data::game_switches->Set(item.switch_id, true);
72 Scene::PopUntil(Scene::Map);
73 Game_Map::SetNeedRefresh(true);
74 } else if (item.type == lcf::rpg::Item::Type_special && item.skill_id > 0) {
75 const lcf::rpg::Skill* skill = lcf::ReaderUtil::GetElement(lcf::Data::skills, item.skill_id);
76 if (!skill) {
77 Output::Warning("Scene Item: Item references invalid skill ID {}", item.skill_id);
78 return;
79 }
80
81 if (skill->type == lcf::rpg::Skill::Type_teleport) {
82 Main_Data::game_system->SePlay(Main_Data::game_system->GetSystemSE(Main_Data::game_system->SFX_Decision));
83 Scene::Push(std::make_shared<Scene_Teleport>(item, *skill));
84 } else if (skill->type == lcf::rpg::Skill::Type_escape) {
85 Main_Data::game_party->ConsumeItemUse(item_id);
86 Main_Data::game_system->SePlay(skill->sound_effect);
87
88 Main_Data::game_player->ForceGetOffVehicle();
89 Main_Data::game_player->ReserveTeleport(Main_Data::game_targets->GetEscapeTarget());
90
91 Scene::PopUntil(Scene::Map);
92 } else if (skill->type == lcf::rpg::Skill::Type_switch) {
93 Main_Data::game_party->ConsumeItemUse(item_id);
94 Main_Data::game_system->SePlay(skill->sound_effect);
95 Main_Data::game_switches->Set(skill->switch_id, true);
96 Scene::PopUntil(Scene::Map);
97 Game_Map::SetNeedRefresh(true);
98 } else {
99 Main_Data::game_system->SePlay(Main_Data::game_system->GetSystemSE(Main_Data::game_system->SFX_Decision));
100 Scene::Push(std::make_shared<Scene_ActorTarget>(item_id));
101 item_index = item_window->GetIndex();
102 }
103 } else {
104 Main_Data::game_system->SePlay(Main_Data::game_system->GetSystemSE(Main_Data::game_system->SFX_Decision));
105 Scene::Push(std::make_shared<Scene_ActorTarget>(item_id));
106 item_index = item_window->GetIndex();
107 }
108 } else {
109 Main_Data::game_system->SePlay(Main_Data::game_system->GetSystemSE(Main_Data::game_system->SFX_Buzzer));
110 }
111 }

Callers

nothing calls this directly

Calls 9

SePlayMethod · 0.80
ConsumeItemUseMethod · 0.80
ForceGetOffVehicleMethod · 0.80
ReserveTeleportMethod · 0.80
UpdateMethod · 0.45
GetItemMethod · 0.45
CheckEnableMethod · 0.45
SetMethod · 0.45
GetIndexMethod · 0.45

Tested by

no test coverage detected