About assets format

Ask questions about mapping in general, and show off your in-progress work.
User avatar
illwieckz
Project Head
Posts: 718
Joined: Sat Aug 11, 2012 7:22 pm UTC
Location: France
Contact:

Re: About assets format

Post by illwieckz »

For your information, entities.yaml say:

Code: Select all

- name: trigger_multiple
  aliasof: sensor_player
  deprecated: y

But if I replace trigger_multiple by sensor_player in this entity in pulse.bsp:

Code: Select all

{
"classname" "trigger_multiple"
"wait" "60"
"target" "main_door_event1"
"model" "*2"
}

The main door will never open.

Are you sure all these replacements are safe ? In fact if I replace all deprecated things in entities according to the "deprecated: y" of entities.yaml, pulse is unplayable: doors don't open, there is no outside hurt…

In fact I have done the substitution on all maps I have, and all the test I have done were ok, but now I'm testing pulse and it's completely broken if I do all these substitutions, perhaps I broke other things in other map I will discover later…

Last edited by illwieckz on Wed Mar 04, 2015 3:53 pm UTC, edited 1 time in total.
User avatar
Viech
Project Head
Posts: 2139
Joined: Fri Aug 03, 2012 11:50 pm UTC
Location: Berlin

Re: About assets format

Post by Viech »

Maybe the new entity names need to use the new keywords, too? On the other hand, I don't think the new names have been tested much so far and we'll need to fix the code if they don't.

Responsible for: Arch Linux package & torrent distribution, Parpax (map), Chameleon (map texture editor), Sloth (material file generator), gameplay design & programming, artistic direction

User avatar
illwieckz
Project Head
Posts: 718
Joined: Sat Aug 11, 2012 7:22 pm UTC
Location: France
Contact:

Re: About assets format

Post by illwieckz »

OK. So that will delay my releases a bit more :confused: (in fact an half is already affected by the deformVertexes bug and unplayable today, so I have time :tongue: ).

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 ?

User avatar
Viech
Project Head
Posts: 2139
Joined: Fri Aug 03, 2012 11:50 pm UTC
Location: Berlin

Re: About assets format

Post by Viech »

illwieckz wrote:

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.

I'm pretty sure Tim added a new keyword that controls if/what target is triggered based on what team wins. Note that the entities.def was written by Neu and not Tim (who did the refactoring), so it may be that something is missing or incorrect.

illwieckz wrote:

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).

Either these are bugs or new/different keywords are necessary. I can look in the code for you if you have a specific question, but it should all be in sg_spawn.cpp and related files (everything starting with sg_spawn, also sg_entities.cpp).

illwieckz wrote:

Maniy trigger_ keywords are replaced by only one sensor_player, and if we do the substitution, the maplogic is broken.

The distinction is probably in the keywords, too.

illwieckz wrote:

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 ?

That could be correct, a delay would just be a relay that specifies the "delay" keyword or so.

Responsible for: Arch Linux package & torrent distribution, Parpax (map), Chameleon (map texture editor), Sloth (material file generator), gameplay design & programming, artistic direction

User avatar
illwieckz
Project Head
Posts: 718
Joined: Sat Aug 11, 2012 7:22 pm UTC
Location: France
Contact:

Re: About assets format

Post by illwieckz »

Well, it broke transit too: no one can open the train doors now. :tongue:

User avatar
illwieckz
Project Head
Posts: 718
Joined: Sat Aug 11, 2012 7:22 pm UTC
Location: France
Contact:

Re: About assets format

Post by illwieckz »

Perhaps what I do is correct unless it does not work, since I read that in the code:

Code: Select all

- name: trigger_multiple
aliasof: sensor_player
deprecated: y

Code: Select all

- name: sensor_player
extend: [chain_active]
# bug: doesn't fire with minimum set of properties (target)
# src/gamelogic/game/g_spawn_sensor.c:492 - set qtrue there?

And this is an entity that broke if I substitute trigger_multiple with sensor_player:

Code: Select all

{
"classname" "trigger_multiple"
"wait" "60"
"target" "main_door_event1"
"model" "*2"
}

Edit: I don't know where it is today inside that file, but that file is there now: src/gamelogic/sgame/sg_spawn_sensor.cpp.

User avatar
Viech
Project Head
Posts: 2139
Joined: Fri Aug 03, 2012 11:50 pm UTC
Location: Berlin

Re: About assets format

Post by Viech »

This should be fixed now. Any progress with your conversion toolchain? :smile:

Responsible for: Arch Linux package & torrent distribution, Parpax (map), Chameleon (map texture editor), Sloth (material file generator), gameplay design & programming, artistic direction

User avatar
illwieckz
Project Head
Posts: 718
Joined: Sat Aug 11, 2012 7:22 pm UTC
Location: France
Contact:

Re: About assets format

Post by illwieckz »

Yes, many things is fixed since 0afa5ed, pulse has another bug, when I trigger the main door, the sound is heard, but the door does not open. Normally the door happen some time after the sound is heard, so perhaps the bug is on the delay mechanic.

About the toolchain, I did not find more time the last weeks to work on, I will go back on it soon. :smile:

Except the pulse map with the bug explained above, many maps can now be released. I just need some time to do it. :wink:



Last bumped by illwieckz on Sat Jul 04, 2015 7:59 pm UTC.
Post Reply