Added delete shortcut key to editor

dev
Shariq Shah 6 years ago
parent 06d1eced8c
commit 24c3e5305a
  1. 6
      src/game/editor.c
  2. 14
      src/game/scene.c
  3. 2
      src/game/scene.h
  4. 2
      todo.txt

@ -1164,6 +1164,12 @@ void editor_on_key_release(const struct Event* event)
if(event->key.key == KEY_G) editor->grid_enabled = !editor->grid_enabled; if(event->key.key == KEY_G) editor->grid_enabled = !editor->grid_enabled;
if(event->key.key == KEY_ESCAPE) editor_entity_select(editor, NULL); if(event->key.key == KEY_ESCAPE) editor_entity_select(editor, NULL);
if(event->key.key == KEY_DELETE && editor->selected_entity)
{
editor->selected_entity->marked_for_deletion = true;
editor_entity_select(editor, NULL);
}
} }
void editor_tool_set(struct Editor* editor, int tool) void editor_tool_set(struct Editor* editor, int tool)

@ -78,7 +78,7 @@ void scene_destroy(struct Scene* scene)
{ {
assert(scene); assert(scene);
for(int i = 0; i < MAX_ENTITIES; i++) scene_entity_remove(scene, &scene->entities[i]); for(int i = 0; i < MAX_ENTITIES; i++) scene_entity_base_remove(scene, &scene->entities[i]);
for(int i = 0; i < MAX_CAMERAS; i++) scene_camera_remove(scene, &scene->cameras[i]); for(int i = 0; i < MAX_CAMERAS; i++) scene_camera_remove(scene, &scene->cameras[i]);
for(int i = 0; i < MAX_LIGHTS; i++) scene_light_remove(scene, &scene->lights[i]); for(int i = 0; i < MAX_LIGHTS; i++) scene_light_remove(scene, &scene->lights[i]);
for(int i = 0; i < MAX_STATIC_MESHES; i++) scene_static_mesh_remove(scene, &scene->static_meshes[i]); for(int i = 0; i < MAX_STATIC_MESHES; i++) scene_static_mesh_remove(scene, &scene->static_meshes[i]);
@ -105,7 +105,7 @@ void scene_post_update(struct Scene* scene)
if(entity->marked_for_deletion) if(entity->marked_for_deletion)
{ {
scene_entity_remove(scene, entity); scene_entity_base_remove(scene, entity);
continue; continue;
} }
@ -377,7 +377,7 @@ struct Sound_Source* scene_sound_source_create(struct Scene* scene, const char*
return new_sound_source; return new_sound_source;
} }
void scene_entity_remove(struct Scene* scene, struct Entity* entity) void scene_entity_base_remove(struct Scene* scene, struct Entity* entity)
{ {
assert(scene && entity && entity->id >= 0); assert(scene && entity && entity->id >= 0);
@ -393,13 +393,13 @@ void scene_entity_remove(struct Scene* scene, struct Entity* entity)
void scene_light_remove(struct Scene* scene, struct Light* light) void scene_light_remove(struct Scene* scene, struct Light* light)
{ {
assert(scene && light); assert(scene && light);
scene_entity_remove(scene, &light->base); scene_entity_base_remove(scene, &light->base);
} }
void scene_camera_remove(struct Scene* scene, struct Camera* camera) void scene_camera_remove(struct Scene* scene, struct Camera* camera)
{ {
assert(scene && camera); assert(scene && camera);
scene_entity_remove(scene, &camera->base); scene_entity_base_remove(scene, &camera->base);
} }
void scene_static_mesh_remove(struct Scene* scene, struct Static_Mesh* mesh) void scene_static_mesh_remove(struct Scene* scene, struct Static_Mesh* mesh)
@ -411,7 +411,7 @@ void scene_static_mesh_remove(struct Scene* scene, struct Static_Mesh* mesh)
if(mesh->collision.rigidbody) physics_body_remove(mesh->collision.rigidbody); if(mesh->collision.rigidbody) physics_body_remove(mesh->collision.rigidbody);
model_reset(&mesh->model, mesh); model_reset(&mesh->model, mesh);
scene_entity_remove(scene, &mesh->base); scene_entity_base_remove(scene, &mesh->base);
} }
void scene_sound_source_remove(struct Scene* scene, struct Sound_Source* source) void scene_sound_source_remove(struct Scene* scene, struct Sound_Source* source)
@ -420,7 +420,7 @@ void scene_sound_source_remove(struct Scene* scene, struct Sound_Source* source)
sound_source_instance_destroy(game_state_get()->sound, source->source_instance); sound_source_instance_destroy(game_state_get()->sound, source->source_instance);
source->source_instance = 0; source->source_instance = 0;
scene_entity_remove(scene, &source->base); scene_entity_base_remove(scene, &source->base);
} }
struct Entity* scene_entity_find(struct Scene* scene, const char* name) struct Entity* scene_entity_find(struct Scene* scene, const char* name)

@ -39,7 +39,7 @@ struct Camera* scene_camera_create(struct Scene* scene, const char* name,
struct Static_Mesh* scene_static_mesh_create(struct Scene* scene, const char* name, struct Entity* parent, const char* geometry_name, int material_type); struct Static_Mesh* scene_static_mesh_create(struct Scene* scene, const char* name, struct Entity* parent, const char* geometry_name, int material_type);
struct Sound_Source* scene_sound_source_create(struct Scene* scene, const char* name, struct Entity* parent, const char* filename, int type, bool loop, bool play); struct Sound_Source* scene_sound_source_create(struct Scene* scene, const char* name, struct Entity* parent, const char* filename, int type, bool loop, bool play);
void scene_entity_remove(struct Scene* scene, struct Entity* entity); void scene_entity_base_remove(struct Scene* scene, struct Entity* entity);
void scene_light_remove(struct Scene* scene, struct Light* light); void scene_light_remove(struct Scene* scene, struct Light* light);
void scene_camera_remove(struct Scene* scene, struct Camera* camera); void scene_camera_remove(struct Scene* scene, struct Camera* camera);
void scene_static_mesh_remove(struct Scene* scene, struct Static_Mesh* mesh); void scene_static_mesh_remove(struct Scene* scene, struct Static_Mesh* mesh);

@ -112,6 +112,7 @@ Bugs:
- Fix hang on fullscreen toggle - Fix hang on fullscreen toggle
- Fix axis lines not aligning with grid lines - Fix axis lines not aligning with grid lines
- Fix arc angles resetting when rotating - Fix arc angles resetting when rotating
- Fix editor camera right-click behaviour
Done: Done:
* Input * Input
@ -303,4 +304,5 @@ Done:
axis axis
* Disabled editor functionalites when console is toggled * Disabled editor functionalites when console is toggled
* Entity to file read/write * Entity to file read/write
* Added editor shortcut key to delete selected entity

Loading…
Cancel
Save