Mario: teleport to hardcoded level
This commit is contained in:
@@ -291,7 +291,9 @@ void toolMoveUpdateButtons(Button *left, Button *right, int &cur_page,
|
||||
}
|
||||
|
||||
void updateToolSelection(int prev_index, ToolType::Value type) {
|
||||
unsetToolColor();
|
||||
if(global_vars.tool.type == type) {
|
||||
unsetToolColor();
|
||||
}
|
||||
int cur_page = 0;
|
||||
size_t multiplier = 0;
|
||||
std::vector<std::shared_ptr<MarioBlock>> *tool_vec = nullptr;
|
||||
@@ -340,60 +342,33 @@ void updateToolSelection(int prev_index, ToolType::Value type) {
|
||||
i++) {
|
||||
tool_vec->at(i)->setHidden(false);
|
||||
}
|
||||
if (global_vars.tool.index / multiplier == static_cast<size_t>(cur_page)) {
|
||||
if (global_vars.tool.type == type && global_vars.tool.index / multiplier == static_cast<size_t>(cur_page)) {
|
||||
setToolColor();
|
||||
}
|
||||
}
|
||||
|
||||
void moveToolsLeft(ToolType::Value type) {
|
||||
switch (type) {
|
||||
case ToolType::BLOCK:
|
||||
global_vars.tool.cur_page_tools--;
|
||||
updateToolSelection(global_vars.tool.cur_page_tools + 1, type);
|
||||
break;
|
||||
case ToolType::MOD:
|
||||
global_vars.tool.cur_page_mods--;
|
||||
updateToolSelection(global_vars.tool.cur_page_mods + 1, type);
|
||||
break;
|
||||
case ToolType::CHARACTER:
|
||||
global_vars.tool.cur_page_characters--;
|
||||
updateToolSelection(global_vars.tool.cur_page_characters + 1, type);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void moveToolsRight(ToolType::Value type) {
|
||||
switch (type) {
|
||||
case ToolType::BLOCK:
|
||||
global_vars.tool.cur_page_tools++;
|
||||
updateToolSelection(global_vars.tool.cur_page_tools - 1, type);
|
||||
break;
|
||||
case ToolType::MOD:
|
||||
global_vars.tool.cur_page_mods++;
|
||||
updateToolSelection(global_vars.tool.cur_page_mods - 1, type);
|
||||
break;
|
||||
case ToolType::CHARACTER:
|
||||
global_vars.tool.cur_page_characters++;
|
||||
updateToolSelection(global_vars.tool.cur_page_characters - 1, type);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void updateToolIndex(uint64_t new_index, ToolType::Value new_type) {
|
||||
int multiplier = 0;
|
||||
int *page = nullptr;
|
||||
switch (new_type) {
|
||||
case ToolType::BLOCK:
|
||||
if(new_index >= global_vars.tools.size()) {
|
||||
return;
|
||||
}
|
||||
multiplier = 2 * TOOLS_WIDTH;
|
||||
page = &global_vars.tool.cur_page_tools;
|
||||
break;
|
||||
case ToolType::MOD:
|
||||
if(new_index >= global_vars.mods.size()) {
|
||||
return;
|
||||
}
|
||||
multiplier = 2 * MOD_WIDTH;
|
||||
page = &global_vars.tool.cur_page_mods;
|
||||
break;
|
||||
case ToolType::CHARACTER:
|
||||
if(new_index >= global_vars.characters.size()) {
|
||||
return;
|
||||
}
|
||||
multiplier = 2 * CHARACTER_WIDTH;
|
||||
page = &global_vars.tool.cur_page_characters;
|
||||
default:
|
||||
@@ -659,7 +634,7 @@ void moveModsLeft(void *input, Button *caller) {
|
||||
toolMoveLeft(caller, actual_input->other_button.get(),
|
||||
global_vars.tool.cur_page_mods, global_vars.tool.max_page_mods,
|
||||
false);
|
||||
updateToolSelection(global_vars.tool.cur_page_tools + 1, ToolType::MOD);
|
||||
updateToolSelection(global_vars.tool.cur_page_mods + 1, ToolType::MOD);
|
||||
}
|
||||
|
||||
void moveModsRight(void *input, Button *caller) {
|
||||
@@ -667,7 +642,7 @@ void moveModsRight(void *input, Button *caller) {
|
||||
toolMoveRight(actual_input->other_button.get(), caller,
|
||||
global_vars.tool.cur_page_mods,
|
||||
global_vars.tool.max_page_mods, false);
|
||||
updateToolSelection(global_vars.tool.cur_page_tools - 1, ToolType::MOD);
|
||||
updateToolSelection(global_vars.tool.cur_page_mods - 1, ToolType::MOD);
|
||||
}
|
||||
|
||||
void moveCharsLeft(void *input, Button *caller) {
|
||||
@@ -675,7 +650,7 @@ void moveCharsLeft(void *input, Button *caller) {
|
||||
toolMoveLeft(caller, actual_input->other_button.get(),
|
||||
global_vars.tool.cur_page_characters,
|
||||
global_vars.tool.max_page_characters, false);
|
||||
updateToolSelection(global_vars.tool.cur_page_tools + 1,
|
||||
updateToolSelection(global_vars.tool.cur_page_characters + 1,
|
||||
ToolType::CHARACTER);
|
||||
}
|
||||
|
||||
@@ -684,7 +659,7 @@ void moveCharsRight(void *input, Button *caller) {
|
||||
toolMoveRight(actual_input->other_button.get(), caller,
|
||||
global_vars.tool.cur_page_characters,
|
||||
global_vars.tool.max_page_characters, false);
|
||||
updateToolSelection(global_vars.tool.cur_page_tools - 1,
|
||||
updateToolSelection(global_vars.tool.cur_page_characters - 1,
|
||||
ToolType::CHARACTER);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user