Mario: added destructible modifier to editor
This commit is contained in:
+35
-15
@@ -80,6 +80,7 @@ void updateTool() {
|
||||
target_texture = global_vars.translucent_mario_texture;
|
||||
break;
|
||||
case BlockRole::MODIFIER:
|
||||
target_texture = global_vars.translucent_terrain_texture;
|
||||
break;
|
||||
case BlockRole::CHARACTER:
|
||||
break;
|
||||
@@ -290,21 +291,36 @@ void placeTool( SDLPP::Scene &scene ) {
|
||||
new_obj->getCollisions()[0]->setId( EDITOR_TERRAIN_ID );
|
||||
break;
|
||||
case VisitorType::Modifier:
|
||||
// TODO check if modifier or character
|
||||
std::get< MapObject::CHARACTER_TYPE >( obj ) = LandType::OVERWORLD;
|
||||
// TODO character ID
|
||||
std::get< MapObject::CHARACTER_ID >( obj ) = MARIO_ID;
|
||||
std::get< MapObject::MODIFIER_TYPE >( obj ) = 0;
|
||||
std::get< MapObject::MODIFIER_DATA >( obj ) = 0;
|
||||
new_obj = createMario( LandType::OVERWORLD, renderer,
|
||||
1 + global_vars.mouse.edit_box.getX(),
|
||||
global_vars.mouse.edit_box.getY() );
|
||||
// remove mario if exists
|
||||
removeMario();
|
||||
global_vars.mario = new_obj;
|
||||
global_vars.mario_pos = getSelectedObjectPosition();
|
||||
new_obj->getCollisions()[0]->setId( EDITOR_CHARACTER_ID );
|
||||
z_index = scene.getObjects().size() - 1;
|
||||
if(tool_type == BlockRole::CHARACTER) {
|
||||
std::get< MapObject::CHARACTER_TYPE >( obj ) = LandType::OVERWORLD;
|
||||
// TODO character ID
|
||||
std::get< MapObject::CHARACTER_ID >( obj ) = MARIO_ID;
|
||||
std::get< MapObject::MODIFIER_TYPE >( obj ) = 0;
|
||||
std::get< MapObject::MODIFIER_DATA >( obj ) = 0;
|
||||
new_obj = createMario( LandType::OVERWORLD, renderer,
|
||||
1 + global_vars.mouse.edit_box.getX(),
|
||||
global_vars.mouse.edit_box.getY() );
|
||||
// remove mario if exists
|
||||
removeMario();
|
||||
global_vars.mario = new_obj;
|
||||
global_vars.mario_pos = getSelectedObjectPosition();
|
||||
new_obj->getCollisions()[0]->setId( EDITOR_CHARACTER_ID );
|
||||
z_index = scene.getObjects().size() - 1;
|
||||
} else {
|
||||
// TODO data
|
||||
std::cout << "Want to set: " << (int)std::get< MapObject::MODIFIER_TYPE >( obj ) << std::endl;
|
||||
std::get< MapObject::MODIFIER_TYPE >( obj ) = global_vars.current_tool->getId();
|
||||
std::get< MapObject::MODIFIER_DATA >( obj ) = 0;
|
||||
std::cout << "SET MODIFIER_TYPE: " << (int)std::get< MapObject::MODIFIER_TYPE >( obj ) << std::endl;
|
||||
new_obj = createTerrainBlock(
|
||||
global_vars.current_tool->getId(), LandType::OVERWORLD,
|
||||
renderer, 1 + global_vars.mouse.edit_box.getX(),
|
||||
global_vars.mouse.edit_box.getY(), global_vars.translucent_terrain_texture, true );
|
||||
new_obj->getCollisions()[0]->setId( EDITOR_TERRAIN_ID );
|
||||
// TODO createModifierBlock
|
||||
dynamic_cast<MarioBlock*>(new_obj.get())->setTerrain(false);
|
||||
z_index = scene.getObjects().size() - 1;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -389,6 +405,10 @@ int main() {
|
||||
renderer, "sprites/terrain.png", MARIO_OVERWORLD_COLORKEY );
|
||||
g_mario_texture = std::make_shared< SDLPP::Texture >(
|
||||
renderer, "sprites/mario.png", MARIO_OVERWORLD_COLORKEY );
|
||||
g_translucent_terrain_texture =
|
||||
std::make_shared< SDLPP::Texture >( renderer, "sprites/terrain.png",
|
||||
MARIO_OVERWORLD_COLORKEY );
|
||||
g_translucent_terrain_texture->setAlpha( 100 );
|
||||
|
||||
auto scene = std::make_shared< SDLPP::Scene >( renderer );
|
||||
auto bg = std::make_shared< SDLPP::RectangleRender >(
|
||||
|
||||
Reference in New Issue
Block a user