game: add choose_cdtrack

This commit is contained in:
Denis Pauk 2024-11-04 23:31:14 +02:00
parent be83c229e0
commit 67b2bc80ac
8 changed files with 51 additions and 2 deletions

View file

@ -79,6 +79,12 @@ object_big_fire_think(edict_t *self)
{ {
self->s.frame = (self->s.frame + 1) % 60; self->s.frame = (self->s.frame + 1) % 60;
self->nextthink = level.time + FRAMETIME; self->nextthink = level.time + FRAMETIME;
/* add particles */
gi.WriteByte(svc_temp_entity);
gi.WriteByte(TE_FLAME);
gi.WritePosition(self->s.origin);
gi.multicast(self->s.origin, MULTICAST_PVS);
} }
void void

View file

@ -1627,6 +1627,15 @@ SP_target_music(edict_t* self)
self->use = target_music_use; self->use = target_music_use;
} }
/*
* QUAKED target_sky (1 0 0) (-8 -8 -8) (8 8 8)
*
* Change sky parameters
* - sky: Environment map name
* - skyaxis: Vector axis for rotating sky
* - skyrotate: Speed of rotation (degrees/second)
* - skyautorotate: Disable to set sky rotation manually
*/
void void
target_sky_use(edict_t *self, edict_t *other, edict_t *activator) target_sky_use(edict_t *self, edict_t *other, edict_t *activator)
{ {

View file

@ -1124,3 +1124,33 @@ SP_trigger_monsterjump(edict_t *self)
self->touch = trigger_monsterjump_touch; self->touch = trigger_monsterjump_touch;
self->movedir[2] = st.height; self->movedir[2] = st.height;
} }
/*
* QUAKED choose_cdtrack (.5 .5 .5) ?
* Sets CD track
*
* style: CD Track Id
*/
void
choose_cdtrack_touch(edict_t *self, edict_t *other, cplane_t *plane /* unused */,
csurface_t *surf /* unused */)
{
if (!self)
{
return;
}
gi.configstring(CS_CDTRACK, va("%i", self->style));
}
void
SP_choose_cdtrack(edict_t *self)
{
if (!self)
{
return;
}
InitTrigger(self);
self->touch = choose_cdtrack_touch;
}

View file

@ -560,6 +560,7 @@ extern void chick_sight ( edict_t * self , edict_t * other ) ;
extern void chick_slash ( edict_t * self ) ; extern void chick_slash ( edict_t * self ) ;
extern void chick_stand ( edict_t * self ) ; extern void chick_stand ( edict_t * self ) ;
extern void chick_walk ( edict_t * self ) ; extern void chick_walk ( edict_t * self ) ;
extern void choose_cdtrack_touch ( edict_t * ent , edict_t * other , cplane_t * plane , csurface_t * surf ) ;
extern void cleanupHeal ( edict_t * ent, qboolean change_frame ) ; extern void cleanupHeal ( edict_t * ent, qboolean change_frame ) ;
extern void cleanupHealTarget ( edict_t * ent ) ; extern void cleanupHealTarget ( edict_t * ent ) ;
extern void commander_body_die ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage , vec3_t point ) ; extern void commander_body_die ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage , vec3_t point ) ;
@ -617,7 +618,7 @@ extern void drawbbox ( edict_t * self ) ;
extern void drop_make_touchable ( edict_t * ent ) ; extern void drop_make_touchable ( edict_t * ent ) ;
extern void drop_temp_touch ( edict_t * ent , edict_t * other , cplane_t * plane , csurface_t * surf ) ; extern void drop_temp_touch ( edict_t * ent , edict_t * other , cplane_t * plane , csurface_t * surf ) ;
extern void droptofloor ( edict_t * ent ) ; extern void droptofloor ( edict_t * ent ) ;
extern void dynamicspawn_touch(edict_t *self, edict_t *other, cplane_t *plane /* unused */, csurface_t *surf /* unused */); extern void dynamicspawn_touch ( edict_t * ent , edict_t * other , cplane_t * plane , csurface_t * surf ) ;
extern void enfbolt_touch ( edict_t * self , edict_t * other , cplane_t * plane, csurface_t *surf); extern void enfbolt_touch ( edict_t * self , edict_t * other , cplane_t * plane, csurface_t *surf);
extern void enforcer_attack ( edict_t * self ) ; extern void enforcer_attack ( edict_t * self ) ;
extern void enforcer_die ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage , vec3_t point ) ; extern void enforcer_die ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage , vec3_t point ) ;

View file

