DEADSOFTWARE

textmap: mosnterid in triggers is fuckin' special (i HAET special fields!); workarounded
authorKetmar Dark <ketmar@ketmar.no-ip.org>
Wed, 30 Aug 2017 21:08:30 +0000 (00:08 +0300)
committerKetmar Dark <ketmar@ketmar.no-ip.org>
Wed, 30 Aug 2017 21:09:04 +0000 (00:09 +0300)
src/mapdef/mapdef.txt
src/shared/mapdef.inc
src/shared/xdynrec.pas

index db3a64fe7de8c6d1b20d16f2c3a58ab9ee103385..71e712f138c1fe05c01325febf0098730ef8d13d 100644 (file)
@@ -15,6 +15,7 @@
 //   `as txy` will use `tX` and `tY` for points
 //   `as wh` will use `Width` and `Height` for size
 //   `as twh` will use `tWidth` and `tHeight` for size
+//   `as monsterid`: special hack for triggers: monster record number+1 in binary (so 0 means "none")
 
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -398,7 +399,7 @@ TriggerData for (TRIGGER_PRESS, TRIGGER_ON, TRIGGER_OFF, TRIGGER_ONOFF) {
   Size is "size" type size offset 8 as twh;
   Wait is "wait" type ushort offset 12;
   Count is "count" type ushort offset 14;
-  MonsterID is "monsterid" type int offset 16 monster;
+  MonsterID is "monsterid" type int offset 16 monster as monsterid;
   ExtRandom is "extrandom" type bool offset 20;
 }
 
index a25866fb33c674ae5bbb90b3779ad303fe8bf740..3ebc917df62bd7c01617fe03fc7932d17c409995 100644 (file)
@@ -477,38 +477,43 @@ const defaultMapDef: AnsiString = ''+
   #101#105#103#104#116#96#32#102#111#114#32#115#105#122#101#10#47#47#32#32#32+
   #96#97#115#32#116#119#104#96#32#119#105#108#108#32#117#115#101#32#96#116#87+
   #105#100#116#104#96#32#97#110#100#32#96#116#72#101#105#103#104#116#96#32#102+
-  #111#114#32#115#105#122#101#10#10#10#47#47#47#47#47#47#47#47#47#47#47#47#47+
+  #111#114#32#115#105#122#101#10#47#47#32#32#32#96#97#115#32#109#111#110#115+
+  #116#101#114#105#100#96#58#32#115#112#101#99#105#97#108#32#104#97#99#107#32+
+  #102#111#114#32#116#114#105#103#103#101#114#115#58#32#109#111#110#115#116+
+  #101#114#32#114#101#99#111#114#100#32#110#117#109#98#101#114#43#49#32#105+
+  #110#32#98#105#110#97#114#121#32#40#115#111#32#48#32#109#101#97#110#115#32+
+  #34#110#111#110#101#34#41#10#10#10#47#47#47#47#47#47#47#47#47#47#47#47#47#47+
   #47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47+
   #47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47+
