Fixed bugs with trigger

dev
Shariq Shah 6 years ago
parent ac16c151a3
commit 99b2abe0ec
  1. 15
      assets/entities/trigger.symtres
  2. 2
      src/common/version.h
  3. 4
      src/game/entity.h
  4. 7
      src/game/trigger.c
  5. 5
      todo.txt

@ -0,0 +1,15 @@
Entity
{
type : 9
scale : 1.000 1.000 1.000
rotation : 0.000 0.000 0.000 1.000
trigger_mask : 1
trigger_event : -1
active : true
position : 0.000 0.000 0.000
bouding_box_min : -0.500 -0.500 -0.500
trigger_type : 0
name : Trigger
bouding_box_max : 0.500 0.500 0.500
}

@ -4,7 +4,7 @@
/* Auto generated version file. DO NOT MODIFY */ /* Auto generated version file. DO NOT MODIFY */
#define SYMMETRY_VERSION_MAJOR 0 #define SYMMETRY_VERSION_MAJOR 0
#define SYMMETRY_VERSION_MINOR 1 #define SYMMETRY_VERSION_MINOR 1
#define SYMMETRY_VERSION_REVISION 328 #define SYMMETRY_VERSION_REVISION 329
#define SYMMETRY_VERSION_BRANCH "dev" #define SYMMETRY_VERSION_BRANCH "dev"
#endif #endif

@ -82,8 +82,8 @@ enum Entity_Ray_Mask
enum Trigger_Mask enum Trigger_Mask
{ {
TRIGM_PLAYER = 0, TRIGM_PLAYER = 1 << 0,
TRIGM_ENEMY = 1 << 0, TRIGM_ENEMY = 1 << 1,
TRIGM_ALL = TRIGM_PLAYER | TRIGM_ENEMY TRIGM_ALL = TRIGM_PLAYER | TRIGM_ENEMY
}; };

@ -62,6 +62,7 @@ void trigger_update_physics(struct Trigger* trigger, struct Scene* scene, float
{ {
fire_event = true; fire_event = true;
trigger->triggered = true; trigger->triggered = true;
trigger->count++;
scene_trigger_remove(scene, trigger); scene_trigger_remove(scene, trigger);
} }
break; break;
@ -76,6 +77,7 @@ void trigger_update_physics(struct Trigger* trigger, struct Scene* scene, float
else else
{ {
trigger->triggered = true; trigger->triggered = true;
trigger->count++;
fire_event = true; fire_event = true;
} }
} }
@ -83,10 +85,15 @@ void trigger_update_physics(struct Trigger* trigger, struct Scene* scene, float
case TRIG_CONTINUOUS: case TRIG_CONTINUOUS:
{ {
trigger->triggered = true; trigger->triggered = true;
trigger->count++;
fire_event = true; fire_event = true;
} }
break;
} }
if(fire_event)
log_message("event triggered!");
if(fire_event && trigger->trigger_event != -1) if(fire_event && trigger->trigger_event != -1)
{ {
struct Event_Manager* event_manager = game_state_get()->event_manager; struct Event_Manager* event_manager = game_state_get()->event_manager;

@ -1,5 +1,5 @@
Todo: Todo:
- Implement Triggers - Fix crash where if entity selected in editor is deleted in game mode and then returning to editor mode causes a crash
- Implement flag for ignoring collisions with certain entities - Implement flag for ignoring collisions with certain entities
- Implement separate property window for player related variables that can be shown in the editor similar to renderer settings etc - Implement separate property window for player related variables that can be shown in the editor similar to renderer settings etc
- Implement game gui either with a separate nuklear context or as part of existing context - Implement game gui either with a separate nuklear context or as part of existing context
@ -402,4 +402,5 @@ Done:
* Fix Turret losing target at diagonals * Fix Turret losing target at diagonals
* Add turret properties to property inspector * Add turret properties to property inspector
* Add another ambient sound_source entity as child to enemy entity * Add another ambient sound_source entity as child to enemy entity
* Add all sound source properties to propery inspector * Add all sound source properties to propery inspector
* Implement Triggers
Loading…
Cancel
Save