XML:BINA/OBJC/DOOR

From OniGalore
< XML:BINA‎ | OBJC
Revision as of 16:57, 27 March 2021 by Iritscen (talk | contribs) (correcting prev/next types in nav header)
Jump to navigation Jump to search
DOOR : Door
XML modding tips
  • See HERE to start learning about XML modding.
  • See HERE if you are searching for information on how to handle object coordinates.
  • See HERE for some typical modding errors and their causes.
XML.png
XML

AKEV << Other file types >> CONS

TMBD << Other BINA >> ONIE

CONS << Other OBJC >> FLAG

switch to OBD page


general information

  • The xml code on this page was tested with onisplit version 0.9.61.0 and 0.9.82.0
  • BINACJBODOOR.oni is level specific. (It can be found in AE/AEInstaller/vanilla/levelX_Final.dat)
  • All original doors and their locklights can be seen HERE.


file structure

<?xml version="1.0" encoding="utf-8"?>
<Oni>
   <Objects>
        [...]
   </Objects>
</Oni>


[...] means at least one door. Paste all door data into there (this includes <DOOR Id="..."> and </DOOR> tag).

example

       <DOOR Id="7233">
           <Header>
               <Flags>Gunk</Flags>
               <Position>-652 0 -753</Position>
               <Rotation>0 0 0</Rotation>
           </Header>
           <OSD>
               <Class>wh_door1dbl</Class>
               <DoorId>1</DoorId>
               <KeyId>0</KeyId>
               <Flags>InitialLocked InDoorFrame DoubleDoor</Flags>
               <Center>-652 16.5 -753</Center>
               <SquaredActivationRadius>900</SquaredActivationRadius>
               <Texture1></Texture1>
               <Texture2></Texture2>
               <Events>
                   <ActivateTurret TargetId="1" />
               </Events>
           </OSD>
       </DOOR>


tags

tag type description
<?xml version="1.0" encoding="utf-8"?> float, flag Don't change this.
<Oni> -
<Objects> -
<DOOR Id="..."> int32 Use any number. No need to be unique. -- For level import use <Door>.
<Header> -
<Flags> flag Object flags. Used in the past, ignore them. -- Optional tag for level import.
<Position> float x3 X Y Z position. For original doors use Y=0 if ground plane is 0. -- Optional tag for level import but should be used in any case.
<Rotation> float x3 X Y Z rotation. chr_debug_characters = 1 shows the player's facing which can be used for door's Y value. X and Z should be 0. -- Optional tag for level import.
<OSD> -
<Class> char[63] DOORfile.oni (don't use file prefix/suffix) For level import use absolute or relative file path, e.g. doors/TCdouble.oni
<DoorId> int16 Can be used with BSL commands. -- Optional tag for level import but should be used in any case.
<KeyId> int16 Ignore it. -- Optional tag for level import.
<Flags> flag Optional tag for level import.
None
InitialLocked
door is initially locked (at level load or after calling reset_mechanics)
InDoorFrame
? (no visible effect)
Manual
require player to press action to open door
DoubleDoor
a door with two parts
Mirror
mirrors door along its Z axis
OneWay
one side locked, other side unlocked
Reverse
one side unlocked, other side locked
Jammed
freeze door (can't open/close)
InitialOpen
<Center> float x3 X Y Z. <Center> Y is usually 15 units above door's <Position> Y. -- Optional tag for level import but should be used in any case.
<SquaredActivationRadius> float Optional tag for level import; default value is 900.
<Texture1> char[63] TXMPfile.oni (don't use file prefix/suffix) Used to replaces the doors default texture coming with the M3GM. -- Optional tag for level import.

Use capitalized file name for this TXMP.

<Texture2> char[63] TXMPfile.oni (don't use file prefix/suffix) Can be used with double doors. -- Optional tag for level import.

Use capitalized file name for this TXMP.

<Events> int16 You can use multiple events. -- Optional tag for level import.
<Script Function="call_this_BSL_function" /> char[32] Name of BSL function. For example if you use "call_this_BSL_function" here then write in BSL file:
func call_this_BSL_function
{
     dmsg "hi"
}
<ActivateTurret TargetId="Id" /> int16
<DeactivateTurret TargetId="Id" /> int16
<ActivateConsole TargetId="Id" /> int16
<DeactivateConsole TargetId="Id" /> int16
<ActivateAlarm TargetId="Id" /> int16
<DeactivateAlaram TargetId="Id" /> int16
<ActivateTrigger TargetId="Id" /> int16
<DeactivateTrigger TargetId="Id" /> int16
<LockDoor TargetId="Id" /> int16
<UnlockDoor TargetId="Id" /> int16