-  #47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#10#47#47#32#109#97#105+
-  #110#32#98#108#111#99#107#115#10#84#77#97#112#72#101#97#100#101#114#82#101+
-  #99#95#49#32#105#115#32#34#109#97#112#34#32#115#105#122#101#32#52#53#50#32+
-  #98#121#116#101#115#32#104#101#97#100#101#114#32#98#105#110#98#108#111#99+
-  #107#32#55#32#123#10#32#32#47#47#95#32#105#115#32#34#118#101#114#115#105#111+
-  #110#34#32#116#121#112#101#32#117#105#110#116#32#109#105#110#118#97#108#117+
-  #101#32#49#32#109#97#120#118#97#108#117#101#32#49#59#10#32#32#77#97#112#78+
-  #97#109#101#32#105#115#32#34#110#97#109#101#34#32#116#121#112#101#32#99#104+
-  #97#114#91#51#50#93#32#111#102#102#115#101#116#32#48#59#10#32#32#77#97#112+
-  #65#117#116#104#111#114#32#105#115#32#34#97#117#116#104#111#114#34#32#116+
-  #121#112#101#32#99#104#97#114#91#51#50#93#32#111#102#102#115#101#116#32#51+
-  #50#32#100#101#102#97#117#108#116#32#34#34#32#111#109#105#116#100#101#102#97+
-  #117#108#116#59#10#32#32#77#97#112#68#101#115#99#114#105#112#116#105#111#110+
-  #32#105#115#32#34#100#101#115#99#114#105#112#116#105#111#110#34#32#116#121+
-  #112#101#32#99#104#97#114#91#50#53#54#93#32#111#102#102#115#101#116#32#54#52+
-  #32#100#101#102#97#117#108#116#32#34#34#32#111#109#105#116#100#101#102#97+
-  #117#108#116#59#10#32#32#77#117#115#105#99#78#97#109#101#32#105#115#32#34+
-  #109#117#115#105#99#34#32#116#121#112#101#32#99#104#97#114#91#54#52#93#32+
-  #111#102#102#115#101#116#32#51#50#48#32#100#101#102#97#117#108#116#32#39#83+
-  #116#97#110#100#97#114#116#46#119#97#100#58#68#50#68#77#85#83#92#208#159#208+
-  #160#208#158#208#161#208#162#208#158#208#162#208#144#39#32#111#109#105#116+
-  #100#101#102#97#117#108#116#59#10#32#32#83#107#121#78#97#109#101#32#105#115+
-  #32#34#115#107#121#34#32#116#121#112#101#32#99#104#97#114#91#54#52#93#32#111+
-  #102#102#115#101#116#32#51#56#52#32#100#101#102#97#117#108#116#32#39#83#116+
-  #97#110#100#97#114#116#46#119#97#100#58#68#50#68#83#75#89#92#82#83#75#89#49+
-  #39#32#111#109#105#116#100#101#102#97#117#108#116#59#10#32#32#47#47#87#105+
-  #100#116#104#32#105#115#32#34#119#105#100#116#104#34#32#116#121#112#101#32+
-  #117#115#104#111#114#116#32#111#102#102#115#101#116#32#52#52#56#59#10#32#32+
-  #47#47#72#101#105#103#104#116#32#105#115#32#34#104#101#105#103#104#116#34#32+
+  #47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#47#10#47#47#32#109#97#105#110+
+  #32#98#108#111#99#107#115#10#84#77#97#112#72#101#97#100#101#114#82#101#99#95+
+  #49#32#105#115#32#34#109#97#112#34#32#115#105#122#101#32#52#53#50#32#98#121+
+  #116#101#115#32#104#101#97#100#101#114#32#98#105#110#98#108#111#99#107#32#55+
+  #32#123#10#32#32#47#47#95#32#105#115#32#34#118#101#114#115#105#111#110#34#32+
+  #116#121#112#101#32#117#105#110#116#32#109#105#110#118#97#108#117#101#32#49+
+  #32#109#97#120#118#97#108#117#101#32#49#59#10#32#32#77#97#112#78#97#109#101+
+  #32#105#115#32#34#110#97#109#101#34#32#116#121#112#101#32#99#104#97#114#91+
+  #51#50#93#32#111#102#102#115#101#116#32#48#59#10#32#32#77#97#112#65#117#116+
+  #104#111#114#32#105#115#32#34#97#117#116#104#111#114#34#32#116#121#112#101+
+  #32#99#104#97#114#91#51#50#93#32#111#102#102#115#101#116#32#51#50#32#100#101+
+  #102#97#117#108#116#32#34#34#32#111#109#105#116#100#101#102#97#117#108#116+
+  #59#10#32#32#77#97#112#68#101#115#99#114#105#112#116#105#111#110#32#105#115+
+  #32#34#100#101#115#99#114#105#112#116#105#111#110#34#32#116#121#112#101#32+
+  #99#104#97#114#91#50#53#54#93#32#111#102#102#115#101#116#32#54#52#32#100#101+
+  #102#97#117#108#116#32#34#34#32#111#109#105#116#100#101#102#97#117#108#116+
+  #59#10#32#32#77#117#115#105#99#78#97#109#101#32#105#115#32#34#109#117#115+
+  #105#99#34#32#116#121#112#101#32#99#104#97#114#91#54#52#93#32#111#102#102+
+  #115#101#116#32#51#50#48#32#100#101#102#97#117#108#116#32#39#83#116#97#110+
+  #100#97#114#116#46#119#97#100#58#68#50#68#77#85#83#92#208#159#208#160#208+
+  #158#208#161#208#162#208#158#208#162#208#144#39#32#111#109#105#116#100#101+
+  #102#97#117#108#116#59#10#32#32#83#107#121#78#97#109#101#32#105#115#32#34+
+  #115#107#121#34#32#116#121#112#101#32#99#104#97#114#91#54#52#93#32#111#102+
+  #102#115#101#116#32#51#56#52#32#100#101#102#97#117#108#116#32#39#83#116#97+
+  #110#100#97#114#116#46#119#97#100#58#68#50#68#83#75#89#92#82#83#75#89#49#39+
+  #32#111#109#105#116#100#101#102#97#117#108#116#59#10#32#32#47#47#87#105#100+
+  #116#104#32#105#115#32#34#119#105#100#116#104#34#32#116#121#112#101#32#117+
+  #115#104#111#114#116#32#111#102#102#115#101#116#32#52#52#56#59#10#32#32#47+
+  #47#72#101#105#103#104#116#32#105#115#32#34#104#101#105#103#104#116#34#32+
   #116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#52+
   #53#48#59#10#32#32#83#105#122#101#32#105#115#32#34#115#105#122#101#34#32#116+
   #121#112#101#32#115#105#122#101#32#111#102#102#115#101#116#32#52#52#56#32#97+
@@ -960,189 +965,190 @@ const defaultMapDef: AnsiString = ''+
   #116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#49+
   #52#59#10#32#32#77#111#110#115#116#101#114#73#68#32#105#115#32#34#109#111+
   #110#115#116#101#114#105#100#34#32#116#121#112#101#32#105#110#116#32#111#102+
-  #102#115#101#116#32#49#54#32#109#111#110#115#116#101#114#59#10#32#32#69#120+
-  #116#82#97#110#100#111#109#32#105#115#32#34#101#120#116#114#97#110#100#111+
-  #109#34#32#116#121#112#101#32#98#111#111#108#32#111#102#102#115#101#116#32+
-  #50#48#59#10#125#10#10#84#114#105#103#103#101#114#68#97#116#97#32#102#111+
-  #114#32#84#82#73#71#71#69#82#95#83#69#67#82#69#84#32#123#10#125#10#10#84#114+
-  #105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82#95+
-  #84#69#88#84#85#82#69#32#123#10#32#32#65#99#116#105#118#97#116#101#79#110#99+
-  #101#32#105#115#32#34#97#99#116#105#118#97#116#101#111#110#99#101#34#32#116+
-  #121#112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#48#59#10#32#32+
-  #65#110#105#109#79#110#99#101#32#105#115#32#34#97#110#105#109#97#116#101#111+
-  #110#99#101#34#32#116#121#112#101#32#98#111#111#108#32#111#102#102#115#101+
-  #116#32#49#59#10#125#10#10#84#114#105#103#103#101#114#68#97#116#97#32#102+
-  #111#114#32#84#82#73#71#71#69#82#95#83#79#85#78#68#32#123#10#32#32#83#111+
-  #117#110#100#78#97#109#101#32#105#115#32#34#115#111#117#110#100#110#97#109+
-  #101#34#32#116#121#112#101#32#99#104#97#114#91#54#52#93#32#111#102#102#115+
-  #101#116#32#48#59#10#32#32#86#111#108#117#109#101#32#105#115#32#34#118#111+
-  #108#117#109#101#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102+
-  #115#101#116#32#54#52#59#10#32#32#80#97#110#32#105#115#32#34#112#97#110#34+
-  #32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#54+
-  #53#59#10#32#32#76#111#99#97#108#32#105#115#32#34#108#111#99#97#108#34#32+
-  #116#121#112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#54#54#59#10+
-  #32#32#80#108#97#121#67#111#117#110#116#32#105#115#32#34#112#108#97#121#99+
-  #111#117#110#116#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102+
-  #115#101#116#32#54#55#59#10#32#32#83#111#117#110#100#83#119#105#116#99#104+
-  #32#105#115#32#34#115#111#117#110#100#115#119#105#116#99#104#34#32#116#121+
-  #112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#54#56#59#10#125#10+
+  #102#115#101#116#32#49#54#32#109#111#110#115#116#101#114#32#97#115#32#109+
+  #111#110#115#116#101#114#105#100#59#10#32#32#69#120#116#82#97#110#100#111+
+  #109#32#105#115#32#34#101#120#116#114#97#110#100#111#109#34#32#116#121#112+
+  #101#32#98#111#111#108#32#111#102#102#115#101#116#32#50#48#59#10#125#10#10+
+  #84#114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69+
+  #82#95#83#69#67#82#69#84#32#123#10#125#10#10#84#114#105#103#103#101#114#68+
+  #97#116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#84#69#88#84#85#82#69#32+
+  #123#10#32#32#65#99#116#105#118#97#116#101#79#110#99#101#32#105#115#32#34#97+
+  #99#116#105#118#97#116#101#111#110#99#101#34#32#116#121#112#101#32#98#111+
+  #111#108#32#111#102#102#115#101#116#32#48#59#10#32#32#65#110#105#109#79#110+
+  #99#101#32#105#115#32#34#97#110#105#109#97#116#101#111#110#99#101#34#32#116+
+  #121#112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#49#59#10#125#10+
   #10#84#114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71+
