Bug #554

Line_active xg not checking correct line(s)?

Added by vermil over 13 years ago. Updated almost 10 years ago.

Target version:
Start date:
% Done:



Tested under 1.8.6 and Beta5.x and consulted with Dani who deemed it something worthy of posting here.

Attached is an example map wad containing an in wad line_active xg def.

In the example line A is a chain def checking once a second whether all lines with a certain tag are active before it will activate itself. In this case the tag being checked is 50 and there are two lines with a tag of 50 (B+C). These two lines have xg def's on them that have a time value of -1 so they will never deactivate once activated.

Once lines B+C are activated, Line A should activate and it's chain should change the line type on line marked by the Skull switch to a player_use activated end_level def (Line D).

However, the problem is that Line A is never activating for some reason. Checking what is going on in game with XG-Dev1 in 1.9 Beta5 reveals this;

XL_TraverseLines: Line 1, ref (NONE : 50)
Line 1: ABORTING EVENT due to line_active test

  1. Walls to shot (Lines B+C)

Line Type {
ID = 1000;
Flags = "ltf_other_shoot ltf_player_shoot ltf_missile_hit_a";
Flags2 = "ltf2_when_act ltf2_any";
Class = "ltc_wall_texture";
Type = "lat_timed_off";
Count = 1;
Time = -1;
Ip0 = "lref_self";
Ip3 = "ZZWOLF5";
Ip4 = "ZZWOLF5";
Ip5 = "ZZWOLF5";

  1. XG def on Line D before Line A has changed it

Line Type {
ID= 1001;
Comment = "Exit Switch Before Wall Shot";
Class = command
Flags = player_use_a
Flags2 = when_act | any
Act Message = "You haven't shot the walls";
Act sound = "radio"

  1. Activate this Chain def when all lines with a tag of 50 are activated (Line A). Doesn't seem to work

Line Type {
ID= 1500
Class = chain_sequence
Count = 1
Type = timed_off
Flags = ticker
Flags2 = "ltf2_when_act ltf2_any ltf2_line_act";
Time = -1
Ticker Tics = 35
Ip0 = done_d
Ip1 = 1501
Ap4 = lref_tagged
Ap5 = 50

Line Type {
ID= 1501;
Comment = "Make Exit Switch work";
Count= 1;
Class = line_type
Type= timed_off
Flags2 = "ltf2_when_act ltf2_any";
Time= 1;
Ip0 = "lref_tagged"
Ip1 = 30
Ip2 = 1502;

  1. End Level def placed on Line D by Line A once it activates

Line Type {
ID = 1502;
Flags2 = "ltf_player_use ltf2_when_act ltf2_any";
Class = "ltc_end_level";
Count = 1;
Time = -1;
Ip5 = "1";

Labels: XG


#3 Updated by danij over 13 years ago

There were numerous problems in your XG Line Type definitions in the DD_DEFNS lump in Test.wad. After fixing the problems, everything seemed to work as expected in my current svn head build.

I've attached the fixed version of your Test.wad to this tracker item.

Also available in: Atom PDF