OK. So that will delay my releases a bit more (in fact an half is already affected by the deformVertexes bug and unplayable today, so I have time ).
This is my current substitution script, based on “deprecated: y” tags from entities.yaml and from deprecation message from the engine itself:
Code: Select all
s/"info_alien_intermission"/"pos_alien_intermission"/
s/"info_human_intermission"/"pos_human_intermission"/
s/"info_player_intermission"/"pos_player_intermission"/
s/"target_location"/"pos_location"/
s/"info_player_deathmatch"/"pos_player_spawn"/
s/"info_player_start"/"pos_player_spawn"/
s/"target_position"/"pos_target"/
s/"info_notnull"/"pos_target"/
s/"misc_teleporter_dest"/"pos_target"/
s/"info_null"/"pos_target"/
s/"target_relay"/"ctrl_relay"/
s/"target_delay"/"ctrl_relay"/
s/"trigger_ammo"/"env_afx_ammo"/
s/"trigger_gravity"/"env_afx_gravity"/
s/"trigger_heal"/"env_afx_heal"/
s/"trigger_hurt"/"env_afx_hurt"/
s/"trigger_push"/"env_afx_push"/
s/"trigger_teleport"/"env_afx_teleport"/
s/"target_rumble"/"fx_rumble"/
s/"target_alien_win"/"game_end"/
s/"target_human_win"/"game_end"/
s/"target_kill"/"game_kill"/
s/"target_score"/"game_score"/
s/"misc_anim_model"/"gfx_animated_model"/
s/"misc_light_flare"/"gfx_light_flare"/
s/"misc_particle_system"/"gfx_particle_system"/
s/"misc_portal_camera"/"gfx_portal_camera"/
s/"misc_portal_surface"/"gfx_portal_surface"/
s/"trigger_buildable"/"sensor_buildable"/
s/"trigger_win"/"sensor_end"/
s/"trigger_class"/"sensor_player"/
s/"trigger_equipment"/"sensor_player"/
s/"trigger_multiple"/"sensor_player"/
s/"trigger_stage"/"sensor_stage"/
s/"trigger_always"/"sensor_start"/
s/"target_speaker"/"sfx_speaker"/
s/"misc_teleporter_dest"/"pos_target"/
s/^"team"/"group"/
s/^"count"/"amount"/
s/^"target[Ss]hader[Nn]ame"/"shader"/
As you see, the substitution is not bijective.
For example target_alien_win and target_human_win will raise now the same event since they are both replaced by game_end, a mapper can't do something different at the end of the game based upon who win. It's not a very big issue since if the game is ended, in this case it will probably affect decorative events only.
Other cases are more problematic, like when the human trigger the main door opening in pulse (without that, nobody can play), or when the outside does not hurt people (you lose gameplay stuff).
Maniy trigger_ keywords are replaced by only one sensor_player, and if we do the substitution, the maplogic is broken.
Also this substitution looks weird:
Code: Select all
s/"target_relay"/"ctrl_relay"/
s/"target_delay"/"ctrl_relay"/
Are you sure the second one must not be ctrl_delay with a d ?