-  #69#82#95#83#80#65#87#78#77#79#78#83#84#69#82#32#123#10#32#32#77#111#110#80+
-  #111#115#32#105#115#32#34#112#111#115#105#116#105#111#110#34#32#116#121#112+
-  #101#32#112#111#105#110#116#32#111#102#102#115#101#116#32#48#59#10#32#32#77+
-  #111#110#84#121#112#101#32#105#115#32#34#116#121#112#101#34#32#116#121#112+
-  #101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#56#59#10#32#32#77+
-  #111#110#72#101#97#108#116#104#32#105#115#32#34#104#101#97#108#116#104#34#32+
-  #116#121#112#101#32#105#110#116#32#111#102#102#115#101#116#32#49#50#59#10#32+
-  #32#77#111#110#68#105#114#32#105#115#32#34#100#105#114#101#99#116#105#111+
-  #110#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116+
-  #32#49#54#32#101#110#117#109#32#68#105#114#84#121#112#101#59#10#32#32#77#111+
-  #110#65#99#116#105#118#101#32#105#115#32#34#97#99#116#105#118#101#34#32#116+
-  #121#112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#49#55#59#10#32+
-  #32#77#111#110#67#111#117#110#116#32#105#115#32#34#99#111#117#110#116#34#32+
-  #116#121#112#101#32#105#110#116#32#111#102#102#115#101#116#32#50#48#59#10#32+
-  #32#77#111#110#69#102#102#101#99#116#32#105#115#32#34#101#102#102#101#99#116+
-  #34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32+
-  #50#52#59#10#32#32#77#111#110#77#97#120#32#105#115#32#34#109#97#120#34#32+
-  #116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#50+
-  #54#59#10#32#32#77#111#110#68#101#108#97#121#32#105#115#32#34#100#101#108#97+
-  #121#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101+
-  #116#32#50#56#59#10#32#32#77#111#110#66#101#104#97#118#32#105#115#32#34#98+
-  #101#104#97#118#105#111#117#114#34#32#116#121#112#101#32#117#98#121#116#101+
-  #32#111#102#102#115#101#116#32#51#48#59#10#125#10#10#84#114#105#103#103#101+
-  #114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#83#80#65#87#78+
-  #73#84#69#77#32#123#10#32#32#73#116#101#109#80#111#115#32#105#115#32#34#112+
+  #69#82#95#83#79#85#78#68#32#123#10#32#32#83#111#117#110#100#78#97#109#101#32+
+  #105#115#32#34#115#111#117#110#100#110#97#109#101#34#32#116#121#112#101#32+
+  #99#104#97#114#91#54#52#93#32#111#102#102#115#101#116#32#48#59#10#32#32#86+
+  #111#108#117#109#101#32#105#115#32#34#118#111#108#117#109#101#34#32#116#121+
+  #112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#54#52#59#10#32+
+  #32#80#97#110#32#105#115#32#34#112#97#110#34#32#116#121#112#101#32#117#98+
+  #121#116#101#32#111#102#102#115#101#116#32#54#53#59#10#32#32#76#111#99#97+
+  #108#32#105#115#32#34#108#111#99#97#108#34#32#116#121#112#101#32#98#111#111+
+  #108#32#111#102#102#115#101#116#32#54#54#59#10#32#32#80#108#97#121#67#111+
+  #117#110#116#32#105#115#32#34#112#108#97#121#99#111#117#110#116#34#32#116+
+  #121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#54#55#59#10+
+  #32#32#83#111#117#110#100#83#119#105#116#99#104#32#105#115#32#34#115#111#117+
+  #110#100#115#119#105#116#99#104#34#32#116#121#112#101#32#98#111#111#108#32+
+  #111#102#102#115#101#116#32#54#56#59#10#125#10#10#84#114#105#103#103#101#114+
+  #68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#83#80#65#87#78#77#79+
+  #78#83#84#69#82#32#123#10#32#32#77#111#110#80#111#115#32#105#115#32#34#112+
   #111#115#105#116#105#111#110#34#32#116#121#112#101#32#112#111#105#110#116#32+
