From 9e9ff4e6b6fb6ba272aaba45102b915c0221317c Mon Sep 17 00:00:00 2001 From: Ketmar Dark Date: Thu, 31 Aug 2017 00:08:30 +0300 Subject: [PATCH] textmap: mosnterid in triggers is fuckin' special (i HAET special fields!); workarounded --- src/mapdef/mapdef.txt | 3 +- src/shared/mapdef.inc | 426 +++++++++++++++++++++-------------------- src/shared/xdynrec.pas | 12 +- 3 files changed, 229 insertions(+), 212 deletions(-) diff --git a/src/mapdef/mapdef.txt b/src/mapdef/mapdef.txt index db3a64f..71e712f 100644 --- a/src/mapdef/mapdef.txt +++ b/src/mapdef/mapdef.txt @@ -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; } diff --git a/src/shared/mapdef.inc b/src/shared/mapdef.inc index a25866f..3ebc917 100644 --- a/src/shared/mapdef.inc +++ b/src/shared/mapdef.inc @@ -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 diff --git a/src/shared/xdynrec.pas b/src/shared/xdynrec.pas index 456a013..87aaba0 100644 --- a/src/shared/xdynrec.pas +++ b/src/shared/xdynrec.pas @@ -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; -- 2.29.2