@ -522,6 +522,7 @@
{"chick_slash", (byte *)chick_slash}, {"chick_slash", (byte *)chick_slash},
{"chick_stand", (byte *)chick_stand}, {"chick_stand", (byte *)chick_stand},
{"chick_walk", (byte *)chick_walk}, {"chick_walk", (byte *)chick_walk},
{"choose_cdtrack_touch", (byte *)choose_cdtrack_touch},
{"cleanupHeal", (byte *)cleanupHeal}, {"cleanupHeal", (byte *)cleanupHeal},
{"cleanupHealTarget", (byte *)cleanupHealTarget}, {"cleanupHealTarget", (byte *)cleanupHealTarget},
{"commander_body_die", (byte *)commander_body_die}, {"commander_body_die", (byte *)commander_body_die},

View file

@ -29,6 +29,7 @@
extern void SP_CreateCoopSpots(edict_t * self); extern void SP_CreateCoopSpots(edict_t * self);
extern void SP_CreateUnnamedSpawn(edict_t * self); extern void SP_CreateUnnamedSpawn(edict_t * self);
extern void SP_FixCoopSpots(edict_t * self); extern void SP_FixCoopSpots(edict_t * self);
extern void SP_choose_cdtrack(edict_t *self);
extern void SP_dm_dball_ball(edict_t * self); extern void SP_dm_dball_ball(edict_t * self);
extern void SP_dm_dball_ball_start(edict_t * self); extern void SP_dm_dball_ball_start(edict_t * self);
extern void SP_dm_dball_goal(edict_t * self); extern void SP_dm_dball_goal(edict_t * self);

View file

@ -28,6 +28,7 @@
{"ammo_magslug", SP_xatrix_item}, {"ammo_magslug", SP_xatrix_item},
{"ammo_trap", SP_xatrix_item}, {"ammo_trap", SP_xatrix_item},
{"choose_cdtrack", SP_choose_cdtrack},
{"dm_dball_ball", SP_dm_dball_ball}, {"dm_dball_ball", SP_dm_dball_ball},
{"dm_dball_ball_start", SP_dm_dball_ball_start}, {"dm_dball_ball_start", SP_dm_dball_ball_start},
{"dm_dball_goal", SP_dm_dball_goal}, {"dm_dball_goal", SP_dm_dball_goal},

View file

@ -600,7 +600,7 @@ character_siernan2|models/monsters/siernan/laying/tris.fm|1.0|1.0|1.0|general|-1
character_ssithra_scout|models/monsters/ssithra/scout_scene/tris.fm|1.0|1.0|1.0|general|-26.0|-16.0|-13.0|26.0|16.0|13.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Ssithra scout|0.3|0.3|1.0 character_ssithra_scout|models/monsters/ssithra/scout_scene/tris.fm|1.0|1.0|1.0|general|-26.0|-16.0|-13.0|26.0|16.0|13.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Ssithra scout|0.3|0.3|1.0
character_ssithra_victim|models/monsters/Ssithra/cinematics/tris.fm|1.0|1.0|1.0|general|-40.0|-16.0|-2.0|40.0|16.0|2.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Ssithra torture victim|0.3|0.3|1.0 character_ssithra_victim|models/monsters/Ssithra/cinematics/tris.fm|1.0|1.0|1.0|general|-40.0|-16.0|-2.0|40.0|16.0|2.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Ssithra torture victim|0.3|0.3|1.0
character_tome|models/spells/book/tris.fm|1.0|1.0|1.0|general|-4.0|-8.0|-12.0|4.0|8.0|12.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Tome of Power|0.3|0.3|1.0 character_tome|models/spells/book/tris.fm|1.0|1.0|1.0|general|-4.0|-8.0|-12.0|4.0|8.0|12.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Tome of Power|0.3|0.3|1.0
choose_CDTrack||1.0|1.0|1.0|general|0.0|0.0|0.0|0.0|0.0|0.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Sets CD track|.5|.5|.5 choose_cdtrack||1.0|1.0|1.0|general|0.0|0.0|0.0|0.0|0.0|0.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Sets CD track|.5|.5|.5
env_bubbler||1.0|1.0|1.0|general|-8.0|-8.0|-8.0|8.0|8.0|8.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Bubbler|0.3|0.3|1.0 env_bubbler||1.0|1.0|1.0|general|-8.0|-8.0|-8.0|8.0|8.0|8.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Bubbler|0.3|0.3|1.0
env_dust||1.0|1.0|1.0|general|-8.0|-8.0|-8.0|8.0|8.0|8.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Dust (triggered)|0.3|0.3|1.0 env_dust||1.0|1.0|1.0|general|-8.0|-8.0|-8.0|8.0|8.0|8.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Dust (triggered)|0.3|0.3|1.0
env_fire||1.0|1.0|1.0|general|-8.0|-8.0|-8.0|8.0|8.0|8.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Flame effect. Does not emit light|0.3|0.3|1.0 env_fire||1.0|1.0|1.0|general|-8.0|-8.0|-8.0|8.0|8.0|8.0|shadow|0|0.0|0.0|0|0|0|0:0|0|0|none|Flame effect. Does not emit light|0.3|0.3|1.0