-  #111#102#102#115#101#116#32#48#59#10#32#32#73#116#101#109#84#121#112#101#32+
-  #105#115#32#34#116#121#112#101#34#32#116#121#112#101#32#117#98#121#116#101+
-  #32#111#102#102#115#101#116#32#56#59#10#32#32#73#116#101#109#70#97#108#108+
-  #115#32#105#115#32#34#103#114#97#118#105#116#121#34#32#116#121#112#101#32#98+
-  #111#111#108#32#111#102#102#115#101#116#32#57#59#10#32#32#73#116#101#109#79+
-  #110#108#121#68#77#32#105#115#32#34#100#109#111#110#108#121#34#32#116#121+
-  #112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#49#48#59#10#32#32+
-  #73#116#101#109#67#111#117#110#116#32#105#115#32#34#99#111#117#110#116#34#32+
-  #116#121#112#101#32#105#110#116#32#111#102#102#115#101#116#32#49#50#59#10#32+
-  #32#73#116#101#109#69#102#102#101#99#116#32#105#115#32#34#101#102#102#101#99+
-  #116#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116+
-  #32#49#54#59#10#32#32#73#116#101#109#77#97#120#32#105#115#32#34#109#97#120+
-  #34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116+
-  #32#49#56#59#10#32#32#73#116#101#109#68#101#108#97#121#32#105#115#32#34#100+
-  #101#108#97#121#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102+
-  #102#115#101#116#32#50#48#59#10#125#10#10#84#114#105#103#103#101#114#68#97+
-  #116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#77#85#83#73#67#32#123#10+
-  #32#32#77#117#115#105#99#78#97#109#101#32#105#115#32#34#110#97#109#101#34#32+
-  #116#121#112#101#32#99#104#97#114#91#54#52#93#32#111#102#102#115#101#116#32+
-  #48#59#10#32#32#77#117#115#105#99#65#99#116#105#111#110#32#105#115#32#34#97+
+  #111#102#102#115#101#116#32#48#59#10#32#32#77#111#110#84#121#112#101#32#105+
+  #115#32#34#116#121#112#101#34#32#116#121#112#101#32#117#98#121#116#101#32+
+  #111#102#102#115#101#116#32#56#59#10#32#32#77#111#110#72#101#97#108#116#104+
+  #32#105#115#32#34#104#101#97#108#116#104#34#32#116#121#112#101#32#105#110+
+  #116#32#111#102#102#115#101#116#32#49#50#59#10#32#32#77#111#110#68#105#114+
+  #32#105#115#32#34#100#105#114#101#99#116#105#111#110#34#32#116#121#112#101+
+  #32#117#98#121#116#101#32#111#102#102#115#101#116#32#49#54#32#101#110#117+
+  #109#32#68#105#114#84#121#112#101#59#10#32#32#77#111#110#65#99#116#105#118+
+  #101#32#105#115#32#34#97#99#116#105#118#101#34#32#116#121#112#101#32#98#111+
+  #111#108#32#111#102#102#115#101#116#32#49#55#59#10#32#32#77#111#110#67#111+
+  #117#110#116#32#105#115#32#34#99#111#117#110#116#34#32#116#121#112#101#32+
+  #105#110#116#32#111#102#102#115#101#116#32#50#48#59#10#32#32#77#111#110#69+
+  #102#102#101#99#116#32#105#115#32#34#101#102#102#101#99#116#34#32#116#121+
+  #112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#50#52#59#10#32+
+  #32#77#111#110#77#97#120#32#105#115#32#34#109#97#120#34#32#116#121#112#101+
+  #32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#50#54#59#10#32#32+
+  #77#111#110#68#101#108#97#121#32#105#115#32#34#100#101#108#97#121#34#32#116+
+  #121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#50#56+
+  #59#10#32#32#77#111#110#66#101#104#97#118#32#105#115#32#34#98#101#104#97#118+
+  #105#111#117#114#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102+
+  #115#101#116#32#51#48#59#10#125#10#10#84#114#105#103#103#101#114#68#97#116+
+  #97#32#102#111#114#32#84#82#73#71#71#69#82#95#83#80#65#87#78#73#84#69#77#32+
+  #123#10#32#32#73#116#101#109#80#111#115#32#105#115#32#34#112#111#115#105#116+
+  #105#111#110#34#32#116#121#112#101#32#112#111#105#110#116#32#111#102#102#115+
+  #101#116#32#48#59#10#32#32#73#116#101#109#84#121#112#101#32#105#115#32#34+
+  #116#121#112#101#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102+
+  #115#101#116#32#56#59#10#32#32#73#116#101#109#70#97#108#108#115#32#105#115+
+  #32#34#103#114#97#118#105#116#121#34#32#116#121#112#101#32#98#111#111#108#32+
+  #111#102#102#115#101#116#32#57#59#10#32#32#73#116#101#109#79#110#108#121#68+
+  #77#32#105#115#32#34#100#109#111#110#108#121#34#32#116#121#112#101#32#98#111+
+  #111#108#32#111#102#102#115#101#116#32#49#48#59#10#32#32#73#116#101#109#67+
+  #111#117#110#116#32#105#115#32#34#99#111#117#110#116#34#32#116#121#112#101+
+  #32#105#110#116#32#111#102#102#115#101#116#32#49#50#59#10#32#32#73#116#101+
+  #109#69#102#102#101#99#116#32#105#115#32#34#101#102#102#101#99#116#34#32#116+
+  #121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#49#54#59#10+
+  #32#32#73#116#101#109#77#97#120#32#105#115#32#34#109#97#120#34#32#116#121+
+  #112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#49#56#59+
+  #10#32#32#73#116#101#109#68#101#108#97#121#32#105#115#32#34#100#101#108#97+
+  #121#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101+
+  #116#32#50#48#59#10#125#10#10#84#114#105#103#103#101#114#68#97#116#97#32#102+
+  #111#114#32#84#82#73#71#71#69#82#95#77#85#83#73#67#32#123#10#32#32#77#117+
+  #115#105#99#78#97#109#101#32#105#115#32#34#110#97#109#101#34#32#116#121#112+
+  #101#32#99#104#97#114#91#54#52#93#32#111#102#102#115#101#116#32#48#59#10#32+
+  #32#77#117#115#105#99#65#99#116#105#111#110#32#105#115#32#34#97#99#116#105+
+  #111#110#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101+
+  #116#32#54#52#59#10#125#10#10#84#114#105#103#103#101#114#68#97#116#97#32#102+
+  #111#114#32#84#82#73#71#71#69#82#95#80#85#83#72#32#123#10#32#32#80#117#115+
+  #104#65#110#103#108#101#32#105#115#32#34#97#110#103#108#101#34#32#116#121+
+  #112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#48#59#10+
+  #32#32#80#117#115#104#70#111#114#99#101#32#105#115#32#34#102#111#114#99#101+
+  #34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32+
+  #50#59#10#32#32#82#101#115#101#116#86#101#108#32#105#115#32#34#114#101#115+
+  #101#116#118#101#108#111#99#105#116#121#34#32#116#121#112#101#32#98#111#111+
+  #108#32#111#102#102#115#101#116#32#51#59#10#125#10#10#84#114#105#103#103#101+
+  #114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#83#67#79#82#69+
+  #32#123#10#32#32#83#99#111#114#101#65#99#116#105#111#110#32#105#115#32#34#97+
   #99#116#105#111#110#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102+
