Mario Editor: change edit boxes' indexing to 1-based
As the left map arrow is on position 0 * BLOCK_SIZE and the first edit box is on position 1 * BLOCK_SIZE, indexing them from 1 causes slightly more readable code
This commit is contained in:
parent
26cbdd0f8e
commit
2b405c5d31
@ -375,7 +375,8 @@ void selectNextTool() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
int addition = 1;
|
int addition = 1;
|
||||||
if ( global_vars.tool.index % multiplier == static_cast<uint64_t>( multiplier - 1 ) )
|
if ( global_vars.tool.index % multiplier ==
|
||||||
|
static_cast< uint64_t >( multiplier - 1 ) )
|
||||||
addition = multiplier + 1;
|
addition = multiplier + 1;
|
||||||
if ( global_vars.tool.index == max_index )
|
if ( global_vars.tool.index == max_index )
|
||||||
return;
|
return;
|
||||||
@ -464,14 +465,16 @@ void getMousePositionFlags( SDLPP::Scene &scene ) {
|
|||||||
MouseVisitor visitor;
|
MouseVisitor visitor;
|
||||||
scene.visitCollisions( *mouse, visitor );
|
scene.visitCollisions( *mouse, visitor );
|
||||||
global_vars.mouse.cur_flags = visitor.getFlags();
|
global_vars.mouse.cur_flags = visitor.getFlags();
|
||||||
global_vars.mouse.edit_box = visitor.getEditBoxIndexes();
|
// + 1 because the left map arrow is on position 0
|
||||||
|
global_vars.mouse.edit_box =
|
||||||
|
visitor.getEditBoxIndexes() + SDLPP::Vec2D< int >( 1, 0 );
|
||||||
global_vars.mouse.tool_box = visitor.getToolBoxIndexes();
|
global_vars.mouse.tool_box = visitor.getToolBoxIndexes();
|
||||||
global_vars.mouse.tool_type =
|
global_vars.mouse.tool_type =
|
||||||
static_cast< ToolType::Value >( visitor.getToolType() );
|
static_cast< ToolType::Value >( visitor.getToolType() );
|
||||||
// if we found an edit box, move tool icon to that box
|
// if we found an edit box, move tool icon to that box
|
||||||
if ( visitor.foundEditBox() ) {
|
if ( visitor.foundEditBox() ) {
|
||||||
const auto &box = global_vars.mouse.edit_box;
|
const auto &box = global_vars.mouse.edit_box;
|
||||||
global_vars.current_tool->setPos( BLOCK_SIZE + box.getX() * BLOCK_SIZE,
|
global_vars.current_tool->setPos( box.getX() * BLOCK_SIZE,
|
||||||
( MAP_WIDTH - MAP_HEIGHT + 2 ) *
|
( MAP_WIDTH - MAP_HEIGHT + 2 ) *
|
||||||
BLOCK_SIZE +
|
BLOCK_SIZE +
|
||||||
box.getY() * BLOCK_SIZE );
|
box.getY() * BLOCK_SIZE );
|
||||||
@ -532,8 +535,9 @@ void mouseUpAction( uint64_t flags, SDLPP::Scene &scene ) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
SDLPP::Vec2D< int > getSelectedObjectPosition() {
|
SDLPP::Vec2D< int > getSelectedObjectPosition() {
|
||||||
|
// -1 because we're indexing edit boxes from 1 (due to left arrow on map)
|
||||||
return global_vars.mouse.edit_box +
|
return global_vars.mouse.edit_box +
|
||||||
SDLPP::Vec2D< int >( global_vars.map.cur_page, 0 );
|
SDLPP::Vec2D< int >( global_vars.map.cur_page - 1, 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
mapObjectType &getSelectedObject() {
|
mapObjectType &getSelectedObject() {
|
||||||
@ -585,11 +589,10 @@ void placeTool( SDLPP::Scene &scene ) {
|
|||||||
global_vars.current_world_type;
|
global_vars.current_world_type;
|
||||||
std::get< MapObject::TERRAIN_ID >( obj ) =
|
std::get< MapObject::TERRAIN_ID >( obj ) =
|
||||||
global_vars.current_tool->getId();
|
global_vars.current_tool->getId();
|
||||||
// TODO why 1 +?
|
|
||||||
new_obj =
|
new_obj =
|
||||||
createTerrainBlock( global_vars.current_tool->getId(),
|
createTerrainBlock( global_vars.current_tool->getId(),
|
||||||
global_vars.current_world_type, renderer,
|
global_vars.current_world_type, renderer,
|
||||||
1 + global_vars.mouse.edit_box.getX(),
|
global_vars.mouse.edit_box.getX(),
|
||||||
global_vars.mouse.edit_box.getY(), true );
|
global_vars.mouse.edit_box.getY(), true );
|
||||||
new_obj->getCollisions()[0]->setId( EDITOR_TERRAIN_ID );
|
new_obj->getCollisions()[0]->setId( EDITOR_TERRAIN_ID );
|
||||||
break;
|
break;
|
||||||
@ -601,7 +604,7 @@ void placeTool( SDLPP::Scene &scene ) {
|
|||||||
std::get< MapObject::MODIFIER_TYPE >( obj ) = 0;
|
std::get< MapObject::MODIFIER_TYPE >( obj ) = 0;
|
||||||
std::get< MapObject::MODIFIER_DATA >( obj ) = 0;
|
std::get< MapObject::MODIFIER_DATA >( obj ) = 0;
|
||||||
new_obj = createMario( global_vars.current_world_type, renderer,
|
new_obj = createMario( global_vars.current_world_type, renderer,
|
||||||
1 + global_vars.mouse.edit_box.getX(),
|
global_vars.mouse.edit_box.getX(),
|
||||||
global_vars.mouse.edit_box.getY() );
|
global_vars.mouse.edit_box.getY() );
|
||||||
// remove mario if exists
|
// remove mario if exists
|
||||||
removeMario();
|
removeMario();
|
||||||
@ -618,7 +621,7 @@ void placeTool( SDLPP::Scene &scene ) {
|
|||||||
new_obj = createTerrainBlock(
|
new_obj = createTerrainBlock(
|
||||||
global_vars.current_tool->getId(),
|
global_vars.current_tool->getId(),
|
||||||
global_vars.current_world_type, renderer,
|
global_vars.current_world_type, renderer,
|
||||||
1 + global_vars.mouse.edit_box.getX(),
|
global_vars.mouse.edit_box.getX(),
|
||||||
global_vars.mouse.edit_box.getY(),
|
global_vars.mouse.edit_box.getY(),
|
||||||
global_vars.translucent_terrain_texture, true );
|
global_vars.translucent_terrain_texture, true );
|
||||||
new_obj->getCollisions()[0]->setId( EDITOR_TERRAIN_ID );
|
new_obj->getCollisions()[0]->setId( EDITOR_TERRAIN_ID );
|
||||||
@ -658,7 +661,7 @@ void pollEvents( SDLPP::Scene &scene ) {
|
|||||||
if ( global_vars.mouse.cur_flags == global_vars.mouse.prev_flags ) {
|
if ( global_vars.mouse.cur_flags == global_vars.mouse.prev_flags ) {
|
||||||
mouseUpAction( global_vars.mouse.cur_flags, scene );
|
mouseUpAction( global_vars.mouse.cur_flags, scene );
|
||||||
}
|
}
|
||||||
if ( global_vars.mouse.edit_box.getX() != -1 ) {
|
if ( global_vars.mouse.edit_box.getX() != 0 ) {
|
||||||
placeTool( scene );
|
placeTool( scene );
|
||||||
}
|
}
|
||||||
if ( global_vars.mouse.tool_box.getX() != -1 ) {
|
if ( global_vars.mouse.tool_box.getX() != -1 ) {
|
||||||
|
Loading…
Reference in New Issue
Block a user