/* Messages reçus par le GPMS */ ADD_ENTITY( CEntityId id, sint32 x, sint32 y, sint32 z, float theta, uint32 sheetid, uint8 continent, sint32 cell ) ADD_ENTITIES(uint32 entitiesCount, [CEntityId id, sint32 x, sint32 y, sint32 z, float theta, uint32 sheetid]+ ) REPLACE_ENTITY( CEntityId, CEntityId id, sint32 x, sint32 y, sint32 z, float theta, uint32 sheetid, uint8 continent, sint32 cell ) ADD_IA_OBJECT( CEntityId id, sint32 x, sint32 y, sint32 z, float theta, uint32 sheetid, uint8 continent, sint32 cell ) REMOVE_ENTITY( CEntityId id ) REMOVE_ENTITIES( list ids ) LOAD_CONTINENT( uint8 continentIndex, string name, string filePrefix ) REMOVE_CONTINENT( uint8 continentIndex ) CREATE_INDOOR_UNIT( uint32 cell ) CREATE_BUILDING( uint8 continent, string buildingId, CVectorD position ) CREATE_OBSTACLE( [string id, string file, CVectorD position, float angle]+ ) SET_OBSTACLE( [string id, bool obstacle]+ ) REMOVE_OBSTACLE( [string id]+ ) CREATE_CYL_TRIGGER( CEntityId id, uint8 continent, CVectorD position, float radius, float height ) TRIGGER_SUBSCRIBE( string patatName, uint16 patatId ) // patatId = user patat id associated to patatName, will be used for following messages instead of patatName TRIGGER_UNSUBSCRIBE( uint16 patatId ) UPDATE_ENTITY_POS( Sid sid, sint32 x, sint32 y, sint32 z, float theta, TGameCycle tick ) UPDATE_ENTITIES_POSITIONS( uint16 entitiesCount, [Sid sid, sint32 x, sint32 y, sint32 z, float theta, TGameCycle tick]+ ) UPDATE_ENTITIES_POS( [Sid sid, sint32 x, sint32 y, sint32 z, float theta, TGameCycle tick]+ ) ENTITY_TELEPORTATION( Sid sid, sint32 x, sint32 y, sint32 z, float theta, TGameCycle tick, uint8 continent, sint32 cell ) ENTITY_POS( Sid sid ) ATTACH( CEntityId father, CEntityId child, sint32 localX, sint32 localY, sint32 localZ ) DETACH( CEntityId child ) ACQUIRE_CONTROL( CEntityId slave, CEntityId master, sint32 localX, sint32 localY, sint32 localZ ) LEAVE_CONTROL( CEntityId master ) ACTIV_SELF( CEntityId player ) DESACTIV_SELF( CEntityId player ) ASK_VISION_ARROUND_ENTITY( CEntityId id, list propertiesSubstrcribe ) UNASK_VISION_ARROUND_ENTITY( CEntityId id ) DATA_CONNECTION( string propertyName, uint64 time, ... ) ASK_VISION_ZONE( ) AGENT_VISON( uint64 agentId, [sint32 zoneX, sint32 zoneY]+ ) VISION_REQUEST( sint32 requestId, sint32 x, sint32 y, sint32 range ) // all x, y and range expressed in mm /* Messages envoyes par le GPMS */ ADD_CREATURE( CEntityId id, uint32 sheetId ) // -> OPS ADD_CREATURES( [CEntityId id, uint32 sheetId]+ ) // -> OPS REMOVE_CREATURE( CEntityId id ) // -> OPS CORRECT_PLAYER_POSITION( CEntityId id, sint32 x, sint32 y, sint32 z) // -> IOS ENTITY_POS( CEntityId id, sint32 x, sint32 y, sint32 z, float theta) // in answer to ENTITY_POS VISION_DELTA_2( CMessage msg ) // -> FS, msg to decode using CPlayerVisionDelta: CPlayerVisionDelta::decodeVisionDelta(CMessage msg, list) VISIONS_ARROUND_ENTITIES( CMessage msg ) // -> CMS, msg to decode using CCombatVisionDelta: CCombatVisionDelta::decodeVisionDelta(CMessage msg, list) REMOVE_ENTITY( CEntityId id ) // -> AgS VAR_CONNECTION( uint8 frequencyUpdate, list properties ) // -> AgS ACK_VISION_ZONE( ) // -> AgS, in answer to ASK_VISION_ZONE AGENT_VISION( [CEntityId id, CVectorD position, CVector heading, float speed, uint32 sheetId]+ ) PTRIG_IN( sint32 triggerId, TDataSetRow entityIndex, CVectorD triggerPos ) // -> EGS PTRIG_OUT( sint32 triggerId, TDataSetRow entityIndex ) // -> EGS TRIG_IN( CEntityId triggerId, CEntityId entityId ) TRIG_OUT( CEntityId triggerId, CEntityId entityId ) TRIGGER_IN( [uint16 patatId, vector entitiesIn]+ ) TRIGGER_OUT( [uint16 patatId, vector entitiesOut]+ ) VISION_ANSWER( sint32 requestId, [CEntityId id, sint32 range]* ) // range in mm, cf. VISION_REQUEST USED_CONTINENTS ( vector< string > ) // vecteur contenant les noms de continents untilisés. L'index dans le vecteur est leur id de continent ENTER_CONTINENT ( CEntityId playerId , uint8 continentId )