-  #102#115#101#116#32#54#52#59#10#125#10#10#84#114#105#103#103#101#114#68#97+
-  #116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#80#85#83#72#32#123#10#32+
-  #32#80#117#115#104#65#110#103#108#101#32#105#115#32#34#97#110#103#108#101#34+
-  #32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32+
-  #48#59#10#32#32#80#117#115#104#70#111#114#99#101#32#105#115#32#34#102#111+
-  #114#99#101#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115+
-  #101#116#32#50#59#10#32#32#82#101#115#101#116#86#101#108#32#105#115#32#34+
-  #114#101#115#101#116#118#101#108#111#99#105#116#121#34#32#116#121#112#101#32+
-  #98#111#111#108#32#111#102#102#115#101#116#32#51#59#10#125#10#10#84#114#105+
-  #103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#83+
-  #67#79#82#69#32#123#10#32#32#83#99#111#114#101#65#99#116#105#111#110#32#105+
-  #115#32#34#97#99#116#105#111#110#34#32#116#121#112#101#32#117#98#121#116#101+
-  #32#111#102#102#115#101#116#32#48#59#10#32#32#83#99#111#114#101#67#111#117+
-  #110#116#32#105#115#32#34#99#111#117#110#116#34#32#116#121#112#101#32#117#98+
-  #121#116#101#32#111#102#102#115#101#116#32#49#59#10#32#32#83#99#111#114#101+
-  #84#101#97#109#32#105#115#32#34#116#101#97#109#34#32#116#121#112#101#32#117+
-  #98#121#116#101#32#111#102#102#115#101#116#32#50#59#10#32#32#83#99#111#114+
-  #101#67#111#110#32#105#115#32#34#99#111#110#115#111#108#101#34#32#116#121+
-  #112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#51#59#10#32#32#83+
-  #99#111#114#101#77#115#103#32#105#115#32#34#109#101#115#115#97#103#101#34#32+
-  #116#121#112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#52#59#10+
-  #125#10#10#84#114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82+
-  #73#71#71#69#82#95#77#69#83#83#65#71#69#32#123#10#32#32#77#101#115#115#97+
-  #103#101#75#105#110#100#32#105#115#32#34#107#105#110#100#34#32#116#121#112+
-  #101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#48#59#10#32#32#77+
-  #101#115#115#97#103#101#83#101#110#100#84#111#32#105#115#32#34#115#101#110+
-  #100#116#111#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115+
-  #101#116#32#49#59#10#32#32#77#101#115#115#97#103#101#84#101#120#116#32#105+
-  #115#32#34#116#101#120#116#34#32#116#121#112#101#32#99#104#97#114#91#49#48+
-  #48#93#32#111#102#102#115#101#116#32#50#59#10#32#32#77#101#115#115#97#103+
-  #101#84#105#109#101#32#105#115#32#34#116#105#109#101#34#32#116#121#112#101+
-  #32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#49#48#50#59#10#125+
-  #10#10#84#114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71+
-  #71#69#82#95#68#65#77#65#71#69#32#123#10#32#32#68#97#109#97#103#101#86#97+
-  #108#117#101#32#105#115#32#34#97#109#111#117#110#116#34#32#116#121#112#101+
-  #32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#48#59#10#32#32#68+
-  #97#109#97#103#101#73#110#116#101#114#118#97#108#32#105#115#32#34#105#110+
-  #116#101#114#118#97#108#34#32#116#121#112#101#32#117#115#104#111#114#116#32+
-  #111#102#102#115#101#116#32#50#59#10#125#10#10#84#114#105#103#103#101#114#68+
-  #97#116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#72#69#65#76#84#72#32+
-  #123#10#32#32#72#101#97#108#86#97#108#117#101#32#105#115#32#34#97#109#111+
-  #117#110#116#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102+
-  #115#101#116#32#48#59#10#32#32#72#101#97#108#73#110#116#101#114#118#97#108+
-  #32#105#115#32#34#105#110#116#101#114#118#97#108#34#32#116#121#112#101#32+
-  #117#115#104#111#114#116#32#111#102#102#115#101#116#32#50#59#10#32#32#72#101+
-  #97#108#77#97#120#32#105#115#32#34#109#97#120#34#32#116#121#112#101#32#98+
-  #111#111#108#32#111#102#102#115#101#116#32#52#59#10#32#32#72#101#97#108#83+
-  #105#108#101#110#116#32#105#115#32#34#115#105#108#101#110#116#34#32#116#121+
-  #112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#53#59#10#125#10#10+
-  #84#114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69+
-  #82#95#83#72#79#84#32#123#10#32#32#83#104#111#116#80#111#115#32#105#115#32+
-  #34#112#111#115#105#116#105#111#110#34#32#116#121#112#101#32#112#111#105#110+
-  #116#32#111#102#102#115#101#116#32#48#59#10#32#32#83#104#111#116#84#121#112+
-  #101#32#105#115#32#34#116#121#112#101#34#32#116#121#112#101#32#117#98#121+
-  #116#101#32#111#102#102#115#101#116#32#56#32#101#110#117#109#32#84#114#105+
-  #103#103#101#114#83#104#111#116#59#10#32#32#83#104#111#116#84#97#114#103#101+
-  #116#32#105#115#32#34#116#97#114#103#101#116#34#32#116#121#112#101#32#117#98+
-  #121#116#101#32#111#102#102#115#101#116#32#57#32#101#110#117#109#32#84#114+
-  #105#103#103#101#114#83#104#111#116#84#97#114#103#101#116#59#10#32#32#83#104+
-  #111#116#83#111#117#110#100#32#105#115#32#34#115#105#108#101#110#116#34#32+
-  #116#121#112#101#32#110#101#103#98#111#111#108#32#111#102#102#115#101#116#32+
-  #49#48#59#32#47#47#32#110#101#103#98#111#111#108#33#10#32#32#83#104#111#116+
-  #65#105#109#32#105#115#32#34#97#105#109#34#32#116#121#112#101#32#98#121#116+
-  #101#32#111#102#102#115#101#116#32#49#49#59#10#32#32#83#104#111#116#80#97+
-  #110#101#108#73#68#32#105#115#32#34#112#97#110#101#108#105#100#34#32#116#121+
-  #112#101#32#105#110#116#32#111#102#102#115#101#116#32#49#50#59#10#32#32#83+
-  #104#111#116#73#110#116#83#105#103#104#116#32#105#115#32#34#115#105#103#104+
-  #116#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101+
-  #116#32#49#54#59#10#32#32#83#104#111#116#65#110#103#108#101#32#105#115#32#34+
-  #97#110#103#108#101#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111+
-  #102#102#115#101#116#32#49#56#59#10#32#32#83#104#111#116#87#97#105#116#32+
-  #105#115#32#34#119#97#105#116#34#32#116#121#112#101#32#117#115#104#111#114+
-  #116#32#111#102#102#115#101#116#32#50#48#59#10#32#32#83#104#111#116#65#99#99+
-  #117#114#97#99#121#32#105#115#32#34#97#99#99#117#114#97#99#121#34#32#116#121+
-  #112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#50#50#59+
-  #10#32#32#83#104#111#116#65#109#109#111#32#105#115#32#34#97#109#109#111#34+
+  #102#115#101#116#32#48#59#10#32#32#83#99#111#114#101#67#111#117#110#116#32+
+  #105#115#32#34#99#111#117#110#116#34#32#116#121#112#101#32#117#98#121#116+
+  #101#32#111#102#102#115#101#116#32#49#59#10#32#32#83#99#111#114#101#84#101+
+  #97#109#32#105#115#32#34#116#101#97#109#34#32#116#121#112#101#32#117#98#121+
+  #116#101#32#111#102#102#115#101#116#32#50#59#10#32#32#83#99#111#114#101#67+
+  #111#110#32#105#115#32#34#99#111#110#115#111#108#101#34#32#116#121#112#101+
+  #32#98#111#111#108#32#111#102#102#115#101#116#32#51#59#10#32#32#83#99#111+
+  #114#101#77#115#103#32#105#115#32#34#109#101#115#115#97#103#101#34#32#116+
+  #121#112#101#32#98#111#111#108#32#111#102#102#115#101#116#32#52#59#10#125#10+
+  #10#84#114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71+
+  #69#82#95#77#69#83#83#65#71#69#32#123#10#32#32#77#101#115#115#97#103#101#75+
+  #105#110#100#32#105#115#32#34#107#105#110#100#34#32#116#121#112#101#32#117+
+  #98#121#116#101#32#111#102#102#115#101#116#32#48#59#10#32#32#77#101#115#115+
+  #97#103#101#83#101#110#100#84#111#32#105#115#32#34#115#101#110#100#116#111+
+  #34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32+
+  #49#59#10#32#32#77#101#115#115#97#103#101#84#101#120#116#32#105#115#32#34+
+  #116#101#120#116#34#32#116#121#112#101#32#99#104#97#114#91#49#48#48#93#32+
+  #111#102#102#115#101#116#32#50#59#10#32#32#77#101#115#115#97#103#101#84#105+
+  #109#101#32#105#115#32#34#116#105#109#101#34#32#116#121#112#101#32#117#115+
+  #104#111#114#116#32#111#102#102#115#101#116#32#49#48#50#59#10#125#10#10#84+
+  #114#105#103#103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82+
+  #95#68#65#77#65#71#69#32#123#10#32#32#68#97#109#97#103#101#86#97#108#117#101+
+  #32#105#115#32#34#97#109#111#117#110#116#34#32#116#121#112#101#32#117#115+
+  #104#111#114#116#32#111#102#102#115#101#116#32#48#59#10#32#32#68#97#109#97+
+  #103#101#73#110#116#101#114#118#97#108#32#105#115#32#34#105#110#116#101#114+
+  #118#97#108#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102+
+  #115#101#116#32#50#59#10#125#10#10#84#114#105#103#103#101#114#68#97#116#97+
+  #32#102#111#114#32#84#82#73#71#71#69#82#95#72#69#65#76#84#72#32#123#10#32#32+
+  #72#101#97#108#86#97#108#117#101#32#105#115#32#34#97#109#111#117#110#116#34+
   #32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32+
