#define FIELD(Flags, Type,Name) if ( sf & (Flags) ) Write##Type(MSG_ENTITY, self.Name);
-#define WriteVector(to,Name) WriteCoord(to,Name##_x); WriteCoord(to,Name##_y); WriteCoord(to,Name##_z)
-#define WriteVector2D(to,Name) WriteCoord(to,Name##_x); WriteCoord(to,Name##_y)
#define MSLE(Name,Fields) \
else if ( self.classname == #Name ) { \
if ( sf & MINIG_SF_CREATE ) WriteString(MSG_ENTITY,self.owner.netname); \
// only use on minigame entities or entities with a minigame owner
bool minigame_SendEntity(entity this, entity to, int sf)
{
- WriteByte(MSG_ENTITY, ENT_CLIENT_MINIGAME);
+ WriteHeader(MSG_ENTITY, ENT_CLIENT_MINIGAME);
WriteByte(MSG_ENTITY, sf);
if ( sf & MINIG_SF_CREATE )
return 0;
minigame_rmplayer(player.active_minigame,player);
}
- entity player_pointer = spawn();
+ entity player_pointer = new(minigame_player);
int mgteam = minigame_session.minigame_event(minigame_session,"join",player,player_pointer);
if ( mgteam )
{
- player_pointer.classname = "minigame_player";
player_pointer.owner = minigame_session;
player_pointer.minigame_players = player;
player_pointer.team = mgteam;
entity e = minigame_get_descriptor(minigame);
if ( e )
{
- entity minig = spawn();
- minig.classname = "minigame";
+ entity minig = new(minigame);
minig.netname = strzone(strcat(e.netname,"_",ftos(num_for_edict(minig))));
minig.descriptor = e;
minig.minigame_event = e.minigame_event;
return world;
}
-bool MinigameImpulse(int imp)
-{SELFPARAM();
- entity e = minigame_find_player(self);
- if ( imp && self.active_minigame && e )
+bool MinigameImpulse(entity this, int imp)
+{
+ if (!this.active_minigame) return false;
+ entity e = minigame_find_player(this);
+ if ( imp && this.active_minigame && e )
{
- return self.active_minigame.minigame_event(self.active_minigame,"impulse",e,imp);
+ return this.active_minigame.minigame_event(this.active_minigame,"impulse",e,imp);
}
return false;
}