-  #50#52#59#10#32#32#83#104#111#116#73#110#116#82#101#108#111#97#100#32#105+
-  #115#32#34#114#101#108#111#97#100#34#32#116#121#112#101#32#117#115#104#111+
-  #114#116#32#111#102#102#115#101#116#32#50#54#59#10#125#10#10#84#114#105#103+
-  #103#101#114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#69#70#70+
-  #69#67#84#32#123#10#32#32#70#88#67#111#117#110#116#32#105#115#32#34#99#111+
-  #117#110#116#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115+
-  #101#116#32#48#59#10#32#32#70#88#84#121#112#101#32#105#115#32#34#116#121#112+
+  #48#59#10#32#32#72#101#97#108#73#110#116#101#114#118#97#108#32#105#115#32#34+
+  #105#110#116#101#114#118#97#108#34#32#116#121#112#101#32#117#115#104#111#114+
+  #116#32#111#102#102#115#101#116#32#50#59#10#32#32#72#101#97#108#77#97#120#32+
+  #105#115#32#34#109#97#120#34#32#116#121#112#101#32#98#111#111#108#32#111#102+
+  #102#115#101#116#32#52#59#10#32#32#72#101#97#108#83#105#108#101#110#116#32+
+  #105#115#32#34#115#105#108#101#110#116#34#32#116#121#112#101#32#98#111#111+
+  #108#32#111#102#102#115#101#116#32#53#59#10#125#10#10#84#114#105#103#103#101+
+  #114#68#97#116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#83#72#79#84#32+
+  #123#10#32#32#83#104#111#116#80#111#115#32#105#115#32#34#112#111#115#105#116+
+  #105#111#110#34#32#116#121#112#101#32#112#111#105#110#116#32#111#102#102#115+
+  #101#116#32#48#59#10#32#32#83#104#111#116#84#121#112#101#32#105#115#32#34+
+  #116#121#112#101#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102+
+  #115#101#116#32#56#32#101#110#117#109#32#84#114#105#103#103#101#114#83#104+
+  #111#116#59#10#32#32#83#104#111#116#84#97#114#103#101#116#32#105#115#32#34+
+  #116#97#114#103#101#116#34#32#116#121#112#101#32#117#98#121#116#101#32#111+
+  #102#102#115#101#116#32#57#32#101#110#117#109#32#84#114#105#103#103#101#114+
+  #83#104#111#116#84#97#114#103#101#116#59#10#32#32#83#104#111#116#83#111#117+
+  #110#100#32#105#115#32#34#115#105#108#101#110#116#34#32#116#121#112#101#32+
+  #110#101#103#98#111#111#108#32#111#102#102#115#101#116#32#49#48#59#32#47#47+
+  #32#110#101#103#98#111#111#108#33#10#32#32#83#104#111#116#65#105#109#32#105+
+  #115#32#34#97#105#109#34#32#116#121#112#101#32#98#121#116#101#32#111#102#102+
+  #115#101#116#32#49#49#59#10#32#32#83#104#111#116#80#97#110#101#108#73#68#32+
+  #105#115#32#34#112#97#110#101#108#105#100#34#32#116#121#112#101#32#105#110+
+  #116#32#111#102#102#115#101#116#32#49#50#59#10#32#32#83#104#111#116#73#110+
+  #116#83#105#103#104#116#32#105#115#32#34#115#105#103#104#116#34#32#116#121+
+  #112#101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#49#54#59+
+  #10#32#32#83#104#111#116#65#110#103#108#101#32#105#115#32#34#97#110#103#108+
+  #101#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102#115#101+
+  #116#32#49#56#59#10#32#32#83#104#111#116#87#97#105#116#32#105#115#32#34#119+
+  #97#105#116#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102#102+
+  #115#101#116#32#50#48#59#10#32#32#83#104#111#116#65#99#99#117#114#97#99#121+
+  #32#105#115#32#34#97#99#99#117#114#97#99#121#34#32#116#121#112#101#32#117+
+  #115#104#111#114#116#32#111#102#102#115#101#116#32#50#50#59#10#32#32#83#104+
+  #111#116#65#109#109#111#32#105#115#32#34#97#109#109#111#34#32#116#121#112+
+  #101#32#117#115#104#111#114#116#32#111#102#102#115#101#116#32#50#52#59#10#32+
+  #32#83#104#111#116#73#110#116#82#101#108#111#97#100#32#105#115#32#34#114#101+
+  #108#111#97#100#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111#102+
+  #102#115#101#116#32#50#54#59#10#125#10#10#84#114#105#103#103#101#114#68#97+
+  #116#97#32#102#111#114#32#84#82#73#71#71#69#82#95#69#70#70#69#67#84#32#123+
+  #10#32#32#70#88#67#111#117#110#116#32#105#115#32#34#99#111#117#110#116#34#32+
+  #116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#48#59+
+  #10#32#32#70#88#84#121#112#101#32#105#115#32#34#116#121#112#101#34#32#116+
+  #121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#49#59#10#32+
+  #32#70#88#83#117#98#84#121#112#101#32#105#115#32#34#115#117#98#116#121#112+
   #101#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116+
-  #32#49#59#10#32#32#70#88#83#117#98#84#121#112#101#32#105#115#32#34#115#117+
-  #98#116#121#112#101#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102+
-  #102#115#101#116#32#50#59#10#32#32#70#88#67#111#108#111#114#82#32#105#115#32+
-  #34#99#111#108#111#114#114#34#32#116#121#112#101#32#117#98#121#116#101#32+
-  #111#102#102#115#101#116#32#51#59#10#32#32#70#88#67#111#108#111#114#71#32+
-  #105#115#32#34#99#111#108#111#114#103#34#32#116#121#112#101#32#117#98#121+
-  #116#101#32#111#102#102#115#101#116#32#52#59#10#32#32#70#88#67#111#108#111+
-  #114#66#32#105#115#32#34#99#111#108#111#114#98#34#32#116#121#112#101#32#117+
-  #98#121#116#101#32#111#102#102#115#101#116#32#53#59#10#32#32#70#88#80#111+
-  #115#32#105#115#32#34#112#111#115#105#116#105#111#110#34#32#116#121#112#101+
-  #32#117#98#121#116#101#32#111#102#102#115#101#116#32#54#59#10#32#32#70#88#87+
-  #97#105#116#32#105#115#32#34#119#97#105#116#34#32#116#121#112#101#32#117#115+
-  #104#111#114#116#32#111#102#102#115#101#116#32#56#59#10#32#32#70#88#86#101+
-  #108#88#32#105#115#32#34#118#101#108#120#34#32#116#121#112#101#32#98#121#116+
-  #101#32#111#102#102#115#101#116#32#49#48#59#10#32#32#70#88#86#101#108#89#32+
-  #105#115#32#34#118#101#108#121#34#32#116#121#112#101#32#98#121#116#101#32+
-  #111#102#102#115#101#116#32#49#49#59#10#32#32#70#88#83#112#114#101#97#100#76+
-  #32#105#115#32#34#115#112#114#101#97#100#108#34#32#116#121#112#101#32#117#98+
-  #121#116#101#32#111#102#102#115#101#116#32#49#50#59#10#32#32#70#88#83#112+
-  #114#101#97#100#82#32#105#115#32#34#115#112#114#101#97#100#114#34#32#116#121+
-  #112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#49#51#59#10#32+
-  #32#70#88#83#112#114#101#97#100#85#32#105#115#32#34#115#112#114#101#97#100+
-  #117#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116+
-  #32#49#52#59#10#32#32#70#88#83#112#114#101#97#100#68#32#105#115#32#34#115+
-  #112#114#101#97#100#100#34#32#116#121#112#101#32#117#98#121#116#101#32#111+
-  #102#102#115#101#116#32#49#53#59#10#125#10
+  #32#50#59#10#32#32#70#88#67#111#108#111#114#82#32#105#115#32#34#99#111#108+
+  #111#114#114#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115+
+  #101#116#32#51#59#10#32#32#70#88#67#111#108#111#114#71#32#105#115#32#34#99+
+  #111#108#111#114#103#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102+
+  #102#115#101#116#32#52#59#10#32#32#70#88#67#111#108#111#114#66#32#105#115#32+
+  #34#99#111#108#111#114#98#34#32#116#121#112#101#32#117#98#121#116#101#32#111+
+  #102#102#115#101#116#32#53#59#10#32#32#70#88#80#111#115#32#105#115#32#34#112+
+  #111#115#105#116#105#111#110#34#32#116#121#112#101#32#117#98#121#116#101#32+
+  #111#102#102#115#101#116#32#54#59#10#32#32#70#88#87#97#105#116#32#105#115#32+
+  #34#119#97#105#116#34#32#116#121#112#101#32#117#115#104#111#114#116#32#111+
+  #102#102#115#101#116#32#56#59#10#32#32#70#88#86#101#108#88#32#105#115#32#34+
+  #118#101#108#120#34#32#116#121#112#101#32#98#121#116#101#32#111#102#102#115+
+  #101#116#32#49#48#59#10#32#32#70#88#86#101#108#89#32#105#115#32#34#118#101+
+  #108#121#34#32#116#121#112#101#32#98#121#116#101#32#111#102#102#115#101#116+
+  #32#49#49#59#10#32#32#70#88#83#112#114#101#97#100#76#32#105#115#32#34#115+
+  #112#114#101#97#100#108#34#32#116#121#112#101#32#117#98#121#116#101#32#111+
+  #102#102#115#101#116#32#49#50#59#10#32#32#70#88#83#112#114#101#97#100#82#32+
+  #105#115#32#34#115#112#114#101#97#100#114#34#32#116#121#112#101#32#117#98+
+  #121#116#101#32#111#102#102#115#101#116#32#49#51#59#10#32#32#70#88#83#112+
+  #114#101#97#100#85#32#105#115#32#34#115#112#114#101#97#100#117#34#32#116#121+
+  #112#101#32#117#98#121#116#101#32#111#102#102#115#101#116#32#49#52#59#10#32+
+  #32#70#88#83#112#114#101#97#100#68#32#105#115#32#34#115#112#114#101#97#100+
+  #100#34#32#116#121#112#101#32#117#98#121#116#101#32#111#102#102#115#101#116+
+  #32#49#53#59#10#125#10
 ;
\ No newline at end of file
index 456a01376f25c8ce60c8aa65236d78cc90ad0927..87aaba0d00fb9ab7dfffbc6c4d5ce0ed51e95457 100644 (file)
@@ -70,6 +70,7 @@ type
     mInternal: Boolean;
     mNegBool: Boolean;
     mBitSetUnique: Boolean; // bitset can contain only one value
+    mAsMonsterId: Boolean; // special hack for triggers: monster record number+1 in binary (so 0 means "none")
     // default value
     mDefUnparsed: AnsiString;
     mDefSVal: AnsiString; // default string value
@@ -336,6 +337,7 @@ begin
   mEBSTypeName := '';
   mEBSType := nil;
   mBitSetUnique := false;
+  mAsMonsterId := false;
   mNegBool := false;
   mRecRefId := '';
   if (mType = TType.TList) then mRVal := TDynRecList.Create();
@@ -376,6 +378,7 @@ begin
   result.mInternal := mInternal;
   result.mNegBool := mNegBool;
   result.mBitSetUnique := mBitSetUnique;
+  result.mAsMonsterId := mAsMonsterId;
   result.mDefUnparsed := mDefUnparsed;
   result.mDefSVal := mDefSVal;
   result.mDefIVal := mDefIVal;
@@ -535,6 +538,7 @@ begin
     TEBS.TEnum: result += ' enum '+mEBSTypeName;
     TEBS.TBitSet: begin result += ' bitset '; if mBitSetUnique then result += 'unique '; result += mEBSTypeName; end;
   end;
+  if mAsMonsterId then result += ' as monsterid';
   if mHasDefault and (Length(mDefUnparsed) > 0) then result += ' default '+mDefUnparsed;
   if mSepPosSize then
   begin
@@ -592,6 +596,7 @@ var
   lmaxdim: Integer;
   lebs: TDynField.TEBS;
   unique: Boolean;
+  asmonid: Boolean;
 begin
   fldpasname := '';
   fldname := '';
@@ -609,6 +614,7 @@ begin
   hasdefInt := false;
   hasdefId := false;
   unique := false;
+  asmonid := false;
   lmaxdim := -1;
   lebs := TDynField.TEBS.TNone;
 
@@ -644,6 +650,7 @@ begin
       else if pr.eatId('wh') then aswh := true
       else if pr.eatId('txy') then begin asxy := true; ast := true; end
       else if pr.eatId('twh') then begin aswh := true; ast := true; end
+      else if pr.eatId('monsterid') then begin asmonid := true; end
       else raise Exception.Create(Format('invalid field ''%s'' as what?', [fldname]));
       continue;
     end;
@@ -745,6 +752,7 @@ begin
   self.mEBS := lebs;
   self.mEBSTypeName := fldrecname;
   self.mBitSetUnique := unique;
+  self.mAsMonsterId := asmonid;
   self.mMaxDim := lmaxdim;
   self.mBinOfs := fldofs;
   self.mRecOfs := fldofs;
@@ -806,11 +814,12 @@ begin
         begin
           f := mOwner.findRecordNumByType(mEBSTypeName, mRecRef);
           if (f < 0) then raise Exception.Create(Format('record reference type ''%s'' in field ''%s'' not found in record list', [mEBSTypeName, mName]));
+          if mAsMonsterId then Inc(f);
           if (f > maxv) then raise Exception.Create(Format('record reference type ''%s'' in field ''%s'' has too big index', [mEBSTypeName, mName]));
         end
         else
         begin
-          f := -1;
+          if mAsMonsterId then f := 0 else f := -1;
         end;
         case mType of
           TType.TByte, TType.TUByte: writeInt(st, Byte(f));
@@ -1101,6 +1110,7 @@ begin
             TType.TUInt: f := readLongWord(st);
             else raise Exception.Create(Format('invalid non-numeric type ''%s'' for field ''%s'' of record ''%s''', [getTypeName(mType), mName, mEBSTypeName]));
           end;
+          if mAsMonsterId then Dec(f);
           if (f < 0) then mRecRefId := '' else mRecRefId := Format('%s%d', [mEBSTypeName, f]);
         end;
         mDefined := true;