diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..c995d051 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,15 @@ +[submodule "externals/tinyxml2"] + path = externals/tinyxml2 + url = https://github.com/leethomason/tinyxml2 +[submodule "externals/zlib"] + path = externals/zlib + url = https://github.com/madler/zlib +[submodule "externals/assimp"] + path = externals/assimp + url = https://github.com/assimp/assimp +[submodule "externals/nod"] + path = externals/nod + url = https://github.com/arukibree/nod +[submodule "externals/CodeGen"] + path = externals/CodeGen + url = https://github.com/arukibree/CodeGen diff --git a/externals/assimp b/externals/assimp new file mode 160000 index 00000000..bca41ceb --- /dev/null +++ b/externals/assimp @@ -0,0 +1 @@ +Subproject commit bca41ceba5a76936807ea4d23d14a98444ed89b0 diff --git a/externals/nod b/externals/nod new file mode 160000 index 00000000..6f777ebb --- /dev/null +++ b/externals/nod @@ -0,0 +1 @@ +Subproject commit 6f777ebb481f58a4e05d7323176335b450ea8d42 diff --git a/externals/tinyxml2 b/externals/tinyxml2 new file mode 160000 index 00000000..c483646d --- /dev/null +++ b/externals/tinyxml2 @@ -0,0 +1 @@ +Subproject commit c483646db00a6a9ac3a8e93f7c490aecb589979d diff --git a/externals/zlib b/externals/zlib new file mode 160000 index 00000000..cacf7f1d --- /dev/null +++ b/externals/zlib @@ -0,0 +1 @@ +Subproject commit cacf7f1d4e3d44d871b605da3b647f07d718623f diff --git a/resources/WordList.txt b/resources/WordList.txt new file mode 100644 index 00000000..a6e283e5 --- /dev/null +++ b/resources/WordList.txt @@ -0,0 +1,1591 @@ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +00 +01 +02 +03 +04 +05 +06 +07 +08 +09 +a +abandoned +abilities +abort +about +above +absolute +absorb +acceleration +accumulate +achievement +acoustics +action +activate +activation +active +actor +actors +add +additional +additive +adjust +after +aggression +ahead +ai +AI +aim +aiming +air +alert +alerted +align +alignment +all +allow +alpha +alt +alternate +always +amber +ambient +ammo +amount +amplified +amplifier +amplitude +an +ancs +anger +angle +angular +anim +animated +animation +animations +anims +annihilator +antenna +anti +any +apex +apos +appear +apply +applying +approach +arc +area +arm +armor +armored +around +array +arrival +arrow +as +asset +assist +at +attach +attachment +attachments +attack +attacker +attackers +attacking +attract +attraction +audible +audio +aurora +auto +automatically +AutoStart +average +avoid +avoidance +awarded +axis +b +baby +back +background +backing +backtrace +backward +backwards +bacteria +balanced +ball +balloon +balloonless +banana +bar +bark +barks +barrel +base +basic +basics +be +beacon +beam +beams +beast +beat +before +begin +behave +behavior +behaviors +behaviour +behind +below +berserker +best +between +big +bird +bite +black +blade +blast +blaster +blend +blink +blinking +blob +block +blocker +blogg +bloom +blow +blown +blue +blur +board +body +bolt +bolts +bomb +bombs +bones +bonus +book +boolean +booleans +boom +boost +bop +border +bored +boss +bot +bounce +bouncy +bounding +bounds +bounty +box +brain +break +bridge +brightness +broken +bubble +buffer +buffered +bumping +buried +burn +burst +busted +buster +but +button +buttons +by +cable +cache +calculate +cam +camera +can +cancel +canister +cannon +cap +capacity +carapace +cart +case +cast +category +cattle +cause +ceiling +center +chain +chakram +chance +change +changed +channel +char +character +characters +charge +charged +charging +chase +chassis +check +checks +chew +chicken +chieftain +child +children +choices +choose +chorus +chunk +cine +cinematic +circle +claw +clear +climb +cling +clip +cloak +cloaked +close +cloud +cobalt +codegen +coin +cold +collapsed +collar +collide +collider +collision +color +coloration +colors +column +combat +combination +combo +combos +command +commands +comment +common +compare +completion +condition +conditional +conditions +cone +configurations +confirm +connected +connection +connections +connector +constant +constraint +constraints +contact +containment +context +continue +control +controller +controllers +controls +convergence +conversation +cool +cooldown +copy +core +correct +cost +count +countdown +counter +cover +cracked +crash +crawl +crawler +create +created +creation +creators +creature +creatures +credit +credits +crippled +critical +cross +crossfade +crouch +crouching +crush +crystal +cursor +curvature +curve +custom +cutting +cycle +dagger +damage +damaged +damages +damp +dampen +damping +dark +darkburst +darken +dash +data +deactivate +deactivation +death +deathfall +debris +debug +dec +decal +decay +deceleration +decloak +decrement +def +default +defense +deflection +degrees +delay +delayed +delays +delete +deleter +delta +density +deploy +deployment +depth +descent +descriptions +desired +dest +destroy +destroyed +detach +detached +detect +detection +determination +diddy +die +died +difficulty +digital +dip +direction +disable +disabled +disallow +disappear +dismount +display +dist +distance +dive +dizzy +dk +do +dock +docking +dodge +doll +dominance +don +done +dongle +door +dot +double +down +download +downward +dpsc +drain +draw +draws +drift +drone +drop +dummy +duration +during +dvd +dynamic +ease +echo +edge +editor +effect +effects +eighth +electric +electrical +elevation +elevator +eligible +elite +emerald +emission +EmissionRate +emitter +emperor +empty +enable +enabled +encounter +end +ends +energized +energy +enforce +engine +enough +enrage +entangled +entangler +enter +entry +enum +env +envelope +enviro +environment +erase +error +escape +events +exclude +executing +exhaust +exit +expand +expanded +expansion +explode +explosion +exposed +extend +external +extra +extras +eye +face +faces +facing +factor +fade +faded +FadeIn +FadeOut +failed +failure +fake +fall +falling +falloff +far +fargull +fast +federation +feedback +fidget +field +fifth +file +filter +final +finding +fire +fireball +fireballs +fires +firing +first +fish +fixed +flags +flare +flash +flashing +flat +flavor +flee +flight +flinch +fling +flip +floor +flow +fluid +flyer +flying +foam +fog +follow +font +foot +footstep +for +force +foreground +forest +forever +forget +form +formation +forward +forwards +fourth +fovtype +frag +frame +frames +freelook +freeze +frequency +friction +friendly +frme +from +front +frozen +frustration +fudge +full +fully +function +fuse +fused +fuses +fx +game +gandrayda +gauge +gem +generate +generated +generation +generator +generic +geometry +ghor +ghost +giant +gib +gibs +give +glide +global +gloss +glow +glowing +glue +go +goo +grab +grabber +grace +gragnol +grapple +gravity +green +grenade +grid +ground +group +groups +guard +guardian +gui +guide +gun +halt +hand +handle +handled +handler +hang +hanger +hard +has +hatch +hatcher +hatches +hazard +head +health +hearing +heart +heavy +height +heights +held +helix +helmet +hi +hidden +hide +highlight +hinge +hint +hip +hit +hits +hive +hold +hole +holos +holster +holstering +home +homing +hopper +horiz +horizontal +hostile +hot +hover +how +hud +huge +hunger +hungry +hunter +hurl +hurled +hurt +hyper +hypermode +HyperMode +ice +icon +icons +id +ID +idle +idles +if +ignore +ignored +ignoring +image +images +impact +imploder +impulse +in +inactive +inc +inca +incandescence +incandescent +increase +increment +incremented +index +indicator +influence +influences +info +information +ing +inhibit +inhibited +inhibitors +initial +initially +inner +input +insert +inside +instant +instantly +instead +InsteadOf +instruction +instructions +int +intensity +interact +interaction +interest +interface +interpolant +interpolation +interrupt +interrupted +interval +into +inventory +inverse +inverted +invincibility +invisibility +invisible +invulnerable +is +island +item +jammer +japan +jaw +jet +jingle +joint +jump +jumps +junction +jungle +keep +key +keyframe +kill +killed +knee +kneel +knock +knockback +KnockBack +korakk +korba +label +lance +land +landed +large +laser +last +latch +launch +launcher +lava +layer +layers +lean +leash +ledge +leech +left +leg +length +lerp +let +level +lever +liberation +life +lifetime +LifeTime +lift +light +lighting +limit +limits +line +linear +link +list +listener +load +local +location +locations +locator +lock +locked +locomotion +log +logbook +LogBook +logic +long +look +loop +looped +looping +loops +lord +lose +loss +low +lower +lurk +machine +magnitude +main +manager +mantha +map +mapper +mass +massive +match +material +maw +max +maximum +maya +mechanoid +medium +mega +melee +memory +menu +mesh +message +messages +method +metroid +metroids +mid +middle +min +mine +minecart +mini +minimum +mirror +mirrored +misc +missile +missiles +missle +mist +mix +mobile +mod +mode +model +modifier +module +mold +mole +morph +morphball +MorphBall +morphed +motion +mount +mounted +mouth +move +movement +moves +movie +moving +multi +multiplayer +multiplier +music +must +mystery +name +names +navigation +near +need +needle +neighbor +neutral +no +node +non +normal +north +nose +not +nova +num +number +object +objects +occlude +occlusion +ocean +of +off +offscreen +offset +ok +on +one +only +opacity +open +optic +option +optional +options +or +orange +orb +orbit +orbitable +order +orient +orientation +origin +original +originator +other +out +outof +outer +outline +output +outside +override +own +owner +pack +padding +padlock +pain +pan +panning +parameters +parasite +parent +parm +parms +part +particle +particles +parts +pass +passive +past +path +patrol +patterned +pause +paused +peanut +peanuts +per +percent +percentage +perfect +period +permanent +persistent +person +phaaze +phaazite +phaazoid +phase +phazeoid +phazite +phazon +physics +pickup +pidtype +piece +pillar +pincer +pinch +pirate +piston +pit +pitch +pivot +place +placeholder +plane +plank +plasma +plate +platform +platforms +play +playback +player +players +pod +pods +poi +point +points +poison +pole +pop +portal +position +positional +possessed +possession +post +potential +pound +pounds +power +pre +predict +prediction +prefix +preload +press +pressed +prevent +primary +prime +priority +probability +prod +progression +projectile +projectiles +prompt +properties +proportional +proximity +proxy +puddle +puffers +pull +pulse +purchase +pursuit +push +puzzle +quit +radar +radial +radians +radius +rag +ragdoll +rain +rambi +random +randomize +randomness +range +ranged +rate +rattle +ray +re +reaching +reactivate +reactive +reappear +recalculation +receiver +recently +recheck +recover +red +reduction +reform +regen +regrow +relapse +relationship +relative +relay +release +reload +render +rendering +reorientation +repair +repeat +repeated +repel +replace +reptilicus +repulsor +requirement +requirements +requires +reset +resistance +resources +respawn +respawns +restart +retarget +reticule +retract +retracted +retreat +retrigger +retronome +retry +return +reveal +reverb +reverse +revolution +reward +richochet +ricochet +rider +riders +riding +ridley +right +rigid +ring +rings +rip +rise +robot +rocket +roll +rolling +room +root +rope +rotate +rotates +rotation +rule +rules +rumble +run +rundas +runoff +rush +safe +safezone +salvo +sample +samus +sand +sandworm +save +saved +scalar +scale +scan +ScanInfo +scannable +scanning +scatter +scheme +score +scramble +screen +screw +script +scroller +search +second +secondary +seconds +seed +seek +seeker +segment +segments +select +selected +selection +selector +send +separation +seperate +sequence +sequences +set +sets +settings +seventh +sfx +shadow +shadows +shaft +shake +shaker +shape +shard +shatter +sheet +shell +shield +shielded +shimmer +shin +ship +shock +shockwave +shootable +shooter +shoots +shot +should +shoulder +show +shredder +shrink +shut +shutdown +side +sided +silhouette +single +sink +sixth +size +skeleton +skin +skins +skip +sky +skybox +slam +slap +slave +slaves +sleep +slide +slip +slope +slots +slow +slowdown +small +snap +snatcher +snatching +software +solid +song +sonic +sort +sorting +sound +sounds +south +space +spacing +sparks +spawn +special +specific +specifies +speech +speed +sphere +spider +spiderball +spike +spikes +spin +spindle +spine +spinner +spiral +spit +splash +splashes +spline +splines +splinter +split +splitter +spot +spotlight +spread +spring +sprite +squared +stab +stage +stages +start +starting +starts +state +static +stationary +status +stay +std +steam +step +stick +stomach +stop +stopped +storm +strafe +streaks +stream +strength +strg +string +strings +struct +struggle +stuck +stuff +stun +stunned +subdivisions +subtitle +subtitles +succeeded +suck +suicide +suit +summary +summon +sunburst +sunlight +super +supercharged +superguide +supress +surf +surface +surfing +surround +suspension +swamp +swap +swarm +sweep +swhc +swing +swipe +switch +swoop +swoosh +system +table +tail +take +talk +tank +tar +target +targeting +targets +task +taunt +team +telegraph +teleport +temple +tendril +tentacle +terminal +terrain +test +text +texture +thaw +their +then +thermo +thigh +third +this +threshold +through +throw +thrown +thrust +thruster +tilt +time +timer +times +timing +tip +tire +tired +title +to +toe +toggle +tongue +too +top +torch +toss +total +touch +touched +towards +track +tracking +tracks +trail +train +transfer +transform +transition +translation +translator +transmission +travel +trigger +triggered +triggers +triple +true +tumble +tunnel +turn +turns +turret +twist +two +txtr +type +typedef +types +uncharged +undamaged +undampen +under +underwater +unique +unit +unknown +unlimited +unlock +unlocked +unselected +unsorted +up +update +upgrade +upper +upright +use +used +uses +value +varia +variance +variation +vector +vehicle +velocity +vert +vertical +vertically +video +view +vine +violet +virtual +virus +vis +viscosity +visibility +visible +visor +visors +visualization +vocal +volcano +voltage +volume +volumes +vortex +vulnerability +vulnerable +wait +wake +walk +walking +wall +wander +warning +warp +water +wave +waypoint +weak +weapon +weapons +weight +weld +welding +wheel +when +which +while +whip +white +widget +window +wing +with +withdraw +wolf +world +wpsc +wrap +write +x +XMotion +XOffset +XRay +XRotation +XScale +XTranslation +y +yaw +yellow +yes +YMotion +YOffset +YRotation +YScale +YTranslation +z +zap +ZMotion +ZOffset +zone +zoom +ZRotation +ZScale +ZTranslation \ No newline at end of file diff --git a/src/.qmake.conf b/src/.qmake.conf index d47275dd..f775d75a 100644 --- a/src/.qmake.conf +++ b/src/.qmake.conf @@ -1,8 +1,13 @@ CONFIG += PUBLIC_RELEASE win32: { - QMAKE_CXXFLAGS += /WX \ # Treat warnings as errors - /wd4267 # Disable C4267: conversion from 'size_t' to 'type', possible loss of data + QMAKE_CXXFLAGS += /WX \ # Treat warnings as errors + /wd4267 \ # Disable C4267: conversion from 'size_t' to 'type', possible loss of data + /wd4100 \ # Disable C4100: unreferenced formal parameter + /wd4101 \ # Disable C4101: unreferenced local variable + /wd4189 # Disable C4189: local variable is initialized but not referenced + + QMAKE_CXXFLAGS_WARN_ON -= -w34100 -w34189 # Override C4100 and C4189 being set to w3 in Qt's default .qmake.conf file } BUILD_DIR = $$PWD/../build diff --git a/src/Common/AssertMacro.h b/src/Common/AssertMacro.h index 4ed65af9..bbf8d8d7 100644 --- a/src/Common/AssertMacro.h +++ b/src/Common/AssertMacro.h @@ -8,14 +8,11 @@ /* This header declares a macro, ASSERT(Expression). ASSERT evaluates the input expression and verifies that * it is true. If the expression is false, an error message will be printed to the log with info on what went - * wrong and (in debug builds) trigger a debug break. Application execution is not aborted, but if an assert - * fails then there is usually a decent chance of the application crashing regardless. + * wrong and (in debug builds) trigger a debug break. Application execution is aborted. In public release builds, + * asserts are compiled out entirely, so neither log messages nor debug breaks will occur. * - * Note that in public release builds, asserts are compiled out entirely, so neither log messages nor debug breaks - * will occur. - * - * LOG_ONLY_ASSERT is similar to a regular assert, but doesn't trigger a debug break. It can be useful for debugging, - * but shouldn't be used as a permanent error check. + * Alternatively, this file also declares an ENSURE macro, which is guaranteed always executes and will never be + * compiled out, regardless of build configuration. */ #define __FILE_SHORT__ strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__ @@ -27,39 +24,30 @@ #define CONDITIONAL_BREAK(Condition) {} #endif -#if 1 +#define ASSERT_CHECK_BEGIN(Expression) \ + { \ + if (!(Expression)) \ + { - // Asserts Enabled - #define ASSERT_CHECK_BEGIN(Expression) \ - { \ - if (!(Expression)) \ - { +#define ASSERT_CHECK_END \ + } \ + } - #define ASSERT_CHECK_END \ - } \ - } +#define WRITE_FAILURE_TO_LOG(Expression) \ + Log::Write(TString(__FILE_SHORT__) + "(" + TString::FromInt32(__LINE__, 0, 10) + "): ASSERT FAILED: " + #Expression); - #define WRITE_FAILURE_TO_LOG(Expression) \ - Log::Write(TString(__FILE_SHORT__) + "(" + TString::FromInt32(__LINE__, 0, 10) + "): ASSERT FAILED: " + #Expression); - - #define LOG_ONLY_ASSERT(Expression) \ - ASSERT_CHECK_BEGIN(Expression) \ - WRITE_FAILURE_TO_LOG(Expression) \ - ASSERT_CHECK_END - - #define ASSERT(Expression) \ - ASSERT_CHECK_BEGIN(Expression) \ - WRITE_FAILURE_TO_LOG(Expression) \ - DEBUG_BREAK \ - ASSERT_CHECK_END +// ENSURE macro always executes, never gets compiled out +#define ENSURE(Expression) \ + ASSERT_CHECK_BEGIN(Expression) \ + WRITE_FAILURE_TO_LOG(Expression) \ + DEBUG_BREAK \ + abort(); \ + ASSERT_CHECK_END +#if !PUBLIC_RELEASE + #define ASSERT(Expression) ENSURE(Expression) #else - - // Asserts Disabled - #define BREAK_ONLY_ASSERT(Expression) {} - #define LOG_ONLY_ASSERT(Expression) {} #define ASSERT(Expression) {} - #endif #endif // ASSERT_H diff --git a/src/Common/CAssetID.cpp b/src/Common/CAssetID.cpp index 4919c450..7051f781 100644 --- a/src/Common/CAssetID.cpp +++ b/src/Common/CAssetID.cpp @@ -52,7 +52,7 @@ CAssetID::CAssetID(IInputStream& rInput, EIDLength Length) CAssetID::CAssetID(IInputStream& rInput, EGame Game) { - *this = CAssetID(rInput, (Game <= eEchoes ? e32Bit : e64Bit)); + *this = CAssetID(rInput, (Game <= EGame::Echoes ? e32Bit : e64Bit)); } TString CAssetID::ToString(EIDLength ForcedLength /*= eInvalidIDLength*/) const diff --git a/src/Common/CAssetID.h b/src/Common/CAssetID.h index 3775f11c..380efc92 100644 --- a/src/Common/CAssetID.h +++ b/src/Common/CAssetID.h @@ -49,9 +49,9 @@ public: static CAssetID FromString(const TString& rkString); static CAssetID RandomID(); - inline static EIDLength GameIDLength(EGame Game) { return (Game == eUnknownGame ? eInvalidIDLength : (Game <= eEchoes ? e32Bit : e64Bit)); } + inline static EIDLength GameIDLength(EGame Game) { return (Game == EGame::Invalid ? eInvalidIDLength : (Game <= EGame::Echoes ? e32Bit : e64Bit)); } inline static CAssetID InvalidID(EIDLength IDLength) { return (IDLength == e32Bit ? skInvalidID32 : skInvalidID64); } - inline static CAssetID InvalidID(EGame Game) { return InvalidID(Game <= eEchoes ? e32Bit : e64Bit); } + inline static CAssetID InvalidID(EGame Game) { return InvalidID(Game <= EGame::Echoes ? e32Bit : e64Bit); } static CAssetID skInvalidID32; static CAssetID skInvalidID64; diff --git a/src/Common/CColor.cpp b/src/Common/CColor.cpp index 62810cd0..ec8c539d 100644 --- a/src/Common/CColor.cpp +++ b/src/Common/CColor.cpp @@ -65,7 +65,10 @@ void CColor::Write(IOutputStream &rOutput, bool Integral /*= false*/) const void CColor::Serialize(IArchive& rArc) { - rArc << SERIAL_AUTO(R) << SERIAL_AUTO(G) << SERIAL_AUTO(B) << SERIAL_AUTO(A); + rArc << SerialParameter("R", R) + << SerialParameter("G", G) + << SerialParameter("B", B) + << SerialParameter("A", A, SH_Optional, 1.0f); } long CColor::ToLongRGBA() const diff --git a/src/Common/CFourCC.h b/src/Common/CFourCC.h index 52811304..d48e4cb2 100644 --- a/src/Common/CFourCC.h +++ b/src/Common/CFourCC.h @@ -72,7 +72,7 @@ public: inline void Reverse() const { - IOUtil::SwapBytes((u32) mFourCC); + IOUtil::SwapBytes((u32&) mFourCC); } // Operators diff --git a/src/Common/Common.h b/src/Common/Common.h index 56a37693..ed6874ca 100644 --- a/src/Common/Common.h +++ b/src/Common/Common.h @@ -1,11 +1,11 @@ #ifndef COMMON_H #define COMMON_H +#include "types.h" #include "AssertMacro.h" #include "CAssetID.h" #include "CColor.h" #include "CFourCC.h" -#include "CHashFNV1A.h" #include "CScopedTimer.h" #include "CTimer.h" #include "EGame.h" @@ -16,8 +16,16 @@ #include "Flags.h" #include "Log.h" #include "TString.h" -#include "types.h" +#include "Hash/CCRC32.h" +#include "Hash/CFNV1A.h" #include "Serialization/Binary.h" #include "Serialization/XML.h" +#include "NBasics.h" + +// temporary home for ALIGN macro, moving later +#define ALIGN(Val, Align) ((Val + (Align-1)) & ~(Align-1)) + +// temporary home for MEMBER_OFFSET macro +#define MEMBER_OFFSET(TypeName, MemberName) ( (int) (long long) &((TypeName*)0)->MemberName ) #endif // COMMON_H diff --git a/src/Common/Common.pro b/src/Common/Common.pro index a00adb96..2a953511 100644 --- a/src/Common/Common.pro +++ b/src/Common/Common.pro @@ -21,36 +21,26 @@ CONFIG (debug, debug|release) { # Debug Config OBJECTS_DIR = $$BUILD_DIR/Common/debug TARGET = Commond - - # Debug Libs - LIBS += -L$$EXTERNALS_DIR/boost_1_63_0/lib64-msvc-14.0 -llibboost_filesystem-vc140-mt-gd-1_63 \ - -L$$EXTERNALS_DIR/tinyxml2/lib -ltinyxml2d } CONFIG (release, debug|release) { # Release Config OBJECTS_DIR = $$BUILD_DIR/build/Common/release TARGET = Common - - # Release Libs - LIBS += -L$$EXTERNALS_DIR/boost_1_63_0/lib64-msvc-14.0 -llibboost_filesystem-vc140-mt-1_63 \ - -L$$EXTERNALS_DIR/tinyxml2/lib -ltinyxml2 } # Include Paths INCLUDEPATH += $$PWE_MAIN_INCLUDE \ - $$EXTERNALS_DIR/boost_1_63_0 \ - $$EXTERNALS_DIR/tinyxml2/include + $$EXTERNALS_DIR/CodeGen/include \ + $$EXTERNALS_DIR/tinyxml2 # Header Files HEADERS += \ CColor.h \ CFourCC.h \ - CHashFNV1A.h \ CTimer.h \ EKeyInputs.h \ EMouseInputs.h \ - ETransformSpace.h \ Flags.h \ TString.h \ types.h \ @@ -59,6 +49,7 @@ HEADERS += \ AssertMacro.h \ CScopedTimer.h \ CAssetID.h \ + Hash\CFNV1A.h \ Serialization/IArchive.h \ Serialization/CXMLWriter.h \ Serialization/CXMLReader.h \ @@ -83,7 +74,9 @@ HEADERS += \ FileIO\CBitStreamInWrapper.h \ FileIO\CFileLock.h \ FileIO.h \ - Common.h + Common.h \ + Hash/CCRC32.h \ + NBasics.h # Source Files SOURCES += \ @@ -105,4 +98,14 @@ SOURCES += \ FileIO\IOUtil.cpp \ FileIO\IInputStream.cpp \ FileIO\IOutputStream.cpp \ - FileIO\CBitStreamInWrapper.cpp + FileIO\CBitStreamInWrapper.cpp \ + Hash/CCRC32.cpp + +# Codegen +CODEGEN_DIR = $$EXTERNALS_DIR/CodeGen +CODEGEN_OUT_PATH = $$BUILD_DIR/Common/codegen_build/auto_codegen.cpp +CODEGEN_SRC_PATH = $$PWD +include($$EXTERNALS_DIR/CodeGen/codegen.pri) + +# Library Sources +SOURCES += $$EXTERNALS_DIR/tinyxml2/tinyxml2.cpp diff --git a/src/Common/EGame.cpp b/src/Common/EGame.cpp index fedeb96d..bfd5f6d7 100644 --- a/src/Common/EGame.cpp +++ b/src/Common/EGame.cpp @@ -2,97 +2,91 @@ #include "CFourCC.h" #include "Common/Serialization/IArchive.h" -CFourCC GetGameID(EGame Game) -{ - switch (Game) - { - case ePrimeDemo: return "MP1D"; - case ePrime: return "MPRM"; - case eEchoesDemo: return "MP2D"; - case eEchoes: return "MP2E"; - case eCorruptionProto: return "MP3P"; - case eCorruption: return "MP3C"; - case eReturns: return "DKCR"; - default: return "UNKN"; - } -} - -EGame GetGameForID(const CFourCC& rkID) -{ - if (rkID == "MP1D") return ePrimeDemo; - if (rkID == "MPRM") return ePrime; - if (rkID == "MP2D") return eEchoesDemo; - if (rkID == "MP2E") return eEchoes; - if (rkID == "MP3P") return eCorruptionProto; - if (rkID == "MP3C") return eCorruption; - if (rkID == "DKCR") return eReturns; - return eUnknownGame; -} - TString GetGameName(EGame Game) { - switch (Game) + static const TString skGameNames[EGame::Max] = { - case ePrimeDemo: return "Metroid Prime Kiosk Demo"; - case ePrime: return "Metroid Prime"; - case eEchoesDemo: return "Metroid Prime 2: Echoes Demo"; - case eEchoes: return "Metroid Prime 2: Echoes"; - case eCorruptionProto: return "Metroid Prime 3: Corruption Prototype"; - case eCorruption: return "Metroid Prime 3: Corruption"; - case eReturns: return "Donkey Kong Country Returns"; - default: return "Unknown Game"; - } + "Metroid Prime Demo", + "Metroid Prime", + "Metroid Prime 2: Echoes Demo", + "Metroid Prime 2: Echoes", + "Metroid Prime 3: Corruption E3 2006 Prototype", + "Metroid Prime 3: Corruption", + "Donkey Kong Country Returns" + }; + + int GameIdx = (int) Game; + return (GameIdx >= 0 && GameIdx < (int) EGame::Max) ? skGameNames[GameIdx] : "Unknown Game"; } TString GetGameShortName(EGame Game) { - switch (Game) + static const TString skGameNames[EGame::Max] = { + "MP1Demo", + "MP1", + "MP2Demo", + "MP2", + "MP3Proto", + "MP3", + "DKCR" + }; + + int GameIdx = (int) Game; + return (GameIdx >= 0 && GameIdx < (int) EGame::Max) ? skGameNames[GameIdx] : "Unknown"; +} + +CFourCC GameTo4CC(EGame Game) +{ + static const CFourCC skGame4CCs[EGame::Max] = { - case ePrimeDemo: return "MP1Demo"; - case ePrime: return "MP1"; - case eEchoesDemo: return "MP2Demo"; - case eEchoes: return "MP2"; - case eCorruptionProto: return "MP3Proto"; - case eCorruption: return "MP3"; - case eReturns: return "DKCR"; - default: return "Unknown"; - } + FOURCC('MP1D'), FOURCC('MPRM'), + FOURCC('MP2D'), FOURCC('MP2E'), + FOURCC('MP3P'), FOURCC('MP3C'), + FOURCC('DKCR') + }; + + int GameIdx = (int) Game; + return (GameIdx >= 0 && GameIdx < (int) EGame::Max) ? skGame4CCs[GameIdx] : FOURCC('UNKN'); +} + +EGame GameFrom4CC(CFourCC GameId) +{ + static const std::unordered_map skIdToGame = + { + { FOURCC('MP1D'), EGame::PrimeDemo }, + { FOURCC('MPRM'), EGame::Prime }, + { FOURCC('MP2D'), EGame::EchoesDemo }, + { FOURCC('MP2E'), EGame::Echoes }, + { FOURCC('MP3P'), EGame::CorruptionProto }, + { FOURCC('MP3C'), EGame::Corruption }, + { FOURCC('DKCR'), EGame::DKCReturns } + }; + auto MapFindIter = skIdToGame.find(GameId.ToLong()); + return (MapFindIter != skIdToGame.end() ? MapFindIter->second : EGame::Invalid); } void Serialize(IArchive& rArc, EGame& rGame) { - CFourCC GameID = GetGameID(rGame); - rArc.SerializePrimitive(GameID); - if (rArc.IsReader()) rGame = GetGameForID(GameID); -} - -// ERegion -static const TString gskRegionNames[] = { "NTSC", "PAL", "JPN", "UnknownRegion" }; -static const u32 gskNumRegions = sizeof(gskRegionNames) / sizeof(gskRegionNames[0]); - -TString GetRegionName(ERegion Region) -{ - return gskRegionNames[(int) Region]; -} - -ERegion GetRegionForName(const TString& rkName) -{ - for (u32 iReg = 0; iReg < gskNumRegions; iReg++) - if (gskRegionNames[iReg] == rkName) - return (ERegion) iReg; - - return eRegion_Unknown; -} - -void Serialize(IArchive& rArc, ERegion& rRegion) -{ - TString Name; - - if (rArc.IsWriter()) - Name = GetRegionName(rRegion); - - rArc.SerializePrimitive(Name); - - if (rArc.IsReader()) - rRegion = GetRegionForName(Name); + // We serialize EGame as a fourCC in binary formats as a future-proofing measure. + // Additionally, older versions of IArchive always serialized EGame as a fourCC. + if (rArc.ArchiveVersion() < IArchive::eArVer_GameEnumClass || rArc.IsBinaryFormat()) + { + CFourCC GameId; + + if (rArc.IsWriter()) + { + GameId = GameTo4CC(rGame); + } + + rArc.SerializePrimitive(GameId, 0); + + if (rArc.IsReader()) + { + rGame = GameFrom4CC(GameId); + } + } + else + { + DefaultEnumSerialize(rArc, rGame); + } } diff --git a/src/Common/EGame.h b/src/Common/EGame.h index 1897b5f0..50dee1cb 100644 --- a/src/Common/EGame.h +++ b/src/Common/EGame.h @@ -7,37 +7,36 @@ class CFourCC; class IArchive; -// Note: The reason why the EGame value isn't just the fourCC game ID is because a lot of code does inequality -// comparisons on EGame for version checking ie. "if (Game <= eEchoes)", which means the enum values need to be -// in chronological order. -enum EGame +//@todo I'm not really happy with EGame being in Common (would like Common to be more +// generic so it's more reusable between different projects) but atm can't think of +// any other decent way to integrate it with IArchive unfortunately +enum class EGame { - ePrimeDemo, - ePrime, - eEchoesDemo, - eEchoes, - eCorruptionProto, - eCorruption, - eReturns, - eUnknownGame = -1 + PrimeDemo, + Prime, + EchoesDemo, + Echoes, + CorruptionProto, + Corruption, + DKCReturns, + + Max, + Invalid = -1 }; -CFourCC GetGameID(EGame Game); -EGame GetGameForID(const CFourCC& rkID); TString GetGameName(EGame Game); TString GetGameShortName(EGame Game); +CFourCC GameTo4CC(EGame Game); +EGame GameFrom4CC(CFourCC GameId); void Serialize(IArchive& rArc, EGame& rGame); // ERegion -enum ERegion +enum class ERegion { - eRegion_NTSC, - eRegion_PAL, - eRegion_JPN, - eRegion_Unknown = -1 + NTSC, + PAL, + JPN, + Unknown = -1 }; -TString GetRegionName(ERegion Region); -ERegion GetRegionForName(const TString& rkName); -void Serialize(IArchive& rArc, ERegion& rRegion); #endif // EGAME_H diff --git a/src/Common/FileIO/CVectorOutStream.cpp b/src/Common/FileIO/CVectorOutStream.cpp index e20cfc1f..fb95e0ca 100644 --- a/src/Common/FileIO/CVectorOutStream.cpp +++ b/src/Common/FileIO/CVectorOutStream.cpp @@ -1,10 +1,10 @@ #include "CVectorOutStream.h" +#include "Common/Common.h" CVectorOutStream::CVectorOutStream() : mpVector(new std::vector) , mOwnsVector(true) , mPos(0) - , mUsed(0) { mDataEndianness = IOUtil::eBigEndian; } @@ -13,7 +13,6 @@ CVectorOutStream::CVectorOutStream(IOUtil::EEndianness DataEndianness) : mpVector(new std::vector) , mOwnsVector(true) , mPos(0) - , mUsed(0) { mDataEndianness = DataEndianness; } @@ -22,7 +21,6 @@ CVectorOutStream::CVectorOutStream(u32 InitialSize, IOUtil::EEndianness DataEndi : mpVector(new std::vector(InitialSize)) , mOwnsVector(true) , mPos(0) - , mUsed(0) { mDataEndianness = DataEndianness; } @@ -31,7 +29,6 @@ CVectorOutStream::CVectorOutStream(std::vector *pVector, IOUtil::EEndianne : mpVector(pVector) , mOwnsVector(false) , mPos(0) - , mUsed(0) { mDataEndianness = DataEndianness; } @@ -45,12 +42,18 @@ void CVectorOutStream::WriteBytes(const void *pkSrc, u32 Count) { if (!IsValid()) return; - if ((mPos + Count) > mpVector->size()) - mpVector->resize(mPos + Count); + u32 NewSize = mPos + Count; + + if (NewSize > mpVector->size()) + { + if (NewSize > mpVector->capacity()) + mpVector->reserve( ALIGN(mPos + Count, skAllocSize) ); + + mpVector->resize(NewSize); + } memcpy(mpVector->data() + mPos, pkSrc, Count); mPos += Count; - if (mPos > mUsed) mUsed = mPos; } bool CVectorOutStream::Seek(s32 Offset, u32 Origin) @@ -68,7 +71,7 @@ bool CVectorOutStream::Seek(s32 Offset, u32 Origin) break; case SEEK_END: - mPos = mUsed - Offset; + mPos = mpVector->size() - Offset; break; default: @@ -81,9 +84,6 @@ bool CVectorOutStream::Seek(s32 Offset, u32 Origin) return false; } - if (mPos > mUsed) - mUsed = mPos; - if (mPos > mpVector->size()) mpVector->resize(mPos); @@ -107,20 +107,19 @@ bool CVectorOutStream::IsValid() const u32 CVectorOutStream::Size() const { - return mUsed; -} - -u32 CVectorOutStream::SizeRemaining() const -{ - return mpVector->size() - mPos; + return mPos; } void CVectorOutStream::SetVector(std::vector *pVector) { - if (mOwnsVector) delete mpVector; + if (mOwnsVector) + { + delete mpVector; + mOwnsVector = false; + } + mpVector = pVector; mPos = 0; - mUsed = 0; } void* CVectorOutStream::Data() @@ -133,24 +132,8 @@ void* CVectorOutStream::DataAtPosition() return mpVector->data() + mPos; } -void CVectorOutStream::Expand(u32 Amount) -{ - mpVector->resize(mpVector->size() + Amount); -} - -void CVectorOutStream::Shrink() -{ - mpVector->resize(mUsed); -} - -void CVectorOutStream::Reset() -{ - mPos = 0; - mUsed = 0; -} - void CVectorOutStream::Clear() { + mPos = 0; mpVector->clear(); - Reset(); } diff --git a/src/Common/FileIO/CVectorOutStream.h b/src/Common/FileIO/CVectorOutStream.h index 26d505f7..7f0881ce 100644 --- a/src/Common/FileIO/CVectorOutStream.h +++ b/src/Common/FileIO/CVectorOutStream.h @@ -6,10 +6,11 @@ class CVectorOutStream : public IOutputStream { + static const u32 skAllocSize = 1; // must be 1 or a power of 2 + std::vector *mpVector; bool mOwnsVector; u32 mPos; - u32 mUsed; public: CVectorOutStream(); @@ -24,13 +25,9 @@ public: bool EoF() const; bool IsValid() const; u32 Size() const; - u32 SizeRemaining() const; void SetVector(std::vector *pVector); void *Data(); void *DataAtPosition(); - void Expand(u32 Amount); - void Shrink(); - void Reset(); void Clear(); }; diff --git a/src/Common/FileUtil.cpp b/src/Common/FileUtil.cpp index 3bb1ee1f..fa422104 100644 --- a/src/Common/FileUtil.cpp +++ b/src/Common/FileUtil.cpp @@ -1,22 +1,21 @@ #include "FileUtil.h" #include "AssertMacro.h" -#include -#include +#include "Common/FileIO/CFileInStream.h" -// These are mostly just wrappers around boost::filesystem functions. -using namespace boost::filesystem; +#include +#include -// Macro encapsulating a TString -> boost::filesystem::path conversion -// boost does not handle conversion from UTF-8 correctly so we need to do it manually -#define TO_PATH(String) path( *String.ToUTF16() ) -#define FROM_PATH(Path) TWideString( Path.native() ).ToUTF8() +// These are mostly just wrappers around std::filesystem functions. +using namespace std::experimental::filesystem::v1; namespace FileUtil { +#define ToPath(Path) u8path(Path) + bool Exists(const TString &rkFilePath) { - return exists( TO_PATH(rkFilePath) ); + return exists(ToPath(*rkFilePath)); } bool IsRoot(const TString& rkPath) @@ -29,22 +28,22 @@ bool IsRoot(const TString& rkPath) bool IsFile(const TString& rkFilePath) { - return is_regular_file( TO_PATH(rkFilePath) ); + return is_regular_file(ToPath(*rkFilePath)); } bool IsDirectory(const TString& rkDirPath) { - return is_directory( TO_PATH(rkDirPath) ); + return is_directory(ToPath(*rkDirPath)); } bool IsAbsolute(const TString& rkDirPath) { - return boost::filesystem::path( TO_PATH(rkDirPath) ).is_absolute(); + return ToPath(*rkDirPath).is_absolute(); } bool IsRelative(const TString& rkDirPath) { - return boost::filesystem::path( TO_PATH(rkDirPath) ).is_relative(); + return ToPath(*rkDirPath).is_relative(); } bool IsEmpty(const TString& rkDirPath) @@ -52,11 +51,10 @@ bool IsEmpty(const TString& rkDirPath) if (!IsDirectory(rkDirPath)) { Log::Error("Non-directory path passed to IsEmpty(): " + rkDirPath); - DEBUG_BREAK; return false; } - return is_empty( TO_PATH(rkDirPath) ); + return is_empty(ToPath(*rkDirPath)); } bool MakeDirectory(const TString& rkNewDir) @@ -67,7 +65,7 @@ bool MakeDirectory(const TString& rkNewDir) return false; } - return create_directories( TO_PATH(rkNewDir) ); + return create_directories(ToPath(*rkNewDir)); } bool CopyFile(const TString& rkOrigPath, const TString& rkNewPath) @@ -79,9 +77,10 @@ bool CopyFile(const TString& rkOrigPath, const TString& rkNewPath) } MakeDirectory(rkNewPath.GetFileDirectory()); - boost::system::error_code Error; - copy(TO_PATH(rkOrigPath), TO_PATH(rkNewPath), Error); - return (Error == boost::system::errc::success); + std::error_code Error; + // call std::filesystem::copy, not std::copy + std::experimental::filesystem::copy(ToPath(*rkOrigPath), ToPath(*rkNewPath), Error); + return (Error.value() == 0); } bool CopyDirectory(const TString& rkOrigPath, const TString& rkNewPath) @@ -93,9 +92,10 @@ bool CopyDirectory(const TString& rkOrigPath, const TString& rkNewPath) } MakeDirectory(rkNewPath.GetFileDirectory()); - boost::system::error_code Error; - copy_directory(TO_PATH(rkOrigPath), TO_PATH(rkNewPath), Error); - return (Error == boost::system::errc::success); + std::error_code Error; + // call std::filesystem::copy, not std::copy + std::experimental::filesystem::copy(ToPath(*rkOrigPath), ToPath(*rkNewPath), Error); + return (Error.value() == 0); } bool MoveFile(const TString& rkOldPath, const TString& rkNewPath) @@ -112,8 +112,9 @@ bool MoveFile(const TString& rkOldPath, const TString& rkNewPath) return false; } - int Result = rename(*rkOldPath, *rkNewPath); - return (Result == 0); + std::error_code Error; + rename(ToPath(*rkOldPath), ToPath(*rkNewPath), Error); + return Error.value() == 0; } bool MoveDirectory(const TString& rkOldPath, const TString& rkNewPath) @@ -126,18 +127,19 @@ bool MoveDirectory(const TString& rkOldPath, const TString& rkNewPath) if (Exists(rkNewPath)) { - Log::Error("Unable to move directory because there is an existing directory at the destination path: " + rkNewPath); + Log::Error("Unable to move directory because there is an existing directory at the destination path: %s" + rkNewPath); return false; } - int Result = rename(*rkOldPath, *rkNewPath); - return (Result == 0); + std::error_code Error; + rename(ToPath(*rkOldPath), ToPath(*rkNewPath), Error); + return Error.value() == 0; } bool DeleteFile(const TString& rkFilePath) { if (!IsFile(rkFilePath)) return false; - return remove( TO_PATH(rkFilePath) ) == 1; + return remove(ToPath(*rkFilePath)) == 1; } bool DeleteDirectory(const TString& rkDirPath, bool FailIfNotEmpty) @@ -151,7 +153,7 @@ bool DeleteDirectory(const TString& rkDirPath, bool FailIfNotEmpty) if (Root) { ASSERT(false); - Log::Error("Attempted to delete root directory!"); + Log::Fatal("Attempted to delete root directory!"); return false; } @@ -160,9 +162,9 @@ bool DeleteDirectory(const TString& rkDirPath, bool FailIfNotEmpty) return false; // Delete directory - boost::system::error_code Error; - remove_all(TO_PATH(rkDirPath), Error); - return (Error == boost::system::errc::success); + std::error_code Error; + remove_all(ToPath(*rkDirPath), Error); + return (Error.value() == 0); } bool ClearDirectory(const TString& rkDirPath) @@ -176,7 +178,7 @@ bool ClearDirectory(const TString& rkDirPath) if (Root) { ASSERT(false); - Log::Error("Attempted to clear root directory!"); + Log::Fatal("Attempted to clear root directory!"); return false; } @@ -202,22 +204,22 @@ bool ClearDirectory(const TString& rkDirPath) u64 FileSize(const TString &rkFilePath) { - return (u64) (Exists(rkFilePath) ? file_size( TO_PATH(rkFilePath) ) : -1); + return (u64) (Exists(rkFilePath) ? file_size(ToPath(*rkFilePath)) : -1); } u64 LastModifiedTime(const TString& rkFilePath) { - return (u64) last_write_time( TO_PATH(rkFilePath) ); + return (u64) last_write_time(ToPath(*rkFilePath)).time_since_epoch().count(); } TString WorkingDirectory() { - return FROM_PATH( boost::filesystem::current_path() ); + return current_path().string(); } TString MakeAbsolute(TString Path) { - if (!TO_PATH(Path).has_root_name()) + if (!ToPath(*Path).has_root_name()) Path = WorkingDirectory() + "/" + Path; TStringList Components = Path.Split("/\\"); @@ -474,26 +476,26 @@ void GetDirectoryContents(TString DirPath, TStringList& rOut, bool Recursive /*= DirPath.Replace("\\", "/"); bool IncludeAll = IncludeFiles && IncludeDirs; - auto AddFileLambda = [IncludeFiles, IncludeDirs, IncludeAll, &rOut](TString Path) -> void { - bool ShouldAddFile = IncludeAll || (IncludeFiles && IsFile(Path)) || (IncludeDirs && IsDirectory(Path)); + auto AddFileLambda = [IncludeFiles, IncludeDirs, IncludeAll, &rOut](const TString& rkPath) -> void { + bool ShouldAddFile = IncludeAll || (IncludeFiles && IsFile(rkPath)) || (IncludeDirs && IsDirectory(rkPath)); if (ShouldAddFile) - rOut.push_back(Path); + rOut.push_back(rkPath); }; if (Recursive) { - for (recursive_directory_iterator It( TO_PATH(DirPath) ); It != recursive_directory_iterator(); ++It) + for (recursive_directory_iterator It(ToPath(*DirPath)); It != recursive_directory_iterator(); ++It) { - AddFileLambda( FROM_PATH(It->path()) ); + AddFileLambda(It->path().string()); } } else { - for (directory_iterator It( TO_PATH(DirPath) ); It != directory_iterator(); ++It) + for (directory_iterator It(ToPath(*DirPath)); It != directory_iterator(); ++It) { - AddFileLambda( FROM_PATH(It->path()) ); + AddFileLambda(It->path().string()); } } } @@ -501,13 +503,27 @@ void GetDirectoryContents(TString DirPath, TStringList& rOut, bool Recursive /*= TString FindFileExtension(const TString& rkDir, const TString& rkName) { - for (directory_iterator It( TO_PATH(rkDir) ); It != directory_iterator(); ++It) + for (directory_iterator It(ToPath(*rkDir)); It != directory_iterator(); ++It) { - TString Name = FROM_PATH( It->path().filename() ); + TString Name = It->path().filename().string(); if (Name.GetFileName(false) == rkName) return Name.GetFileExtension(); } return ""; } +bool LoadFileToString(const TString& rkFilePath, TString& rOut) +{ + CFileInStream File(rkFilePath); + + if (File.IsValid()) + { + rOut = TString(File.Size()); + File.ReadBytes(&rOut[0], rOut.Size()); + return true; + } + else + return false; +} + } diff --git a/src/Common/FileUtil.h b/src/Common/FileUtil.h index e0c13a2f..9bf45f8b 100644 --- a/src/Common/FileUtil.h +++ b/src/Common/FileUtil.h @@ -36,6 +36,7 @@ bool IsValidName(const TString& rkName, bool Directory, bool RootDir = false); bool IsValidPath(const TString& rkPath, bool Directory); void GetDirectoryContents(TString DirPath, TStringList& rOut, bool Recursive = true, bool IncludeFiles = true, bool IncludeDirs = true); TString FindFileExtension(const TString& rkDir, const TString& rkName); +bool LoadFileToString(const TString& rkFilePath, TString& rOut); } diff --git a/src/Common/Flags.h b/src/Common/Flags.h index 90b96b5a..2b380512 100644 --- a/src/Common/Flags.h +++ b/src/Common/Flags.h @@ -13,7 +13,7 @@ public: TFlags() : mValue(0) {} TFlags(int Val) : mValue(Val) {} TFlags(u32 Val) : mValue(Val) {} - TFlags(FlagEnum Val) : mValue(Val) {} + TFlags(FlagEnum Val) : mValue((u32) Val) {} inline operator int() const { return mValue; } inline bool operator!() const { return !mValue; } @@ -22,25 +22,41 @@ public: inline void operator&=(int Mask) { mValue &= Mask; } inline void operator&=(u32 Mask) { mValue &= Mask; } inline void operator|=(TFlags Flags) { mValue |= Flags.mValue; } - inline void operator|=(FlagEnum Flag) { mValue |= Flag; } + inline void operator|=(FlagEnum Flag) { mValue |= (u32) Flag; } inline TFlags operator|(TFlags Flags) const { return TFlags(FlagEnum(mValue | Flags.mValue)); } - inline TFlags operator|(FlagEnum Flag) const { return TFlags(FlagEnum(mValue | Flag)); } + inline TFlags operator|(FlagEnum Flag) const { return TFlags(FlagEnum(mValue | (u32) Flag)); } inline TFlags operator&(int Mask) const { return TFlags(FlagEnum(mValue & Mask)); } inline TFlags operator&(u32 Mask) const { return TFlags(FlagEnum(mValue & Mask)); } - inline TFlags operator&(FlagEnum Flag) const { return TFlags(FlagEnum(mValue & Flag)); } + inline TFlags operator&(FlagEnum Flag) const { return TFlags(FlagEnum(mValue & (u32) Flag)); } - inline bool HasFlag(FlagEnum Flag) const { return ((mValue & Flag) != 0); } + inline bool HasFlag(FlagEnum Flag) const { return ((mValue & (u32) Flag) != 0); } inline bool HasAnyFlags(TFlags Flags) const { return ((mValue & Flags) != 0); } inline bool HasAllFlags(TFlags Flags) const { return ((mValue & Flags) == Flags); } - inline void SetFlag(FlagEnum Flag) { mValue |= Flag; } + inline void SetFlag(FlagEnum Flag) { mValue |= (u32) Flag; } inline void SetFlag(TFlags Flags) { mValue |= Flags; } - inline void ClearFlag(FlagEnum Flag) { mValue &= ~Flag; } + inline void ClearFlag(FlagEnum Flag) { mValue &= ~((u32) Flag); } inline void ClearFlag(TFlags Flags) { mValue &= ~Flags; } - inline void Serialize(IArchive& rArc) { rArc.SerializeHexPrimitive(mValue); } + inline void Serialize(IArchive& rArc) { rArc.SerializePrimitive(mValue, SH_HexDisplay); } }; #define DECLARE_FLAGS(Enum, FlagTypeName) typedef TFlags FlagTypeName; +// Alternate version for enum class flags +#define DECLARE_FLAGS_ENUMCLASS(Enum, FlagTypeName) \ + DECLARE_FLAGS(Enum, FlagTypeName) \ + inline int operator|(Enum Left, Enum Right) \ + { \ + return (int) Left | (int) Right; \ + } \ + inline int operator&(Enum Left, Enum Right) \ + { \ + return (int) Left & (int) Right; \ + } \ + inline int operator~(Enum Value) \ + { \ + return ~((int) Value); \ + } \ + #endif // FLAGS_H diff --git a/src/Common/Hash/CCRC32.cpp b/src/Common/Hash/CCRC32.cpp new file mode 100644 index 00000000..810e3ecd --- /dev/null +++ b/src/Common/Hash/CCRC32.cpp @@ -0,0 +1,128 @@ +#include "CCRC32.h" + +const u32 gkCrcTable[] = { + 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, + 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, + 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2, + 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, + 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, + 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, + 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c, + 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, + 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, + 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, + 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106, + 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, + 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, + 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, + 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, + 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, + 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, + 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, + 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, + 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, + 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, + 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, + 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, + 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, + 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, + 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, + 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e, + 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, + 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, + 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, + 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, + 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, + 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, + 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, + 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, + 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, + 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, + 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, + 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, + 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, + 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, + 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, + 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d +}; + +/** Default constructor, initializes the hash to the default value */ +CCRC32::CCRC32() + : mHash( 0xFFFFFFFF ) +{ +} + +/** Allows the hash to be initialized to an arbitrary value */ +CCRC32::CCRC32(u32 InitialValue) + : mHash( InitialValue ) +{ +} + +/** Hash arbitrary data */ +void CCRC32::Hash(const void* pkData, int Size) +{ + const u8* pkCastData = static_cast(pkData); + + while (Size--) + { + mHash = gkCrcTable[(mHash ^ *pkCastData++) & 0xFF] ^ (mHash >> 8); + } +} + +/** Retrieve the final output hash. (You can keep adding data to the hash after calling this.) */ +u32 CCRC32::Digest() const +{ + return mHash; +} + +/** Convenience hash methods */ +void CCRC32::Hash(u8 v) +{ + Hash(&v, 1); +} + +void CCRC32::Hash(u16 v) +{ + Hash(&v, 2); +} + +void CCRC32::Hash(u32 v) +{ + Hash(&v, 4); +} + +void CCRC32::Hash(u64 v) +{ + Hash(&v, 8); +} + +void CCRC32::Hash(float v) +{ + Hash(&v, 4); +} + +void CCRC32::Hash(double v) +{ + Hash(&v, 8); +} + +void CCRC32::Hash(char v) +{ + Hash(&v, 1); +} + +void CCRC32::Hash(const char* pkString) +{ + while (*pkString) + { + Hash(pkString++, 1); + } +} + +/** Static */ +u32 CCRC32::StaticHashString(const char* pkString) +{ + CCRC32 Hasher; + Hasher.Hash(pkString); + return Hasher.Digest(); +} diff --git a/src/Common/Hash/CCRC32.h b/src/Common/Hash/CCRC32.h new file mode 100644 index 00000000..bddfb600 --- /dev/null +++ b/src/Common/Hash/CCRC32.h @@ -0,0 +1,41 @@ +#ifndef CCRC32_H +#define CCRC32_H + +#include "Common/TString.h" +#include "Common/types.h" + +/** + * CRC32 hash implementation + */ +class CCRC32 +{ + /** Current hash value */ + u32 mHash; + +public: + /** Default constructor, initializes the hash to the default value */ + CCRC32(); + + /** Allows the hash to be initialized to an arbitrary value */ + CCRC32(u32 InitialValue); + + /** Hash arbitrary data */ + void Hash(const void* pkData, int Size); + + /** Retrieve the final output hash. (You can keep adding data to the hash after calling this.) */ + u32 Digest() const; + + /** Convenience hash methods */ + void Hash(u8 v); + void Hash(u16 v); + void Hash(u32 v); + void Hash(u64 v); + void Hash(float v); + void Hash(double v); + void Hash(char v); + void Hash(const char* pkString); + + static u32 StaticHashString(const char* pkString); +}; + +#endif // CCRC32_H diff --git a/src/Common/CHashFNV1A.h b/src/Common/Hash/CFNV1A.h similarity index 90% rename from src/Common/CHashFNV1A.h rename to src/Common/Hash/CFNV1A.h index d0fb37d2..cc3ba211 100644 --- a/src/Common/CHashFNV1A.h +++ b/src/Common/Hash/CFNV1A.h @@ -1,10 +1,10 @@ -#ifndef CHASHFNV1A_H -#define CHASHFNV1A_H +#ifndef CFNV1A_H +#define CFNV1A_H -#include "types.h" -#include "TString.h" +#include "Common/types.h" +#include "Common/TString.h" -class CHashFNV1A +class CFNV1A { public: enum EHashLength { @@ -21,7 +21,7 @@ private: static const u64 skFNVPrime64 = 0x100000001B3; public: - CHashFNV1A(EHashLength Length) + CFNV1A(EHashLength Length) { if (Length == e32Bit) Init32(); @@ -65,4 +65,4 @@ public: inline void HashString(const TString& rkVal) { HashData(rkVal.Data(), rkVal.Size()); } }; -#endif // CHASHFNV1A_H +#endif // CFNV1A_H diff --git a/src/Common/Log.cpp b/src/Common/Log.cpp index 39643149..85df7423 100644 --- a/src/Common/Log.cpp +++ b/src/Common/Log.cpp @@ -53,8 +53,10 @@ bool InitLog(const TString& rkFilename) fprintf(gpLogFile, "Opened log file at %s\n", Buffer); fflush(gpLogFile); +#ifdef APP_FULL_NAME // Print app name and version fprintf(gpLogFile, APP_FULL_NAME"\n"); +#endif // Print any messages that were attempted before we initialized if (!gPreInitLogs.empty()) diff --git a/src/Common/NBasics.h b/src/Common/NBasics.h new file mode 100644 index 00000000..48a144ce --- /dev/null +++ b/src/Common/NBasics.h @@ -0,0 +1,97 @@ +#ifndef NBASICS_H +#define NBASICS_H + +#include "types.h" +#include + +namespace NBasics +{ + +/** Remove an element from a container */ +template +bool ContainerRemoveOne(ContainerT& Container, const T& kElement) +{ + for (auto Iter = Container.begin(); Iter != Container.end(); Iter++) + { + if (*Iter == kElement) + { + Container.erase(Iter); + return true; + } + } + return false; +} + +template +inline bool VectorRemoveOne(std::vector& Vector, const T& kElement) +{ + return ContainerRemoveOne< T, std::vector >(Vector, kElement); +} + +template +inline bool ListRemoveOne(std::list& List, const T& kElement) +{ + return ContainerRemoveOne< T, std::list >(List, kElement); +} + +/** Remove all occurrences of an element from a container. Returns the number of elements that were removed. */ +template +int ContainerRemoveAll(ContainerT& Container, const T& kElement) +{ + int NumRemoved = 0; + + for (auto Iter = Container.begin(); Iter != Container.end(); Iter++) + { + if (*Iter == kElement) + { + Iter = Container.erase(Iter); + NumRemoved++; + } + } + + return NumRemoved; +} + +template +inline int VectorRemoveAll(std::vector& Vector, const T& kElement) +{ + return ContainerRemoveAll< T, std::vector >(Vector, kElement); +} + +template +inline int ListRemoveAll(std::list& List, const T& kElement) +{ + return ContainerRemoveAll< T, std::list >(List, kElement); +} + +/** Returns whether the vector contains the given element */ +template +bool VectorContains(std::vector& Vector, const T& kElement) +{ + for (auto Iter = Vector.begin(); Iter != Vector.end(); Iter++) + { + if (*Iter == kElement) + { + return true; + } + } + + return false; +} + +/** Adds an element to a vector only if it is not already present */ +template +bool VectorAddUnique(std::vector& Vector, const T& kElement) +{ + if (!VectorContains(Vector, kElement)) + { + Vector.push_back(kElement); + return true; + } + + return false; +} + +} + +#endif // NBASICS_H diff --git a/src/Common/Serialization/CBasicBinaryReader.h b/src/Common/Serialization/CBasicBinaryReader.h index 6ebe724b..bf9534db 100644 --- a/src/Common/Serialization/CBasicBinaryReader.h +++ b/src/Common/Serialization/CBasicBinaryReader.h @@ -17,29 +17,41 @@ class CBasicBinaryReader : public IArchive public: CBasicBinaryReader(const TString& rkFilename, u32 Magic) - : IArchive(true, false) + : IArchive() , mOwnsStream(true) { + mArchiveFlags = AF_Binary | AF_Reader | AF_NoSkipping; mpStream = new CFileInStream(rkFilename, IOUtil::eBigEndian); if (mpStream->IsValid()) { mMagicValid = (mpStream->ReadLong() == Magic); - CSerialVersion Version(*mpStream); - SetVersion(Version); + SerializeVersion(); } } CBasicBinaryReader(IInputStream *pStream, const CSerialVersion& rkVersion) - : IArchive(true, false) + : IArchive() , mMagicValid(true) , mOwnsStream(false) { + mArchiveFlags = AF_Binary | AF_Reader | AF_NoSkipping; + ASSERT(pStream->IsValid()); mpStream = pStream; SetVersion(rkVersion); } + CBasicBinaryReader(void *pData, u32 DataSize, const CSerialVersion& rkVersion, IOUtil::EEndianness Endian = IOUtil::kSystemEndianness) + : IArchive() + , mMagicValid(true) + , mOwnsStream(true) + { + mArchiveFlags = AF_Binary | AF_Reader | AF_NoSkipping; + mpStream = new CMemoryInStream(pData, DataSize, Endian); + SetVersion(rkVersion); + } + ~CBasicBinaryReader() { if (mOwnsStream) delete mpStream; @@ -48,32 +60,33 @@ public: inline bool IsValid() const { return mpStream->IsValid(); } // Interface - virtual bool ParamBegin(const char*) { return true; } - virtual void ParamEnd() { } + virtual bool IsReader() const { return true; } + virtual bool IsWriter() const { return false; } + virtual bool IsTextFormat() const { return false; } - virtual void SerializeContainerSize(u32& rSize, const TString&) { SerializePrimitive(rSize); } - virtual void SerializeAbstractObjectType(u32& rType) { SerializePrimitive(rType); } - virtual void SerializePrimitive(bool& rValue) { rValue = mpStream->ReadBool(); } - virtual void SerializePrimitive(char& rValue) { rValue = mpStream->ReadByte(); } - virtual void SerializePrimitive(s8& rValue) { rValue = mpStream->ReadByte(); } - virtual void SerializePrimitive(u8& rValue) { rValue = mpStream->ReadByte(); } - virtual void SerializePrimitive(s16& rValue) { rValue = mpStream->ReadShort(); } - virtual void SerializePrimitive(u16& rValue) { rValue = mpStream->ReadShort(); } - virtual void SerializePrimitive(s32& rValue) { rValue = mpStream->ReadLong(); } - virtual void SerializePrimitive(u32& rValue) { rValue = mpStream->ReadLong(); } - virtual void SerializePrimitive(s64& rValue) { rValue = mpStream->ReadLongLong(); } - virtual void SerializePrimitive(u64& rValue) { rValue = mpStream->ReadLongLong(); } - virtual void SerializePrimitive(float& rValue) { rValue = mpStream->ReadFloat(); } - virtual void SerializePrimitive(double& rValue) { rValue = mpStream->ReadDouble(); } - virtual void SerializePrimitive(TString& rValue) { rValue = mpStream->ReadSizedString(); } - virtual void SerializePrimitive(TWideString& rValue) { rValue = mpStream->ReadSizedWString(); } - virtual void SerializePrimitive(CFourCC& rValue) { rValue = CFourCC(*mpStream); } - virtual void SerializePrimitive(CAssetID& rValue) { rValue = CAssetID(*mpStream, mGame); } + virtual bool ParamBegin(const char*, u32) { return true; } + virtual void ParamEnd() { } - virtual void SerializeHexPrimitive(u8& rValue) { rValue = mpStream->ReadByte(); } - virtual void SerializeHexPrimitive(u16& rValue) { rValue = mpStream->ReadShort(); } - virtual void SerializeHexPrimitive(u32& rValue) { rValue = mpStream->ReadLong(); } - virtual void SerializeHexPrimitive(u64& rValue) { rValue = mpStream->ReadLongLong(); } + virtual bool PreSerializePointer(void*& Pointer, u32 Flags) { return ArchiveVersion() >= eArVer_Refactor ? mpStream->ReadBool() : true; } + virtual void SerializeContainerSize(u32& rSize, const TString&, u32 Flags) { SerializePrimitive(rSize, Flags); } + virtual void SerializeBulkData(void* pData, u32 Size, u32 Flags) { mpStream->ReadBytes(pData, Size); } + + virtual void SerializePrimitive(bool& rValue, u32 Flags) { rValue = mpStream->ReadBool(); } + virtual void SerializePrimitive(char& rValue, u32 Flags) { rValue = mpStream->ReadByte(); } + virtual void SerializePrimitive(s8& rValue, u32 Flags) { rValue = mpStream->ReadByte(); } + virtual void SerializePrimitive(u8& rValue, u32 Flags) { rValue = mpStream->ReadByte(); } + virtual void SerializePrimitive(s16& rValue, u32 Flags) { rValue = mpStream->ReadShort(); } + virtual void SerializePrimitive(u16& rValue, u32 Flags) { rValue = mpStream->ReadShort(); } + virtual void SerializePrimitive(s32& rValue, u32 Flags) { rValue = mpStream->ReadLong(); } + virtual void SerializePrimitive(u32& rValue, u32 Flags) { rValue = mpStream->ReadLong(); } + virtual void SerializePrimitive(s64& rValue, u32 Flags) { rValue = mpStream->ReadLongLong(); } + virtual void SerializePrimitive(u64& rValue, u32 Flags) { rValue = mpStream->ReadLongLong(); } + virtual void SerializePrimitive(float& rValue, u32 Flags) { rValue = mpStream->ReadFloat(); } + virtual void SerializePrimitive(double& rValue, u32 Flags) { rValue = mpStream->ReadDouble(); } + virtual void SerializePrimitive(TString& rValue, u32 Flags) { rValue = mpStream->ReadSizedString(); } + virtual void SerializePrimitive(TWideString& rValue, u32 Flags) { rValue = mpStream->ReadSizedWString(); } + virtual void SerializePrimitive(CFourCC& rValue, u32 Flags) { rValue = CFourCC(*mpStream); } + virtual void SerializePrimitive(CAssetID& rValue, u32 Flags) { rValue = CAssetID(*mpStream, mGame); } }; #endif // CBASICBINARYREADER diff --git a/src/Common/Serialization/CBasicBinaryWriter.h b/src/Common/Serialization/CBasicBinaryWriter.h index ebc86af3..10408448 100644 --- a/src/Common/Serialization/CBasicBinaryWriter.h +++ b/src/Common/Serialization/CBasicBinaryWriter.h @@ -16,34 +16,37 @@ class CBasicBinaryWriter : public IArchive public: CBasicBinaryWriter(const TString& rkFilename, u32 Magic, u16 FileVersion, EGame Game) - : IArchive(false, true) + : IArchive() , mMagic(Magic) , mOwnsStream(true) { + mArchiveFlags = AF_Binary | AF_Writer | AF_NoSkipping; mpStream = new CFileOutStream(rkFilename, IOUtil::eBigEndian); if (mpStream->IsValid()) { mpStream->WriteLong(0); // Magic is written after the rest of the file is successfully saved SetVersion(skCurrentArchiveVersion, FileVersion, Game); - GetVersionInfo().Write(*mpStream); + SerializeVersion(); } } CBasicBinaryWriter(IOutputStream *pStream, u16 FileVersion, EGame Game) - : IArchive(false, true) + : IArchive() , mOwnsStream(false) { ASSERT(pStream->IsValid()); + mArchiveFlags = AF_Binary | AF_Writer | AF_NoSkipping; mpStream = pStream; SetVersion(skCurrentArchiveVersion, FileVersion, Game); } CBasicBinaryWriter(IOutputStream *pStream, const CSerialVersion& rkVersion) - : IArchive(false, true) + : IArchive() , mOwnsStream(false) { ASSERT(pStream->IsValid()); + mArchiveFlags = AF_Binary | AF_Writer | AF_NoSkipping; mpStream = pStream; SetVersion(rkVersion); } @@ -62,32 +65,39 @@ public: inline bool IsValid() const { return mpStream->IsValid(); } // Interface - virtual bool ParamBegin(const char*) { return true; } - virtual void ParamEnd() { } + virtual bool IsReader() const { return false; } + virtual bool IsWriter() const { return true; } + virtual bool IsTextFormat() const { return false; } - virtual void SerializeContainerSize(u32& rSize, const TString&) { mpStream->WriteLong(rSize); } - virtual void SerializeAbstractObjectType(u32& rType) { mpStream->WriteLong(rType); } - virtual void SerializePrimitive(bool& rValue) { mpStream->WriteBool(rValue); } - virtual void SerializePrimitive(char& rValue) { mpStream->WriteByte(rValue); } - virtual void SerializePrimitive(s8& rValue) { mpStream->WriteByte(rValue); } - virtual void SerializePrimitive(u8& rValue) { mpStream->WriteByte(rValue); } - virtual void SerializePrimitive(s16& rValue) { mpStream->WriteShort(rValue); } - virtual void SerializePrimitive(u16& rValue) { mpStream->WriteShort(rValue); } - virtual void SerializePrimitive(s32& rValue) { mpStream->WriteLong(rValue); } - virtual void SerializePrimitive(u32& rValue) { mpStream->WriteLong(rValue); } - virtual void SerializePrimitive(s64& rValue) { mpStream->WriteLongLong(rValue); } - virtual void SerializePrimitive(u64& rValue) { mpStream->WriteLongLong(rValue); } - virtual void SerializePrimitive(float& rValue) { mpStream->WriteFloat(rValue); } - virtual void SerializePrimitive(double& rValue) { mpStream->WriteDouble(rValue); } - virtual void SerializePrimitive(TString& rValue) { mpStream->WriteSizedString(rValue); } - virtual void SerializePrimitive(TWideString& rValue) { mpStream->WriteSizedWString(rValue); } - virtual void SerializePrimitive(CFourCC& rValue) { rValue.Write(*mpStream); } - virtual void SerializePrimitive(CAssetID& rValue) { rValue.Write(*mpStream, CAssetID::GameIDLength(Game())); } + virtual bool ParamBegin(const char*, u32) { return true; } + virtual void ParamEnd() { } - virtual void SerializeHexPrimitive(u8& rValue) { mpStream->WriteByte(rValue); } - virtual void SerializeHexPrimitive(u16& rValue) { mpStream->WriteShort(rValue); } - virtual void SerializeHexPrimitive(u32& rValue) { mpStream->WriteLong(rValue); } - virtual void SerializeHexPrimitive(u64& rValue) { mpStream->WriteLongLong(rValue); } + virtual bool PreSerializePointer(void*& Pointer, u32 Flags) + { + bool ValidPtr = (Pointer != nullptr); + mpStream->WriteBool(ValidPtr); + return ValidPtr; + } + + virtual void SerializeContainerSize(u32& rSize, const TString&) { mpStream->WriteLong(rSize); } + + virtual void SerializePrimitive(bool& rValue, u32 Flags) { mpStream->WriteBool(rValue); } + virtual void SerializePrimitive(char& rValue, u32 Flags) { mpStream->WriteByte(rValue); } + virtual void SerializePrimitive(s8& rValue, u32 Flags) { mpStream->WriteByte(rValue); } + virtual void SerializePrimitive(u8& rValue, u32 Flags) { mpStream->WriteByte(rValue); } + virtual void SerializePrimitive(s16& rValue, u32 Flags) { mpStream->WriteShort(rValue); } + virtual void SerializePrimitive(u16& rValue, u32 Flags) { mpStream->WriteShort(rValue); } + virtual void SerializePrimitive(s32& rValue, u32 Flags) { mpStream->WriteLong(rValue); } + virtual void SerializePrimitive(u32& rValue, u32 Flags) { mpStream->WriteLong(rValue); } + virtual void SerializePrimitive(s64& rValue, u32 Flags) { mpStream->WriteLongLong(rValue); } + virtual void SerializePrimitive(u64& rValue, u32 Flags) { mpStream->WriteLongLong(rValue); } + virtual void SerializePrimitive(float& rValue, u32 Flags) { mpStream->WriteFloat(rValue); } + virtual void SerializePrimitive(double& rValue, u32 Flags) { mpStream->WriteDouble(rValue); } + virtual void SerializePrimitive(TString& rValue, u32 Flags) { mpStream->WriteSizedString(rValue); } + virtual void SerializePrimitive(TWideString& rValue, u32 Flags) { mpStream->WriteSizedWString(rValue); } + virtual void SerializePrimitive(CFourCC& rValue, u32 Flags) { rValue.Write(*mpStream); } + virtual void SerializePrimitive(CAssetID& rValue, u32 Flags) { rValue.Write(*mpStream, CAssetID::GameIDLength(Game())); } + virtual void SerializeBulkData(void* pData, u32 Size, u32 Flags) { mpStream->WriteBytes(pData, Size); } }; #endif // CBASICBINARYWRITER diff --git a/src/Common/Serialization/CBinaryReader.h b/src/Common/Serialization/CBinaryReader.h index f224d1d8..981d9f9c 100644 --- a/src/Common/Serialization/CBinaryReader.h +++ b/src/Common/Serialization/CBinaryReader.h @@ -7,43 +7,46 @@ class CBinaryReader : public IArchive { - struct SParameter + struct SBinaryParm { u32 Offset; u32 Size; u32 NumChildren; u32 ChildIndex; - bool Abstract; }; - std::vector mParamStack; + std::vector mBinaryParmStack; IInputStream *mpStream; bool mMagicValid; bool mOwnsStream; + bool mInAttribute; public: CBinaryReader(const TString& rkFilename, u32 Magic) - : IArchive(true, false) + : IArchive() , mOwnsStream(true) + , mInAttribute(false) { + mArchiveFlags = AF_Reader | AF_Binary; mpStream = new CFileInStream(rkFilename, IOUtil::eBigEndian); if (mpStream->IsValid()) { mMagicValid = (mpStream->ReadLong() == Magic); - CSerialVersion Version(*mpStream); - SetVersion(Version); } InitParamStack(); + SerializeVersion(); } CBinaryReader(IInputStream *pStream, const CSerialVersion& rkVersion) - : IArchive(true, false) + : IArchive() , mMagicValid(true) , mOwnsStream(false) + , mInAttribute(false) { ASSERT(pStream && pStream->IsValid()); + mArchiveFlags = AF_Reader | AF_Binary; mpStream = pStream; SetVersion(rkVersion); @@ -64,8 +67,8 @@ private: u32 Size = ReadSize(); u32 Offset = mpStream->Tell(); u32 NumChildren = ReadSize(); - mParamStack.push_back( SParameter { Offset, Size, NumChildren, 0, false } ); - mParamStack.reserve(20); + mBinaryParmStack.push_back( SBinaryParm { Offset, Size, NumChildren, 0 } ); + mBinaryParmStack.reserve(20); } public: @@ -75,12 +78,12 @@ public: return (mArchiveVersion < eArVer_32BitBinarySize ? (u32) mpStream->ReadShort() : mpStream->ReadLong()); } - virtual bool ParamBegin(const char *pkName) + virtual bool ParamBegin(const char *pkName, u32 Flags) { // If this is the parent parameter's first child, then read the child count - if (mParamStack.back().NumChildren == 0xFFFFFFFF) + if (mBinaryParmStack.back().NumChildren == 0xFFFFFFFF) { - mParamStack.back().NumChildren = ReadSize(); + mBinaryParmStack.back().NumChildren = ReadSize(); } // Save current offset @@ -88,26 +91,25 @@ public: u32 ParamID = TString(pkName).Hash32(); // Check the next parameter ID first and check whether it's a match for the current parameter - if (mParamStack.back().ChildIndex < mParamStack.back().NumChildren) + if (mBinaryParmStack.back().ChildIndex < mBinaryParmStack.back().NumChildren) { u32 NextID = mpStream->ReadLong(); u32 NextSize = ReadSize(); // Does the next parameter ID match the current one? - if (NextID == ParamID) + if (NextID == ParamID || (Flags & SH_IgnoreName)) { - mParamStack.push_back( SParameter { mpStream->Tell(), NextSize, 0xFFFFFFFF, 0, false } ); + mBinaryParmStack.push_back( SBinaryParm { mpStream->Tell(), NextSize, 0xFFFFFFFF, 0 } ); return true; } } // It's not a match - return to the parent parameter's first child and check all children to find a match - if (!mParamStack.empty()) + if (!mBinaryParmStack.empty()) { - bool ParentAbstract = mParamStack.back().Abstract; - u32 ParentOffset = mParamStack.back().Offset; - u32 NumChildren = mParamStack.back().NumChildren; - mpStream->GoTo(ParentOffset + (ParentAbstract ? 4 : 0)); + u32 ParentOffset = mBinaryParmStack.back().Offset; + u32 NumChildren = mBinaryParmStack.back().NumChildren; + mpStream->GoTo(ParentOffset); for (u32 ChildIdx = 0; ChildIdx < NumChildren; ChildIdx++) { @@ -118,8 +120,8 @@ public: mpStream->Skip(ChildSize); else { - mParamStack.back().ChildIndex = ChildIdx; - mParamStack.push_back( SParameter { mpStream->Tell(), ChildSize, 0xFFFFFFFF, 0, false } ); + mBinaryParmStack.back().ChildIndex = ChildIdx; + mBinaryParmStack.push_back( SBinaryParm { mpStream->Tell(), ChildSize, 0xFFFFFFFF, 0 } ); return true; } } @@ -133,14 +135,28 @@ public: virtual void ParamEnd() { // Make sure we're at the end of the parameter - SParameter& rParam = mParamStack.back(); + SBinaryParm& rParam = mBinaryParmStack.back(); u32 EndOffset = rParam.Offset + rParam.Size; mpStream->GoTo(EndOffset); - mParamStack.pop_back(); + mBinaryParmStack.pop_back(); // Increment parent child index - if (!mParamStack.empty()) - mParamStack.back().ChildIndex++; + if (!mBinaryParmStack.empty()) + mBinaryParmStack.back().ChildIndex++; + } + + virtual bool PreSerializePointer(void*& Pointer, u32 Flags) + { + if (ArchiveVersion() >= eArVer_Refactor) + { + bool ValidPtr = (Pointer != nullptr); + *this << SerialParameter("PointerValid", ValidPtr); + return ValidPtr; + } + else + { + return true; + } } virtual void SerializeContainerSize(u32& rSize, const TString& /*rkElemName*/) @@ -149,34 +165,23 @@ public: rSize = (mArchiveVersion < eArVer_32BitBinarySize ? (u32) mpStream->PeekShort() : mpStream->PeekLong()); } - virtual void SerializeAbstractObjectType(u32& rType) - { - // Mark current parameter as abstract so we can account for the object type in the filestream - rType = mpStream->ReadLong(); - mParamStack.back().Abstract = true; - } - - virtual void SerializePrimitive(bool& rValue) { rValue = mpStream->ReadBool(); } - virtual void SerializePrimitive(char& rValue) { rValue = mpStream->ReadByte(); } - virtual void SerializePrimitive(s8& rValue) { rValue = mpStream->ReadByte(); } - virtual void SerializePrimitive(u8& rValue) { rValue = mpStream->ReadByte(); } - virtual void SerializePrimitive(s16& rValue) { rValue = mpStream->ReadShort(); } - virtual void SerializePrimitive(u16& rValue) { rValue = mpStream->ReadShort(); } - virtual void SerializePrimitive(s32& rValue) { rValue = mpStream->ReadLong(); } - virtual void SerializePrimitive(u32& rValue) { rValue = mpStream->ReadLong(); } - virtual void SerializePrimitive(s64& rValue) { rValue = mpStream->ReadLongLong(); } - virtual void SerializePrimitive(u64& rValue) { rValue = mpStream->ReadLongLong(); } - virtual void SerializePrimitive(float& rValue) { rValue = mpStream->ReadFloat(); } - virtual void SerializePrimitive(double& rValue) { rValue = mpStream->ReadDouble(); } - virtual void SerializePrimitive(TString& rValue) { rValue = mpStream->ReadSizedString(); } - virtual void SerializePrimitive(TWideString& rValue) { rValue = mpStream->ReadSizedWString(); } - virtual void SerializePrimitive(CFourCC& rValue) { rValue = CFourCC(*mpStream); } - virtual void SerializePrimitive(CAssetID& rValue) { rValue = CAssetID(*mpStream, Game()); } - - virtual void SerializeHexPrimitive(u8& rValue) { rValue = mpStream->ReadByte(); } - virtual void SerializeHexPrimitive(u16& rValue) { rValue = mpStream->ReadShort(); } - virtual void SerializeHexPrimitive(u32& rValue) { rValue = mpStream->ReadLong(); } - virtual void SerializeHexPrimitive(u64& rValue) { rValue = mpStream->ReadLongLong(); } + virtual void SerializePrimitive(bool& rValue, u32 Flags) { rValue = mpStream->ReadBool(); } + virtual void SerializePrimitive(char& rValue, u32 Flags) { rValue = mpStream->ReadByte(); } + virtual void SerializePrimitive(s8& rValue, u32 Flags) { rValue = mpStream->ReadByte(); } + virtual void SerializePrimitive(u8& rValue, u32 Flags) { rValue = mpStream->ReadByte(); } + virtual void SerializePrimitive(s16& rValue, u32 Flags) { rValue = mpStream->ReadShort(); } + virtual void SerializePrimitive(u16& rValue, u32 Flags) { rValue = mpStream->ReadShort(); } + virtual void SerializePrimitive(s32& rValue, u32 Flags) { rValue = mpStream->ReadLong(); } + virtual void SerializePrimitive(u32& rValue, u32 Flags) { rValue = mpStream->ReadLong(); } + virtual void SerializePrimitive(s64& rValue, u32 Flags) { rValue = mpStream->ReadLongLong(); } + virtual void SerializePrimitive(u64& rValue, u32 Flags) { rValue = mpStream->ReadLongLong(); } + virtual void SerializePrimitive(float& rValue, u32 Flags) { rValue = mpStream->ReadFloat(); } + virtual void SerializePrimitive(double& rValue, u32 Flags) { rValue = mpStream->ReadDouble(); } + virtual void SerializePrimitive(TString& rValue, u32 Flags) { rValue = mpStream->ReadSizedString(); } + virtual void SerializePrimitive(TWideString& rValue, u32 Flags) { rValue = mpStream->ReadSizedWString(); } + virtual void SerializePrimitive(CFourCC& rValue, u32 Flags) { rValue = CFourCC(*mpStream); } + virtual void SerializePrimitive(CAssetID& rValue, u32 Flags) { rValue = CAssetID(*mpStream, Game()); } + virtual void SerializeBulkData(void* pData, u32 Size, u32 Flags) { mpStream->ReadBytes(pData, Size); } }; #endif // CBINARYREADER diff --git a/src/Common/Serialization/CBinaryWriter.h b/src/Common/Serialization/CBinaryWriter.h index 675b6b63..4110dc24 100644 --- a/src/Common/Serialization/CBinaryWriter.h +++ b/src/Common/Serialization/CBinaryWriter.h @@ -10,7 +10,6 @@ class CBinaryWriter : public IArchive { u32 Offset; u32 NumSubParams; - bool Abstract; }; std::vector mParamStack; @@ -19,40 +18,43 @@ class CBinaryWriter : public IArchive bool mOwnsStream; public: - CBinaryWriter(const TString& rkFilename, u32 Magic, u16 FileVersion, EGame Game) - : IArchive(false, true) + CBinaryWriter(const TString& rkFilename, u32 Magic, u16 FileVersion = 0, EGame Game = EGame::Invalid) + : IArchive() , mMagic(Magic) , mOwnsStream(true) { + mArchiveFlags = AF_Writer | AF_Binary; mpStream = new CFileOutStream(rkFilename, IOUtil::eBigEndian); if (mpStream->IsValid()) { mpStream->WriteLong(0); // Magic is written after the rest of the file has been successfully written SetVersion(skCurrentArchiveVersion, FileVersion, Game); - GetVersionInfo().Write(*mpStream); } InitParamStack(); + SerializeVersion(); } - CBinaryWriter(IOutputStream *pStream, u16 FileVersion, EGame Game) - : IArchive(false, true) + CBinaryWriter(IOutputStream *pStream, u16 FileVersion = 0, EGame Game = EGame::Invalid) + : IArchive() , mMagic(0) , mOwnsStream(false) { ASSERT(pStream && pStream->IsValid()); + mArchiveFlags = AF_Writer | AF_Binary; mpStream = pStream; SetVersion(skCurrentArchiveVersion, FileVersion, Game); InitParamStack(); } CBinaryWriter(IOutputStream *pStream, const CSerialVersion& rkVersion) - : IArchive(false, true) + : IArchive() , mMagic(0) , mOwnsStream(false) { ASSERT(pStream && pStream->IsValid()); + mArchiveFlags = AF_Writer | AF_Binary; mpStream = pStream; SetVersion(rkVersion); InitParamStack(); @@ -83,12 +85,12 @@ private: mParamStack.reserve(20); mpStream->WriteLong(0xFFFFFFFF); mpStream->WriteLong(0); // Size filler - mParamStack.push_back( SParameter { mpStream->Tell(), 0, false } ); + mParamStack.push_back( SParameter { mpStream->Tell(), 0 } ); } public: // Interface - virtual bool ParamBegin(const char *pkName) + virtual bool ParamBegin(const char *pkName, u32 Flags) { // Update parent param mParamStack.back().NumSubParams++; @@ -102,7 +104,7 @@ public: mpStream->WriteLong(-1); // Param size filler // Add new param to the stack - mParamStack.push_back( SParameter { mpStream->Tell(), 0, false } ); + mParamStack.push_back( SParameter { mpStream->Tell(), 0 } ); return true; } @@ -121,7 +123,6 @@ public: // Write param child count if (rParam.NumSubParams > 0 || mParamStack.size() == 1) { - if (rParam.Abstract) mpStream->Skip(4); mpStream->WriteLong(rParam.NumSubParams); } @@ -129,6 +130,13 @@ public: mParamStack.pop_back(); } + virtual bool PreSerializePointer(void*& Pointer, u32 Flags) + { + bool ValidPtr = (Pointer != nullptr); + *this << SerialParameter("PointerValid", ValidPtr); + return ValidPtr; + } + virtual void SerializeContainerSize(u32& rSize, const TString& /*rkElemName*/) { // Normally handled by ParamBegin and ParamEnd but we need to do something here to account for zero-sized containers @@ -136,34 +144,23 @@ public: mpStream->WriteLong(0); } - virtual void SerializeAbstractObjectType(u32& rType) - { - // Mark this parameter as abstract so we can account for the object type in the filestream - mpStream->WriteLong(rType); - mParamStack.back().Abstract = true; - } - - virtual void SerializePrimitive(bool& rValue) { mpStream->WriteBool(rValue); } - virtual void SerializePrimitive(char& rValue) { mpStream->WriteByte(rValue); } - virtual void SerializePrimitive(s8& rValue) { mpStream->WriteByte(rValue); } - virtual void SerializePrimitive(u8& rValue) { mpStream->WriteByte(rValue); } - virtual void SerializePrimitive(s16& rValue) { mpStream->WriteShort(rValue); } - virtual void SerializePrimitive(u16& rValue) { mpStream->WriteShort(rValue); } - virtual void SerializePrimitive(s32& rValue) { mpStream->WriteLong(rValue); } - virtual void SerializePrimitive(u32& rValue) { mpStream->WriteLong(rValue); } - virtual void SerializePrimitive(s64& rValue) { mpStream->WriteLongLong(rValue); } - virtual void SerializePrimitive(u64& rValue) { mpStream->WriteLongLong(rValue); } - virtual void SerializePrimitive(float& rValue) { mpStream->WriteFloat(rValue); } - virtual void SerializePrimitive(double& rValue) { mpStream->WriteDouble(rValue); } - virtual void SerializePrimitive(TString& rValue) { mpStream->WriteSizedString(rValue); } - virtual void SerializePrimitive(TWideString& rValue) { mpStream->WriteSizedWString(rValue); } - virtual void SerializePrimitive(CFourCC& rValue) { rValue.Write(*mpStream); } - virtual void SerializePrimitive(CAssetID& rValue) { rValue.Write(*mpStream, CAssetID::GameIDLength(Game())); } - - virtual void SerializeHexPrimitive(u8& rValue) { mpStream->WriteByte(rValue); } - virtual void SerializeHexPrimitive(u16& rValue) { mpStream->WriteShort(rValue); } - virtual void SerializeHexPrimitive(u32& rValue) { mpStream->WriteLong(rValue); } - virtual void SerializeHexPrimitive(u64& rValue) { mpStream->WriteLongLong(rValue); } + virtual void SerializePrimitive(bool& rValue, u32 Flags) { mpStream->WriteBool(rValue); } + virtual void SerializePrimitive(char& rValue, u32 Flags) { mpStream->WriteByte(rValue); } + virtual void SerializePrimitive(s8& rValue, u32 Flags) { mpStream->WriteByte(rValue); } + virtual void SerializePrimitive(u8& rValue, u32 Flags) { mpStream->WriteByte(rValue); } + virtual void SerializePrimitive(s16& rValue, u32 Flags) { mpStream->WriteShort(rValue); } + virtual void SerializePrimitive(u16& rValue, u32 Flags) { mpStream->WriteShort(rValue); } + virtual void SerializePrimitive(s32& rValue, u32 Flags) { mpStream->WriteLong(rValue); } + virtual void SerializePrimitive(u32& rValue, u32 Flags) { mpStream->WriteLong(rValue); } + virtual void SerializePrimitive(s64& rValue, u32 Flags) { mpStream->WriteLongLong(rValue); } + virtual void SerializePrimitive(u64& rValue, u32 Flags) { mpStream->WriteLongLong(rValue); } + virtual void SerializePrimitive(float& rValue, u32 Flags) { mpStream->WriteFloat(rValue); } + virtual void SerializePrimitive(double& rValue, u32 Flags) { mpStream->WriteDouble(rValue); } + virtual void SerializePrimitive(TString& rValue, u32 Flags) { mpStream->WriteSizedString(rValue); } + virtual void SerializePrimitive(TWideString& rValue, u32 Flags) { mpStream->WriteSizedWString(rValue); } + virtual void SerializePrimitive(CFourCC& rValue, u32 Flags) { rValue.Write(*mpStream); } + virtual void SerializePrimitive(CAssetID& rValue, u32 Flags) { rValue.Write(*mpStream, CAssetID::GameIDLength(Game())); } + virtual void SerializeBulkData(void* pData, u32 Size, u32 Flags) { mpStream->WriteBytes(pData, Size); } }; #endif // CBINARYWRITER diff --git a/src/Common/Serialization/CSerialVersion.cpp b/src/Common/Serialization/CSerialVersion.cpp index 2e816238..5e712eec 100644 --- a/src/Common/Serialization/CSerialVersion.cpp +++ b/src/Common/Serialization/CSerialVersion.cpp @@ -22,13 +22,13 @@ void CSerialVersion::Read(IInputStream& rInput) mArchiveVersion = rInput.ReadShort(); mFileVersion = rInput.ReadShort(); CFourCC GameID(rInput); - mGame = GetGameForID(GameID); + mGame = GameFrom4CC(GameID); } void CSerialVersion::Write(IOutputStream& rOutput) { rOutput.WriteShort(mArchiveVersion); rOutput.WriteShort(mFileVersion); - CFourCC GameID = GetGameID(mGame); + CFourCC GameID = GameTo4CC(mGame); GameID.Write(rOutput); } diff --git a/src/Common/Serialization/CXMLReader.h b/src/Common/Serialization/CXMLReader.h index 01921505..59fc9c5e 100644 --- a/src/Common/Serialization/CXMLReader.h +++ b/src/Common/Serialization/CXMLReader.h @@ -8,23 +8,24 @@ class CXMLReader : public IArchive { tinyxml2::XMLDocument mDoc; tinyxml2::XMLElement *mpCurElem; // Points to the next element being read + const char* mpAttribute; // Name of the parameter we are reading from an attribute bool mJustEndedParam; // Indicates we just ended a primitive parameter public: CXMLReader(const TString& rkFileName) - : IArchive(true, false) + : IArchive() + , mpAttribute(nullptr) , mJustEndedParam(false) { + mArchiveFlags = AF_Reader | AF_Text; + // Load XML and set current element to the root element; read version mDoc.LoadFile(*rkFileName); mpCurElem = mDoc.FirstChildElement(); if (mpCurElem != nullptr) { - mArchiveVersion = (u16) TString( mpCurElem->Attribute("ArchiveVer") ).ToInt32(10); - mFileVersion = (u16) TString( mpCurElem->Attribute("FileVer") ).ToInt32(10); - const char *pkGameAttr = mpCurElem->Attribute("Game"); - mGame = pkGameAttr ? GetGameForID( CFourCC(pkGameAttr) ) : eUnknownGame; + SerializeVersion(); } else { @@ -38,9 +39,21 @@ public: } // Interface - virtual bool ParamBegin(const char *pkName) + virtual bool IsReader() const { return true; } + virtual bool IsWriter() const { return false; } + virtual bool IsTextFormat() const { return true; } + + virtual bool ParamBegin(const char *pkName, u32 Flags) { ASSERT(IsValid()); + ASSERT(!mpAttribute); // Attributes cannot have sub-children + + // Store as an attribute if requested + if (Flags & SH_Attribute) + { + mpAttribute = mpCurElem->Attribute(pkName); + return mpAttribute != nullptr; + } // Push new parent if needed if (!mJustEndedParam) @@ -51,7 +64,7 @@ public: } // Verify the current element matches the name of the next serialized parameter. - if ( strcmp(mpCurElem->Name(), pkName) == 0) + if ( (Flags & SH_IgnoreName) || strcmp(mpCurElem->Name(), pkName) == 0 ) { mJustEndedParam = false; return true; @@ -84,57 +97,71 @@ public: virtual void ParamEnd() { - if (mJustEndedParam) - mpCurElem = mpCurElem->Parent()->ToElement(); + if (mpAttribute) + mpAttribute = nullptr; - tinyxml2::XMLElement *pElem = mpCurElem->NextSiblingElement(); - if (pElem) - mpCurElem = pElem; + else + { + if (mJustEndedParam) + mpCurElem = mpCurElem->Parent()->ToElement(); - mJustEndedParam = true; + tinyxml2::XMLElement *pElem = mpCurElem->NextSiblingElement(); + if (pElem) + mpCurElem = pElem; + + mJustEndedParam = true; + } } protected: TString ReadParam() { - return TString(mpCurElem->GetText()); + return TString( mpAttribute ? mpAttribute : mpCurElem->GetText() ); } public: - virtual void SerializeContainerSize(u32& rSize, const TString& rkElemName) + virtual void SerializeArraySize(u32& Value) { - rSize = 0; + Value = 0; - for (tinyxml2::XMLElement *pElem = mpCurElem->FirstChildElement(*rkElemName); pElem; pElem = pElem->NextSiblingElement(*rkElemName)) - rSize++; + for (tinyxml2::XMLElement *pElem = mpCurElem->FirstChildElement(); pElem; pElem = pElem->NextSiblingElement()) + Value++; } - virtual void SerializeAbstractObjectType(u32& rType) + virtual bool PreSerializePointer(void*& InPointer, u32 Flags) { - rType = TString(mpCurElem->Attribute("Type")).ToInt32(10); + return mpCurElem->GetText() == nullptr || strcmp(mpCurElem->GetText(), "NULL") != 0; } - virtual void SerializePrimitive(bool& rValue) { rValue = (ReadParam() == "true" ? true : false); } - virtual void SerializePrimitive(char& rValue) { rValue = ReadParam().Front(); } - virtual void SerializePrimitive(s8& rValue) { rValue = (s8) ReadParam().ToInt32(10); } - virtual void SerializePrimitive(u8& rValue) { rValue = (u8) ReadParam().ToInt32(10); } - virtual void SerializePrimitive(s16& rValue) { rValue = (s16) ReadParam().ToInt32(10); } - virtual void SerializePrimitive(u16& rValue) { rValue = (u16) ReadParam().ToInt32(10); } - virtual void SerializePrimitive(s32& rValue) { rValue = (s32) ReadParam().ToInt32(10); } - virtual void SerializePrimitive(u32& rValue) { rValue = (u32) ReadParam().ToInt32(10); } - virtual void SerializePrimitive(s64& rValue) { rValue = (s64) ReadParam().ToInt64(10); } - virtual void SerializePrimitive(u64& rValue) { rValue = (u64) ReadParam().ToInt64(10); } - virtual void SerializePrimitive(float& rValue) { rValue = ReadParam().ToFloat(); } - virtual void SerializePrimitive(double& rValue) { rValue = (double) ReadParam().ToFloat(); } - virtual void SerializePrimitive(TString& rValue) { rValue = ReadParam(); } - virtual void SerializePrimitive(TWideString& rValue) { rValue = ReadParam().ToUTF16(); } - virtual void SerializePrimitive(CFourCC& rValue) { rValue = CFourCC( ReadParam() ); } - virtual void SerializePrimitive(CAssetID& rValue) { rValue = CAssetID::FromString( ReadParam() ); } + virtual void SerializePrimitive(bool& rValue, u32 Flags) { rValue = (ReadParam() == "true" ? true : false); } + virtual void SerializePrimitive(char& rValue, u32 Flags) { rValue = ReadParam().Front(); } + virtual void SerializePrimitive(s8& rValue, u32 Flags) { rValue = (s8) ReadParam().ToInt32( (Flags & SH_HexDisplay) ? 16 : 10 ); } + virtual void SerializePrimitive(u8& rValue, u32 Flags) { rValue = (u8) ReadParam().ToInt32( (Flags & SH_HexDisplay) ? 16 : 10 ); } + virtual void SerializePrimitive(s16& rValue, u32 Flags) { rValue = (s16) ReadParam().ToInt32( (Flags & SH_HexDisplay) ? 16 : 10 ); } + virtual void SerializePrimitive(u16& rValue, u32 Flags) { rValue = (u16) ReadParam().ToInt32( (Flags & SH_HexDisplay) ? 16 : 10 ); } + virtual void SerializePrimitive(s32& rValue, u32 Flags) { rValue = (s32) ReadParam().ToInt32( (Flags & SH_HexDisplay) ? 16 : 10 ); } + virtual void SerializePrimitive(u32& rValue, u32 Flags) { rValue = (u32) ReadParam().ToInt32( (Flags & SH_HexDisplay) ? 16 : 10 ); } + virtual void SerializePrimitive(s64& rValue, u32 Flags) { rValue = (s64) ReadParam().ToInt64( (Flags & SH_HexDisplay) ? 16 : 10 ); } + virtual void SerializePrimitive(u64& rValue, u32 Flags) { rValue = (u64) ReadParam().ToInt64( (Flags & SH_HexDisplay) ? 16 : 10 ); } + virtual void SerializePrimitive(float& rValue, u32 Flags) { rValue = ReadParam().ToFloat(); } + virtual void SerializePrimitive(double& rValue, u32 Flags) { rValue = (double) ReadParam().ToFloat(); } + virtual void SerializePrimitive(TString& rValue, u32 Flags) { rValue = ReadParam(); } + virtual void SerializePrimitive(TWideString& rValue, u32 Flags) { rValue = ReadParam().ToUTF16(); } + virtual void SerializePrimitive(CFourCC& rValue, u32 Flags) { rValue = CFourCC( ReadParam() ); } + virtual void SerializePrimitive(CAssetID& rValue, u32 Flags) { rValue = CAssetID::FromString( ReadParam() ); } - virtual void SerializeHexPrimitive(u8& rValue) { rValue = (u8) ReadParam().ToInt32(16); } - virtual void SerializeHexPrimitive(u16& rValue) { rValue = (u16) ReadParam().ToInt32(16); } - virtual void SerializeHexPrimitive(u32& rValue) { rValue = (u32) ReadParam().ToInt32(16); } - virtual void SerializeHexPrimitive(u64& rValue) { rValue = (u64) ReadParam().ToInt32(16); } + virtual void SerializeBulkData(void* pData, u32 Size, u32 Flags) + { + char* pCharData = (char*) pData; + TString StringData = ReadParam(); + ASSERT(StringData.Size() == Size*2); + + for (u32 ByteIdx = 0; ByteIdx < Size; ByteIdx++) + { + *pCharData = (char) StringData.SubString(ByteIdx*2, 2).ToInt32(16); + pCharData++; + } + } }; #endif // CXMLREADER diff --git a/src/Common/Serialization/CXMLWriter.h b/src/Common/Serialization/CXMLWriter.h index 21698ad7..6dab5d73 100644 --- a/src/Common/Serialization/CXMLWriter.h +++ b/src/Common/Serialization/CXMLWriter.h @@ -9,16 +9,19 @@ class CXMLWriter : public IArchive { tinyxml2::XMLDocument mDoc; - TString mOutFilename; tinyxml2::XMLElement *mpCurElem; + TString mOutFilename; + const char* mpAttributeName; bool mSaved; public: - CXMLWriter(const TString& rkFileName, const TString& rkRootName, u16 FileVersion, EGame Game = eUnknownGame) - : IArchive(false, true) + CXMLWriter(const TString& rkFileName, const TString& rkRootName, u16 FileVersion = 0, EGame Game = EGame::Invalid) + : IArchive() , mOutFilename(rkFileName) + , mpAttributeName(nullptr) , mSaved(false) { + mArchiveFlags = AF_Writer | AF_Text; SetVersion(skCurrentArchiveVersion, FileVersion, Game); // Create declaration and root node @@ -29,9 +32,7 @@ public: mDoc.LinkEndChild(mpCurElem); // Write version data - mpCurElem->SetAttribute("ArchiveVer", (int) skCurrentArchiveVersion); - mpCurElem->SetAttribute("FileVer", (int) FileVersion); - if (Game != eUnknownGame) mpCurElem->SetAttribute("Game", *GetGameID(Game).ToString()); + SerializeVersion(); } ~CXMLWriter() @@ -69,59 +70,103 @@ public: } // Interface - virtual bool ParamBegin(const char *pkName) + virtual bool ParamBegin(const char *pkName, u32 Flags) { ASSERT(IsValid()); + ASSERT(!mpAttributeName); // Attributes cannot have sub-children + + // Read as attribute if needed + if (Flags & SH_Attribute) + { + mpAttributeName = pkName; + } + else + { + tinyxml2::XMLElement *pElem = mDoc.NewElement(pkName); + mpCurElem->LinkEndChild(pElem); + mpCurElem = pElem; + } - tinyxml2::XMLElement *pElem = mDoc.NewElement(pkName); - mpCurElem->LinkEndChild(pElem); - mpCurElem = pElem; return true; } virtual void ParamEnd() { - mpCurElem = mpCurElem->Parent()->ToElement(); + if (mpAttributeName) + { + mpAttributeName = nullptr; + } + else + { + // If we didn't save any sub parameters, remove the element. + tinyxml2::XMLElement* pParent = mpCurElem->Parent()->ToElement(); + + if ( mpCurElem->FirstAttribute() == nullptr + && mpCurElem->FirstChild() == nullptr + && mpCurElem->GetText() == nullptr ) + { + pParent->DeleteChild(mpCurElem); + } + + mpCurElem = pParent; + } } protected: void WriteParam(const char *pkValue) { - mpCurElem->SetText(pkValue); + if (mpAttributeName) + mpCurElem->SetAttribute(mpAttributeName, pkValue); + else + mpCurElem->SetText(pkValue); } public: - virtual void SerializeContainerSize(u32&, const TString&) + virtual bool PreSerializePointer(void*& Pointer, u32 Flags) { - // Reader obtains container size from number of child elements + if (!Pointer) + { + mpCurElem->SetText("NULL"); + return false; + } + return true; } - virtual void SerializeAbstractObjectType(u32& rType) + virtual void SerializeArraySize(u32& Value) { - mpCurElem->SetAttribute("Type", (unsigned int) rType); + // Do nothing. Reader obtains container size from number of child elements } - virtual void SerializePrimitive(bool& rValue) { WriteParam(rValue ? "true" : "false"); } - virtual void SerializePrimitive(char& rValue) { WriteParam(*TString(rValue)); } - virtual void SerializePrimitive(s8& rValue) { WriteParam(*TString::FromInt32(rValue, 0, 10)); } - virtual void SerializePrimitive(u8& rValue) { WriteParam(*TString::FromInt32(rValue, 0, 10)); } - virtual void SerializePrimitive(s16& rValue) { WriteParam(*TString::FromInt32(rValue, 0, 10)); } - virtual void SerializePrimitive(u16& rValue) { WriteParam(*TString::FromInt32(rValue, 0, 10)); } - virtual void SerializePrimitive(s32& rValue) { WriteParam(*TString::FromInt32(rValue, 0, 10)); } - virtual void SerializePrimitive(u32& rValue) { WriteParam(*TString::FromInt32(rValue, 0, 10)); } - virtual void SerializePrimitive(s64& rValue) { WriteParam(*TString::FromInt64(rValue, 0, 10)); } - virtual void SerializePrimitive(u64& rValue) { WriteParam(*TString::FromInt64(rValue, 0, 10)); } - virtual void SerializePrimitive(float& rValue) { WriteParam(*TString::FromFloat(rValue)); } - virtual void SerializePrimitive(double& rValue) { WriteParam(*TString::FromFloat((float) rValue)); } - virtual void SerializePrimitive(TString& rValue) { WriteParam(*rValue); } - virtual void SerializePrimitive(TWideString& rValue) { WriteParam(*rValue.ToUTF8()); } - virtual void SerializePrimitive(CFourCC& rValue) { WriteParam(*rValue.ToString()); } - virtual void SerializePrimitive(CAssetID& rValue) { WriteParam(*rValue.ToString( CAssetID::GameIDLength(Game()) )); } + virtual void SerializePrimitive(bool& rValue, u32 Flags) { WriteParam(rValue ? "true" : "false"); } + virtual void SerializePrimitive(char& rValue, u32 Flags) { WriteParam(*TString(rValue)); } + virtual void SerializePrimitive(s8& rValue, u32 Flags) { WriteParam( (Flags & SH_HexDisplay) ? *TString::HexString((u8&) rValue, 0) : *TString::FromInt32(rValue, 0, 10) ); } + virtual void SerializePrimitive(u8& rValue, u32 Flags) { WriteParam( (Flags & SH_HexDisplay) ? *TString::HexString((u8&) rValue, 0) : *TString::FromInt32(rValue, 0, 10) ); } + virtual void SerializePrimitive(s16& rValue, u32 Flags) { WriteParam( (Flags & SH_HexDisplay) ? *TString::HexString((u16&) rValue, 0) : *TString::FromInt32(rValue, 0, 10) ); } + virtual void SerializePrimitive(u16& rValue, u32 Flags) { WriteParam( (Flags & SH_HexDisplay) ? *TString::HexString((u16&) rValue, 0) : *TString::FromInt32(rValue, 0, 10) ); } + virtual void SerializePrimitive(s32& rValue, u32 Flags) { WriteParam( (Flags & SH_HexDisplay) ? *TString::HexString((u32&) rValue, 0) : *TString::FromInt32(rValue, 0, 10) ); } + virtual void SerializePrimitive(u32& rValue, u32 Flags) { WriteParam( (Flags & SH_HexDisplay) ? *TString::HexString((u32&) rValue, 0) : *TString::FromInt32(rValue, 0, 10) ); } + virtual void SerializePrimitive(s64& rValue, u32 Flags) { WriteParam( *TString::FromInt64(rValue, 0, (Flags & SH_HexDisplay) ? 16 : 10) ); } + virtual void SerializePrimitive(u64& rValue, u32 Flags) { WriteParam( *TString::FromInt64(rValue, 0, (Flags & SH_HexDisplay) ? 16 : 10) ); } + virtual void SerializePrimitive(float& rValue, u32 Flags) { WriteParam( *TString::FromFloat(rValue, 1, true) ); } + virtual void SerializePrimitive(double& rValue, u32 Flags) { WriteParam( *TString::FromFloat((float) rValue, 1, true) ); } + virtual void SerializePrimitive(TString& rValue, u32 Flags) { WriteParam( *rValue ); } + virtual void SerializePrimitive(TWideString& rValue, u32 Flags) { WriteParam( *rValue.ToUTF8() ); } + virtual void SerializePrimitive(CFourCC& rValue, u32 Flags) { WriteParam( *rValue.ToString() ); } + virtual void SerializePrimitive(CAssetID& rValue, u32 Flags) { WriteParam( *rValue.ToString( CAssetID::GameIDLength(Game()) ) ); } - virtual void SerializeHexPrimitive(u8& rValue) { WriteParam(*TString::HexString(rValue, 2)); } - virtual void SerializeHexPrimitive(u16& rValue) { WriteParam(*TString::HexString(rValue, 4)); } - virtual void SerializeHexPrimitive(u32& rValue) { WriteParam(*TString::HexString(rValue, 8)); } - virtual void SerializeHexPrimitive(u64& rValue) { WriteParam(*TString::HexString((u32) rValue, 16)); } + virtual void SerializeBulkData(void* pData, u32 Size, u32 Flags) + { + char* pCharData = (char*) pData; + TString OutString(Size*2); + + for (u32 ByteIdx = 0; ByteIdx < Size; ByteIdx++) + { + //@todo: sloooooow. maybe replace with a LUT? + sprintf(&OutString[ByteIdx*2], "%02X", pCharData[ByteIdx]); + } + + WriteParam(*OutString); + } }; #endif // CXMLWRITER diff --git a/src/Common/Serialization/IArchive.h b/src/Common/Serialization/IArchive.h index b7a871d3..64c41037 100644 --- a/src/Common/Serialization/IArchive.h +++ b/src/Common/Serialization/IArchive.h @@ -9,6 +9,14 @@ #include "Common/TString.h" #include "Common/types.h" +#include + +#include +#include +#include +#include +#include + /* This is a custom serialization implementation intended for saving game assets out to editor- * friendly formats, such as XML. The main goals of the serialization system is to simplify the * code for reading and writing editor files and to be able to easily update those files without @@ -21,395 +29,721 @@ * 2. As a global/friend function with this signature: void Serialize(IArchive&, YourClass&) * * Use the << operator to serialize data members to the archive. All data being serialized must be - * wrapped in one of the SERIAL macros. The SERIAL macro ensures that all serialized parameters are - * associated with a name. This name makes the output file more easily human-readable as well as helps - * ensure that files are easily backwards-compatible if parameters are moved or added/removed. + * wrapped in a call to SerialParameter(), which allows each value to be associated with a name + * and other parameters. This primarily helps make the output files more human-readable and + * assists with backwards compatibility, as well as customizing how each parameter is serialized. * * Polymorphism is supported. There are two requirements for a polymorphic class to work with the - * serialization system. First, the base class must contain a virtual Type() function that returns - * an integral value (an enum or an integer), as well as a virtual Serialize(IArchive&) function. - * Second, there must be a factory object with a SpawnObject(u32) method that takes the same Type value - * and returns an object of the correct class. + * serialization system. First, the base class must contain a virtual Type() function, as well as + * a virtual Serialize(IArchive&) function. Second, the class must have a static ArchiveConstructor() + * method that takes the a Type value (which should be the same type as Type() returns), and returns + * an object of the correct class. * - * Containers are also supported. Containers require a different macro that allows you to specify the - * name of the elements in the container. The currently-supported containers are std::vector, std::list, - * and std::set. Support for more container types can be added to the bottom of this file. - * - * These are the available SERIAL macros: - * - SERIAL(ParamName, ParamValue) [generic parameter] - * - SERIAL_HEX(ParamName, ParamValue) [integral parameter serialized as a hex number for improved readability] - * - SERIAL_ABSTRACT(ParamName, ParamValue, Factory) [polymorphic parameter] - * - SERIAL_CONTAINER(ParamName, Container, ElementName) [container parameter] - * - SERIAL_ABSTRACT_CONTAINER(ParamName, Container, ElementName, Factory) [container of polymorphic objects parameter] - * - * Each of these has a variant with _AUTO at the end that allows you to exclude ParamName (the name of the - * variable will be used as the parameter name instead). + * SerialParameter() can take flags that provides hints to the serializer. This can either customize + * how the parameter is displayed in the file, or it can modify how the serialization is done under + * the hood. For a list of possible hints, check the definition of ESerialHint. */ -// TSerialParameter - name/value pair for generic serial parameters +/** ESerialHint - Parameter hint flags */ +enum ESerialHint +{ + SH_HexDisplay = 0x1, // The parameter should be written in hex in text formats. + SH_Optional = 0x2, // The parameter should not be written to the file if its value matches the default value. + SH_NeverSave = 0x4, // The parameter should not be saved to files. + SH_AlwaysSave = 0x8, // The parameter should always be saved regardless of if it matches the default value. + SH_Attribute = 0x10, // The parameter is an attribute of its parent. Attributes cannot have children. + SH_IgnoreName = 0x20, // The parameter name will not be used to validate file data. May yield incorrect results if used improperly! + SH_InheritHints = 0x40, // The parameter will inherit hints from its parent parameter (except for this flag). + SH_Proxy = 0x80, // The parameter is a proxy of the parent and will display inline instead of as a child parameter. +}; + +// Hints that can be inherited by SH_InheritHints and SH_Proxy +const int gkInheritableSerialHints = (SH_HexDisplay | SH_NeverSave | SH_AlwaysSave); + +/** EArchiveFlags */ +enum EArchiveFlags +{ + AF_Reader = 0x1, // Archive reads data. + AF_Writer = 0x2, // Archive writes data. + AF_Text = 0x4, // Archive reads/writes to a text format. + AF_Binary = 0x8, // Archive reads/writes to a binary format. + AF_NoSkipping = 0x10, // Properties are never skipped. +}; + +/** Shortcut macro for enable_if */ +#define ENABLE_IF(Conditions, ReturnType) typename std::enable_if< Conditions, ReturnType >::type + +/** Check for whether the equality operator has been implemented for a given type */ +template() == std::declval())> +std::true_type THasEqualToOperator(const ValType&); +std::false_type THasEqualToOperator(...); +template using THasEqualTo = decltype(THasEqualToOperator(std::declval())); + +/** Class that determines if the type is a container */ +template struct TIsContainer : std::false_type {}; +template struct TIsContainer< std::vector > : std::true_type {}; +template struct TIsContainer< std::list > : std::true_type {}; +template struct TIsContainer< std::set > : std::true_type {}; +template struct TIsContainer< std::map > : std::true_type {}; +template struct TIsContainer< std::unordered_map > : std::true_type {}; + +/** Class that determines if the type is a smart pointer */ +template struct TIsSmartPointer : std::false_type {}; +template struct TIsSmartPointer< std::shared_ptr > : std::true_type {}; +template struct TIsSmartPointer< std::unique_ptr > : std::true_type {}; + +/** Helper macro that tells us whether the parameter supports default property values */ +#define SUPPORTS_DEFAULT_VALUES (!std::is_pointer_v && std::is_copy_assignable_v && THasEqualTo::value && !TIsContainer::value && !TIsSmartPointer::value) + +/** TSerialParameter - name/value pair for generic serial parameters */ template struct TSerialParameter { - const char *pkName; - ValType& rValue; + const char* pkName; + ValType& rValue; + u32 HintFlags; + const ValType* pDefaultValue; }; +/** Function that creates a SerialParameter */ +template +ENABLE_IF( SUPPORTS_DEFAULT_VALUES, TSerialParameter ) +inline SerialParameter(const char* pkName, ValType& rValue, u32 HintFlags = 0, const ValType& rkDefaultValue = ValType()) +{ + return TSerialParameter { pkName, rValue, HintFlags, &rkDefaultValue }; +} +template +ENABLE_IF( !SUPPORTS_DEFAULT_VALUES, TSerialParameter ) +inline SerialParameter(const char* pkName, ValType& rValue, u32 HintFlags = 0) +{ + return TSerialParameter { pkName, rValue, HintFlags, nullptr }; +} + +/** Returns whether the parameter value matches its default value */ +template +ENABLE_IF( SUPPORTS_DEFAULT_VALUES, bool ) +inline ParameterMatchesDefault( const TSerialParameter& kParameter ) +{ + return kParameter.pDefaultValue != nullptr && kParameter.rValue == *kParameter.pDefaultValue; +} + template -inline TSerialParameter MakeSerialParameter(const char *pkName, ValType& rValue) +ENABLE_IF( !SUPPORTS_DEFAULT_VALUES && TIsContainer::value, bool ) +inline ParameterMatchesDefault( const TSerialParameter& kParameter ) { - return TSerialParameter { pkName, rValue }; + return kParameter.rValue.size() == 0; } -#define SERIAL(ParamName, ParamValue) MakeSerialParameter(ParamName, ParamValue) -#define SERIAL_AUTO(ParamValue) MakeSerialParameter(#ParamValue, ParamValue) - -// THexSerialParameter - same as TSerialParameter but serialized in hex for improved readability -template -struct THexSerialParameter -{ - const char *pkName; - ValType& rValue; -}; - -template::value, int>*/> -inline THexSerialParameter MakeHexSerialParameter(const char *pkName, ValType& rValue) -{ - return THexSerialParameter { pkName, rValue }; -} - -#define SERIAL_HEX(ParamName, ParamValue) MakeHexSerialParameter(ParamName, ParamValue) -#define SERIAL_HEX_AUTO(ParamValue) MakeHexSerialParameter(#ParamValue, ParamValue) - -// TAbstractSerialParameter - name/value pair for polymorphic objects with a pointer to a factory -template -struct TAbstractSerialParameter -{ - const char *pkName; - ValType*& rValue; - FactoryType *pFactory; -}; - -template -inline TAbstractSerialParameter MakeAbstractSerialParameter(const char *pkName, ValType*& rValue, FactoryType *pFactory) -{ - return TAbstractSerialParameter { pkName, rValue, pFactory }; -} - -#define SERIAL_ABSTRACT(ParamName, ParamValue, Factory) MakeAbstractSerialParameter(ParamName, ParamValue, Factory) -#define SERIAL_ABSTRACT_AUTO(ParamValue, Factory) MakeAbstractSerialParameter(#ParamValue, ParamValue, Factory) - -// TContainerSerialParameter - name/value pair for containers with a parameter name string -template -struct TContainerSerialParameter -{ - const char *pkName; - ValType& rContainer; - const char *pkElementName; -}; - template -inline TContainerSerialParameter MakeSerialParameter(const char *pkName, ValType& rContainer, const char *pkElementName) +ENABLE_IF( !SUPPORTS_DEFAULT_VALUES && !TIsContainer::value, bool ) +inline ParameterMatchesDefault( const TSerialParameter& ) { - return TContainerSerialParameter { pkName, rContainer, pkElementName }; + return false; } -#define SERIAL_CONTAINER(ParamName, Container, ElementName) MakeSerialParameter(ParamName, Container, ElementName) -#define SERIAL_CONTAINER_AUTO(Container, ElementName) MakeSerialParameter(#Container, Container, ElementName) - -// TAbstractContainerSerialParameter - name/value pair for containers of polymorphic objects with a parameter name string and a pointer to a factory -template -struct TAbstractContainerSerialParameter +/** Initializes the parameter to its default value */ +template +ENABLE_IF( SUPPORTS_DEFAULT_VALUES, bool ) +inline InitParameterToDefault( TSerialParameter& Param ) { - const char *pkName; - ValType& rContainer; - const char *pkElementName; - FactoryType *pFactory; -}; - -template -inline TAbstractContainerSerialParameter MakeSerialParameter(const char *pkName, ValType& rContainer, const char *pkElementName, FactoryType *pFactory) -{ - return TAbstractContainerSerialParameter { pkName, rContainer, pkElementName, pFactory }; + if (Param.pDefaultValue != nullptr) + { + Param.rValue = *Param.pDefaultValue; + return true; + } + else + return false; } -#define SERIAL_ABSTRACT_CONTAINER(ParamName, Container, ElementName, Factory) MakeSerialParameter(ParamName, Container, ElementName, Factory) -#define SERIAL_ABSTRACT_CONTAINER_AUTO(Container, ElementName, Factory) MakeSerialParameter(#Container, Container, ElementName, Factory) +template +ENABLE_IF( !SUPPORTS_DEFAULT_VALUES && TIsContainer::value, bool ) +inline InitParameterToDefault( TSerialParameter& Param ) +{ + Param.rValue.clear(); + return true; +} -// SFINAE serialize function type check +template +ENABLE_IF( !SUPPORTS_DEFAULT_VALUES && !TIsContainer::value, bool ) +inline InitParameterToDefault( TSerialParameter& ) +{ + return false; +} + +/** SFINAE serialize function type check */ // https://jguegant.github.io/blogs/tech/sfinae-introduction.html void Serialize(); // This needs to be here or else the global Serialize method handling causes a compiler error. Not sure of a better fix -void SerializeContainer(); +void BulkSerialize(); -template +/** Helper struct to verify that function Func exists and matches the given function signature (FuncType) */ +template struct FunctionExists; + +/** Determine what kind of Serialize function the type has */ +template struct SerialType { -public: enum { Primitive, Member, Global, None }; - // Helper struct to verify that function Func exists and matches the given function signature (FuncType) - template struct FunctionExists; + /** Check for ArcType::SerializePrimitive(ValType&) method */ + template + static constexpr auto HasPrimitiveSerialize(int) -> decltype( + std::declval().SerializePrimitive( std::declval(), u32() ), bool() + ) + { + return true; + } + + template + static constexpr bool HasPrimitiveSerialize(...) + { + return false; + } + + /** Check for ValType::Serialize(ArcType&) */ + template + static constexpr auto HasMemberSerialize(int) -> decltype( + std::declval().Serialize( std::declval() ), bool() + ) + { + return true; + } + + template + static constexpr bool HasMemberSerialize(...) + { + return false; + } - // Check for ArcType::SerializePrimitive(ValType&) method - template static long long& Check(FunctionExists*); - // Check for ValType::Serialize(ArcType&) - template static long& Check(FunctionExists*); // Check for global Serialize(ArcType&,ValType&) function - template static short& Check(FunctionExists*); - // Check for global SerializeContainer(ArcType&,ValType&,const TString&) - template static short& Check(FunctionExists*); - // Fallback - no valid Serialize method exists - template static char& Check(...); + template + static constexpr auto HasGlobalSerialize(int) -> decltype( + Serialize( std::declval(), std::declval() ), bool() + ) + { + return true; + } + + template + static constexpr bool HasGlobalSerialize(...) + { + return false; + } // Set Type enum to correspond to whichever function exists - static const int Type = (sizeof(Check(0)) == sizeof(long long) ? Primitive : - sizeof(Check(0)) == sizeof(long) ? Member : - sizeof(Check(0)) == sizeof(short) ? Global : + static const int Type = (HasPrimitiveSerialize(0) ? Primitive : + HasMemberSerialize(0) ? Member : + HasGlobalSerialize(0) ? Global : None); }; -// Actual archive class +/** For abstract types, determine what kind of ArchiveConstructor the type has */ +template +struct ArchiveConstructorType +{ + /** Figure out the type being used to represent the object type. + * If there isn't a type function, then it doesn't matter; just substitute int. + */ + template + static constexpr auto HasTypeMethod(int) -> decltype( std::declval().Type() ) + { + return std::declval().Type(); + } + + template + static constexpr int HasTypeMethod(...) + { + return 0; + } + + using ObjType = decltype(HasTypeMethod(0)); + + enum { Basic, Advanced, None }; + + /** Check for ValType::ArchiveConstructor(ObjectType) */ + template + static constexpr auto HasBasicArchiveConstructor(int) -> decltype( + std::declval().ArchiveConstructor( std::declval()), bool() + ) + { + return true; + } + + template + static constexpr bool HasBasicArchiveConstructor(...) + { + return false; + } + + /** Check for ValType::ArchiveConstructor(ObjectType, IArchive&) */ + template + static constexpr auto HasAdvancedArchiveConstructor(int) -> decltype( + std::declval().ArchiveConstructor( std::declval(), std::declval() ), bool() + ) + { + return true; + } + + template + static constexpr bool HasAdvancedArchiveConstructor(...) + { + return false; + } + + // Set Type enum to correspond to whichever function exists + static const int Type = (HasAdvancedArchiveConstructor(0) ? Advanced : + HasBasicArchiveConstructor(0) ? Basic : + None); +}; + +/** Helper that turns functions on or off depending on their serialize type */ +#define IS_SERIAL_TYPE(SType) (SerialType::Type == SerialType::##SType) + +/** Helper that turns functions on or off depending on their StaticConstructor type */ +#define IS_ARCHIVE_CONSTRUCTOR_TYPE(CType) (ArchiveConstructorType::Type == ArchiveConstructorType::##CType) + +/** Helper that turns functions on or off depending on if the parameter type is abstract */ +#define IS_ABSTRACT ( std::is_abstract_v || (std::is_polymorphic_v && ArchiveConstructorType::Type != ArchiveConstructorType::None) ) + +/** IArchive - Main serializer archive interface */ class IArchive { protected: u16 mArchiveVersion; u16 mFileVersion; EGame mGame; - bool mIsReader; - bool mIsWriter; + + // Subclasses must fill in flags in their constructors!!! + u32 mArchiveFlags; + + // Info about the stack of parameters being serialized + struct SParmStackEntry + { + size_t TypeID; + size_t TypeSize; + void* pDataPointer; + u32 HintFlags; + }; + std::vector mParmStack; public: enum EArchiveVersion { eArVer_Initial, eArVer_32BitBinarySize, + eArVer_Refactor, + eArVer_MapAttributes, + eArVer_GameEnumClass, // Insert new versions before this line eArVer_Max }; static const u32 skCurrentArchiveVersion = (eArVer_Max - 1); - IArchive(bool IsReader, bool IsWriter) + IArchive() : mFileVersion(0) , mArchiveVersion(skCurrentArchiveVersion) - , mGame(eUnknownGame) - , mIsReader(IsReader) - , mIsWriter(IsWriter) - {} + , mGame(EGame::Invalid) + , mArchiveFlags(0) + { + // hack to reduce allocations + mParmStack.reserve(16); + } - virtual ~IArchive() {} + virtual ~IArchive() { ASSERT(mParmStack.empty()); } - #define ENABLE_FOR_SERIAL_TYPE(SType) typename std::enable_if::Type == SerialType::##SType, int>::type = 0 + // Serialize archive version. Always call after opening a file. + void SerializeVersion() + { + *this << SerialParameter("ArchiveVer", mArchiveVersion, SH_Attribute) + << SerialParameter("FileVer", mFileVersion, SH_Attribute | SH_Optional, (u16) 0) + << SerialParameter("Game", mGame, SH_Attribute | SH_Optional, EGame::Invalid); + if (IsReader()) + { + if (mArchiveVersion > skCurrentArchiveVersion) + { + mArchiveVersion = skCurrentArchiveVersion; + } + } + } + +private: + // Attempts to start a new parameter. Return whether the parameter should be serialized. + template + bool InternalStartParam(const TSerialParameter& Param) + { + bool IsProxy = (Param.HintFlags & SH_Proxy) != 0; + return ShouldSerializeParameter(Param) && (IsProxy || ParamBegin(Param.pkName, Param.HintFlags) ); + } + + // Ends a parameter. + template + void InternalEndParam(const TSerialParameter& Param) + { + if ((Param.HintFlags & SH_Proxy) == 0) + { + ParamEnd(); + } + } + + // Return whether this parameter should be serialized + template + bool ShouldSerializeParameter(const TSerialParameter& Param) + { + if (mArchiveFlags & AF_NoSkipping) + return true; + + if ( IsWriter() ) + { + if (Param.HintFlags & SH_NeverSave) + return false; + + if ( ( Param.HintFlags & SH_Optional ) && + ( Param.HintFlags & SH_AlwaysSave ) == 0 && + ( ParameterMatchesDefault(Param) ) ) + return false; + } + + return true; + } + + // Instantiate an abstract object from the file + // Only readers are allowed to instantiate objects + template + ENABLE_IF( IS_ARCHIVE_CONSTRUCTOR_TYPE(Basic), ValType* ) + inline InstantiateAbstractObject(const TSerialParameter& Param, ObjType Type) + { + // Variant for basic static constructor + ASSERT( IsReader() ); + return (ValType*) ValType::ArchiveConstructor(Type); + } + + template + ENABLE_IF( IS_ARCHIVE_CONSTRUCTOR_TYPE(Advanced), ValType* ) + InstantiateAbstractObject(const TSerialParameter& Param, ObjType Type) + { + // Variant for advanced static constructor + ASSERT( IsReader() ); + return (ValType*) ValType::ArchiveConstructor(Type, *this); + } + + template + ENABLE_IF( IS_ARCHIVE_CONSTRUCTOR_TYPE(None), ValType* ) + InstantiateAbstractObject(const TSerialParameter& Param, ObjType Type) + { + // If you fail here, you are missing an ArchiveConstructor() function, or you do have one but it is malformed. + // Check the comments at the top of this source file for details on serialization requirements for abstract objects. + static_assert(false, "Abstract objects being serialized must have virtual Type() and static ArchiveConstructor() functions."); + } + + // Parameter stack handling + template + inline void PushParameter(TSerialParameter& Param) + { +#if _DEBUG + if (mParmStack.size() > 0) + { + // Attribute properties cannot have children! + ASSERT( (mParmStack.back().HintFlags & SH_Attribute) == 0 ); + } +#endif + + // For InheritHints parameters, and for proxy parameters, copy the hint flags from the parent parameter. + if (Param.HintFlags & (SH_InheritHints | SH_Proxy)) + { + Param.HintFlags |= (mParmStack.back().HintFlags & gkInheritableSerialHints); + } + + SParmStackEntry Entry; + Entry.TypeID = typeid(ValType).hash_code(); + Entry.TypeSize = sizeof(ValType); + Entry.pDataPointer = &Param.rValue; + Entry.HintFlags = Param.HintFlags; + mParmStack.push_back(Entry); + } + + template + inline void PopParameter(const TSerialParameter& Param) + { +#if _DEBUG + // Make sure the entry matches the param that has been passed in + ASSERT(mParmStack.size() > 0); + const SParmStackEntry& kEntry = mParmStack.back(); + ASSERT(kEntry.TypeID == typeid(ValType).hash_code()); + ASSERT(kEntry.pDataPointer == &Param.rValue); +#endif + mParmStack.pop_back(); + } + +public: // Serialize primitives - template - inline IArchive& operator<<(TSerialParameter& rParam) + template + ENABLE_IF( IS_SERIAL_TYPE(Primitive), IArchive& ) + operator<<(TSerialParameter rParam) { - if (ParamBegin(rParam.pkName)) + PushParameter(rParam); + + if (InternalStartParam(rParam)) { - SerializePrimitive(rParam.rValue); - ParamEnd(); + SerializePrimitive(rParam.rValue, rParam.HintFlags); + InternalEndParam(rParam); } + else if (IsReader()) + InitParameterToDefault(rParam); + + PopParameter(rParam); return *this; } - // Serialize pointers to primitives - template - inline IArchive& operator<<(TSerialParameter& rParam) + template + ENABLE_IF( IS_SERIAL_TYPE(Primitive) && !IS_ABSTRACT, IArchive& ) + operator<<(TSerialParameter rParam) { - if (ParamBegin(rParam.pkName)) - { - if (IsReader() && !rParam.rValue) rParam.rValue = new ValType; - SerializePrimitive(*rParam.rValue); - ParamEnd(); - } - return *this; - } + ASSERT( !(mArchiveFlags & AF_Writer) || rParam.rValue != nullptr ); + PushParameter(rParam); - // Serialize hex primitives - template - inline IArchive& operator<<(THexSerialParameter& rParam) - { - if (ParamBegin(rParam.pkName)) + if (InternalStartParam(rParam)) { - SerializeHexPrimitive(rParam.rValue); - ParamEnd(); - } - return *this; - } + // Support for old versions of archives that serialize types on non-abstract polymorphic pointers + if (ArchiveVersion() < eArVer_Refactor && IsReader() && std::is_polymorphic_v) + { + u32 Type; + *this << SerialParameter("Type", Type, SH_Attribute); + } - // Serialize pointers to hex primitives - template - inline IArchive& operator<<(THexSerialParameter& rParam) - { - if (ParamBegin(rParam.pkName)) - { - if (IsReader() && !rParam.rValue) rParam.rValue = new ValType; - SerializeHexPrimitive(*rParam.rValue); - ParamEnd(); - } - return *this; - } + if (PreSerializePointer(rParam.rValue, rParam.HintFlags)) + { + if (rParam.rValue == nullptr && (mArchiveFlags & AF_Reader)) + rParam.rValue = new ValType; - // Serialize objects with member Serialize methods - template - inline IArchive& operator<<(TSerialParameter& rParam) - { - if (ParamBegin(rParam.pkName)) - { - rParam.rValue.Serialize(*this); - ParamEnd(); - } - return *this; - } + if (rParam.rValue != nullptr) + SerializePrimitive(*rParam.rValue, rParam.HintFlags); + } + else if (IsReader()) + rParam.rValue = nullptr; - // Serialize pointers to objects with member Serialize methods - template - inline IArchive& operator<<(TSerialParameter& rParam) - { - if (ParamBegin(rParam.pkName)) - { - if (IsReader() && !rParam.rValue) rParam.rValue = new ValType; - rParam.rValue->Serialize(*this); - ParamEnd(); + InternalEndParam(rParam); } + + PopParameter(rParam); return *this; } // Serialize objects with global Serialize functions - template - inline IArchive& operator<<(TSerialParameter& rParam) + template + ENABLE_IF( IS_SERIAL_TYPE(Global), IArchive& ) + inline operator<<(TSerialParameter rParam) { - if (ParamBegin(rParam.pkName)) + PushParameter(rParam); + + if (InternalStartParam(rParam)) { Serialize(*this, rParam.rValue); - ParamEnd(); + InternalEndParam(rParam); } + else if (IsReader()) + InitParameterToDefault(rParam); + + PopParameter(rParam); return *this; } - // Serialize pointers to objects with global Serialize functions - template - inline IArchive& operator<<(TSerialParameter& rParam) + template + ENABLE_IF( IS_SERIAL_TYPE(Global) && !IS_ABSTRACT, IArchive&) + operator<<(TSerialParameter rParam) { - if (ParamBegin(rParam.pkName)) - { - if (IsReader() && !rParam.rValue) rParam.rValue = new ValType; - Serialize(*this, *rParam.rValue); - ParamEnd(); - } - return *this; - } + ASSERT( !IsWriter() || rParam.rValue != nullptr ); + PushParameter(rParam); - // Serialize abstract objects (global methods for abstract objects not supported) - template - inline IArchive& operator<<(TAbstractSerialParameter& rParam) - { - if (ParamBegin(rParam.pkName)) + if (InternalStartParam(rParam)) { - // Serialize object type - u32 Type = (IsWriter() ? (u32) rParam.rValue->Type() : 0); - SerializeAbstractObjectType(Type); - - // Reader only - instantiate object - if (IsReader()) + // Support for old versions of archives that serialize types on non-abstract polymorphic pointers + if (ArchiveVersion() < eArVer_Refactor && IsReader() && std::is_polymorphic_v) { - rParam.rValue = static_cast(rParam.pFactory->SpawnObject(Type)); - ASSERT(rParam.rValue != nullptr); + u32 Type; + *this << SerialParameter("Type", Type, SH_Attribute); } - // Finish serialize - rParam.rValue->Serialize(*this); - ParamEnd(); + if (PreSerializePointer(rParam.rValue, rParam.HintFlags, rParam.HintFlags)) + { + if (rParam.rValue == nullptr && IsReader()) + rParam.rValue = new ValType; + + if (rParam.rValue != nullptr) + Serialize(*this, *rParam.rValue); + } + else if (IsReader()) + rParam.rValue = nullptr; + + InternalEndParam(rParam); } + PopParameter(rParam); return *this; } - // Serialize containers (member methods for containers not supported) - template - inline IArchive& operator<<(TContainerSerialParameter& rParam) + // Serialize objects with Serialize methods + template + ENABLE_IF( IS_SERIAL_TYPE(Member), IArchive& ) + operator<<(TSerialParameter rParam) { - if (ParamBegin(rParam.pkName)) - { - SerializeContainer(*this, rParam.rContainer, rParam.pkElementName); - ParamEnd(); - } + PushParameter(rParam); + if (InternalStartParam(rParam)) + { + rParam.rValue.Serialize(*this); + InternalEndParam(rParam); + } + else if (IsReader()) + InitParameterToDefault(rParam); + + PopParameter(rParam); return *this; } - // Serialize abstract containers (member methods for containers not supported) - template - inline IArchive& operator<<(TAbstractContainerSerialParameter& rParam) + template + ENABLE_IF( IS_SERIAL_TYPE(Member) && !IS_ABSTRACT, IArchive& ) + operator<<(TSerialParameter rParam) { - if (ParamBegin(rParam.pkName)) + PushParameter(rParam); + + if (InternalStartParam(rParam)) { - SerializeContainer(*this, rParam.rContainer, rParam.pkElementName, rParam.pFactory); - ParamEnd(); + // Support for old versions of archives that serialize types on non-abstract polymorphic pointers + if (ArchiveVersion() < eArVer_Refactor && IsReader() && std::is_polymorphic_v) + { + u32 Type; + *this << SerialParameter("Type", Type, SH_Attribute); + } + + if (PreSerializePointer((void*&) rParam.rValue, rParam.HintFlags)) + { + if (rParam.rValue == nullptr && IsReader()) + rParam.rValue = new ValType; + + if (rParam.rValue != nullptr) + rParam.rValue->Serialize(*this); + } + else if (IsReader()) + rParam.rValue = nullptr; + + InternalEndParam(rParam); } + PopParameter(rParam); return *this; } + // Serialize polymorphic objects + template().Type() )> + ENABLE_IF( IS_SERIAL_TYPE(Member) && IS_ABSTRACT, IArchive&) + operator<<(TSerialParameter rParam) + { + PushParameter(rParam); + + if (InternalStartParam(rParam)) + { + if (PreSerializePointer( (void*&) rParam.rValue, rParam.HintFlags )) + { + // Non-reader archives cannot instantiate the class. It must exist already. + if (IsWriter()) + { + ObjectType Type = rParam.rValue->Type(); + *this << SerialParameter("Type", Type, SH_Attribute); + } + else + { + // NOTE: If you crash here, it likely means that the pointer was initialized to a garbage value. + // It is legal to serialize a pointer that already exists, so you still need to initialize it. + ObjectType Type = (rParam.rValue ? rParam.rValue->Type() : ObjectType()); + ObjectType TypeCopy = Type; + *this << SerialParameter("Type", Type, SH_Attribute); + + if (IsReader() && rParam.rValue == nullptr) + { + rParam.rValue = (ValType*) InstantiateAbstractObject(rParam, Type); + } + else if (rParam.rValue != nullptr) + { + // Make sure the type is what we are expecting + ASSERT(Type == TypeCopy); + } + } + + // At this point, the object should exist and is ready for serializing. + if (rParam.rValue) + { + rParam.rValue->Serialize(*this); + } + } + else if (IsReader()) + rParam.rValue = nullptr; + + InternalEndParam(rParam); + } + else + { + // Polymorphic types don't support default values + } + + PopParameter(rParam); + return *this; + } + + // Error + template + ENABLE_IF( IS_SERIAL_TYPE(Global) && IS_ABSTRACT, IArchive& ) + operator<<(TSerialParameter) + { + static_assert(false, "Global Serialize method for polymorphic type pointers is not supported."); + } + // Generate compiler errors for classes with no valid Serialize function defined - template - inline IArchive& operator<<(TSerialParameter&) + template + ENABLE_IF( IS_SERIAL_TYPE(None), IArchive& ) + operator<<(TSerialParameter) { static_assert(false, "Object being serialized has no valid Serialize method defined."); } - template - inline IArchive& operator<<(TAbstractSerialParameter&) - { - static_assert(false, "Abstract object being serialized must have a virtual Serialize method defined."); - } - - template - inline IArchive& operator<<(TContainerSerialParameter&) - { - static_assert(false, "Container being serialized has no valid Serialize method defined."); - } - - template - inline IArchive& operator<<(TAbstractContainerSerialParameter&) - { - static_assert(false, "Container being serialized has no valid Serialize method defined."); - } - // Interface - virtual bool ParamBegin(const char *pkName) = 0; + virtual bool ParamBegin(const char *pkName, u32 Flags) = 0; virtual void ParamEnd() = 0; - virtual void SerializeContainerSize(u32& rSize, const TString& rkElemName) = 0; - virtual void SerializeAbstractObjectType(u32& rType) = 0; + virtual bool PreSerializePointer(void*& Pointer, u32 Flags) = 0; + virtual void SerializePrimitive(bool& rValue, u32 Flags) = 0; + virtual void SerializePrimitive(char& rValue, u32 Flags) = 0; + virtual void SerializePrimitive(s8& rValue, u32 Flags) = 0; + virtual void SerializePrimitive(u8& rValue, u32 Flags) = 0; + virtual void SerializePrimitive(s16& rValue, u32 Flags) = 0; + virtual void SerializePrimitive(u16& rValue, u32 Flags) = 0; + virtual void SerializePrimitive(s32& rValue, u32 Flags) = 0; + virtual void SerializePrimitive(u32& rValue, u32 Flags) = 0; + virtual void SerializePrimitive(s64& rValue, u32 Flags) = 0; + virtual void SerializePrimitive(u64& rValue, u32 Flags) = 0; + virtual void SerializePrimitive(float& rValue, u32 Flags) = 0; + virtual void SerializePrimitive(double& rValue, u32 Flags) = 0; + virtual void SerializePrimitive(TString& rValue, u32 Flags) = 0; + virtual void SerializePrimitive(TWideString& rValue, u32 Flags) = 0; + virtual void SerializePrimitive(CFourCC& rValue, u32 Flags) = 0; + virtual void SerializePrimitive(CAssetID& rValue, u32 Flags) = 0; + virtual void SerializeBulkData(void* pData, u32 DataSize, u32 Flags) = 0; - virtual void SerializePrimitive(bool& rValue) = 0; - virtual void SerializePrimitive(char& rValue) = 0; - virtual void SerializePrimitive(s8& rValue) = 0; - virtual void SerializePrimitive(u8& rValue) = 0; - virtual void SerializePrimitive(s16& rValue) = 0; - virtual void SerializePrimitive(u16& rValue) = 0; - virtual void SerializePrimitive(s32& rValue) = 0; - virtual void SerializePrimitive(u32& rValue) = 0; - virtual void SerializePrimitive(s64& rValue) = 0; - virtual void SerializePrimitive(u64& rValue) = 0; - virtual void SerializePrimitive(float& rValue) = 0; - virtual void SerializePrimitive(double& rValue) = 0; - virtual void SerializePrimitive(TString& rValue) = 0; - virtual void SerializePrimitive(TWideString& rValue) = 0; - virtual void SerializePrimitive(CFourCC& rValue) = 0; - virtual void SerializePrimitive(CAssetID& rValue) = 0; - - virtual void SerializeHexPrimitive(u8& rValue) = 0; - virtual void SerializeHexPrimitive(u16& rValue) = 0; - virtual void SerializeHexPrimitive(u32& rValue) = 0; - virtual void SerializeHexPrimitive(u64& rValue) = 0; + // Optional - serialize in an array size. By default, just stores size as an attribute property. + virtual void SerializeArraySize(u32& Value) + { + *this << SerialParameter("Size", Value, SH_Attribute); + } // Accessors + inline bool IsReader() const { return (mArchiveFlags & AF_Reader) != 0; } + inline bool IsWriter() const { return (mArchiveFlags & AF_Writer) != 0; } + inline bool IsTextFormat() const { return (mArchiveFlags & AF_Text) != 0; } + inline bool IsBinaryFormat() const { return (mArchiveFlags & AF_Binary) != 0; } + inline bool CanSkipParameters() const { return (mArchiveFlags & AF_NoSkipping) == 0; } + inline u16 ArchiveVersion() const { return mArchiveVersion; } inline u16 FileVersion() const { return mFileVersion; } inline EGame Game() const { return mGame; } - inline bool IsReader() const { return mIsReader; } - inline bool IsWriter() const { return mIsWriter; } inline void SetVersion(u16 ArchiveVersion, u16 FileVersion, EGame Game) { @@ -429,199 +763,240 @@ public: { return CSerialVersion(mArchiveVersion, mFileVersion, mGame); } + + /** Utility function for class versioning */ + u32 SerializeClassVersion(u32 CurrentVersion) + { + *this << SerialParameter("ClassVer", CurrentVersion, SH_Attribute | SH_Optional, (u32) 0); + return CurrentVersion; + } }; -// Container serialize methods -#include -#include -#include -#include +/** Class that determines if the type is a primitive */ +template +class TIsPrimitive : std::conditional< SerialType::Type == SerialType::Primitive, std::true_type, std::false_type >::type +{}; -template -inline void SerializeContainerSize(IArchive& rArc, Container& rContainer, const TString& rkElemName) +#if WITH_CODEGEN +// Default enum serializer; can be overridden +#include + +template::value >::type> +inline void DefaultEnumSerialize(IArchive& Arc, T& Val) { - u32 Size = rContainer.size(); - rArc.SerializeContainerSize(Size, rkElemName); - if (rArc.IsReader()) rContainer.resize(Size); + if (Arc.IsTextFormat()) + { + if (Arc.IsReader()) + { + TString ValueName; + Arc.SerializePrimitive(ValueName, 0); + Val = TEnumReflection::ConvertStringToValue( *ValueName ); + } + else + { + TString ValueName = TEnumReflection::ConvertValueToString(Val); + Arc.SerializePrimitive(ValueName, 0); + } + } + else + { + Arc.SerializePrimitive((u32&) Val, 0); + } } +template::value >::type> +inline void Serialize(IArchive& Arc, T& Val) +{ + DefaultEnumSerialize(Arc, Val); +} +#endif + +// Container serialize methods + // std::vector -template -inline void SerializeContainer(IArchive& rArc, std::vector& rVec, const TString& rkElemName = "Item") +template +inline void Serialize(IArchive& Arc, std::vector& Vector) { - SerializeContainerSize(rArc, rVec, rkElemName); + u32 Size = Vector.size(); + Arc.SerializeArraySize(Size); - for (u32 iElem = 0; iElem < rVec.size(); iElem++) - rArc << SERIAL(*rkElemName, rVec[iElem]); + if (Arc.IsReader()) + { + Vector.resize(Size); + } + + for (u32 i = 0; i < Size; i++) + { + // SH_IgnoreName to preserve compatibility with older files that may have differently-named items + Arc << SerialParameter("Element", Vector[i], SH_InheritHints | SH_IgnoreName); + } } -template -inline void SerializeContainer(IArchive& rArc, std::vector& rVec, const TString& rkElemName, FactoryType *pFactory) +// overload for std::vector that serializes in bulk +template<> +inline void Serialize(IArchive& Arc, std::vector& Vector) { - SerializeContainerSize(rArc, rVec, rkElemName); + // Don't use SerializeArraySize, bulk data is a special case that overloads may not handle correctly + u32 Size = Vector.size(); + Arc << SerialParameter("Size", Size, SH_Attribute); - for (u32 iElem = 0; iElem < rVec.size(); iElem++) - rArc << SERIAL_ABSTRACT(*rkElemName, rVec[iElem], pFactory); + if (Arc.IsReader()) + { + Vector.resize(Size); + } + + Arc.SerializeBulkData(Vector.data(), Vector.size(), 0); } // std::list -template -inline void SerializeContainer(IArchive& rArc, std::list& rList, const TString& rkElemName) +template +inline void Serialize(IArchive& Arc, std::list& List) { - SerializeContainerSize(rArc, rList, rkElemName); + u32 Size = List.size(); + Arc.SerializeArraySize(Size); - for (auto Iter = rList.begin(); Iter != rList.end(); Iter++) - rArc << SERIAL(*rkElemName, *Iter); -} + if (Arc.IsReader()) + { + List.resize(Size); + } -template -inline void SerializeContainer(IArchive& rArc, std::list& rList, const TString& rkElemName, FactoryType *pFactory) -{ - SerializeContainerSize(rArc, rList, rkElemName); - - for (auto Iter = rList.begin(); Iter != rList.end(); Iter++) - rArc << SERIAL_ABSTRACT(*rkElemName, rVec[iElem], pFactory); + for (auto Iter = List.begin(); Iter != List.end(); Iter++) + Arc << SerialParameter("Element", *Iter, SH_IgnoreName | SH_InheritHints); } // Overload for TStringList and TWideStringList so they can use the TString/TWideString serialize functions -inline void SerializeContainer(IArchive& rArc, TStringList& rList, const TString& rkElemName) +inline void Serialize(IArchive& Arc, TStringList& List) { - typedef std::list ListType; - ListType& rGenericList = *reinterpret_cast(&rList); - SerializeContainer(rArc, rGenericList, rkElemName); + std::list& GenericList = *reinterpret_cast< std::list* >(&List); + Serialize(Arc, GenericList); } -inline void SerializeContainer(IArchive& rArc, TWideStringList& rList, const TString& rkElemName) +inline void Serialize(IArchive& Arc, TWideStringList& List) { - typedef std::list ListType; - ListType& rGenericList = *reinterpret_cast(&rList); - SerializeContainer(rArc, rGenericList, rkElemName); + std::list& GenericList = *reinterpret_cast< std::list* >(&List); + Serialize(Arc, GenericList); } // std::set -template -inline void SerializeContainer(IArchive& rArc, std::set& rSet, const TString& rkElemName) +template +inline void Serialize(IArchive& Arc, std::set& Set) { - u32 Size = rSet.size(); - rArc.SerializeContainerSize(Size, rkElemName); + u32 Size = Set.size(); + Arc.SerializeArraySize(Size); - if (rArc.IsReader()) + if (Arc.IsReader()) { - for (u32 iElem = 0; iElem < Size; iElem++) + for (u32 i = 0; i < Size; i++) { - ValType Val; - rArc << SERIAL(*rkElemName, Val); - rSet.insert(Val); + T Val; + Arc << SerialParameter("Element", Val, SH_IgnoreName | SH_InheritHints); + Set.insert(Val); } } else { - for (auto Iter = rSet.begin(); Iter != rSet.end(); Iter++) + for (auto Iter = Set.begin(); Iter != Set.end(); Iter++) { - ValType Val = *Iter; - rArc << SERIAL(*rkElemName, Val); + T Val = *Iter; + Arc << SerialParameter("Element", Val, SH_IgnoreName | SH_InheritHints); } } } -template -inline void SerializeContainer(IArchive& rArc, std::set& rSet, const TString& rkElemName, FactoryType *pFactory) +// std::map and std::unordered_map +template +inline void SerializeMap_Internal(IArchive& Arc, MapType& Map) { - u32 Size = rSet.size(); - rArc.SerializeContainerSize(Size, rkElemName); + u32 Size = Map.size(); + Arc.SerializeArraySize(Size); - if (rArc.IsReader()) + u32 Hints = SH_IgnoreName | SH_InheritHints; + + // Serialize the key/value as attributes if they are both primitive types. + if (Arc.ArchiveVersion() >= IArchive::eArVer_MapAttributes && TIsPrimitive::value && TIsPrimitive::value) { - for (u32 iElem = 0; iElem < Size; iElem++) - { - ValType Val; - rArc << SERIAL_ABSTRACT(*rkElemName, Val, pFactory); - rSet.insert(Val); - } + Hints |= SH_Attribute; } - else + if (Arc.IsReader()) { - for (auto Iter = rSet.begin(); Iter != rSet.end(); Iter++) - { - ValType Val = *Iter; - rArc << SERIAL_ABSTRACT(*rkElemName, Val, pFactory); - } - } -} - -// std::map -template -inline void SerializeContainer(IArchive& rArc, std::map& rMap, const TString& rkElemName) -{ - u32 Size = rMap.size(); - rArc.SerializeContainerSize(Size, rkElemName); - - if (rArc.IsReader()) - { - for (u32 iElem = 0; iElem < Size; iElem++) + for (u32 i = 0; i < Size; i++) { KeyType Key; ValType Val; - rArc.ParamBegin(*rkElemName); - rArc << SERIAL("Key", Key) << SERIAL("Value", Val); - rArc.ParamEnd(); + if (Arc.ParamBegin("Element", SH_IgnoreName | SH_InheritHints)) + { + Arc << SerialParameter("Key", Key, Hints) + << SerialParameter("Value", Val, Hints); - ASSERT(rMap.find(Key) == rMap.end()); - rMap[Key] = Val; + ASSERT(Map.find(Key) == Map.end()); + Map[Key] = Val; + Arc.ParamEnd(); + } } } else { - for (auto Iter = rMap.begin(); Iter != rMap.end(); Iter++) + for (auto Iter = Map.begin(); Iter != Map.end(); Iter++) { + // Creating copies is not ideal, but necessary because parameters cannot be const. + // Maybe this can be avoided somehow? KeyType Key = Iter->first; ValType Val = Iter->second; - rArc.ParamBegin(*rkElemName); - rArc << SERIAL("Key", Key) << SERIAL("Value", Val); - rArc.ParamEnd(); + if (Arc.ParamBegin("Element", SH_IgnoreName | SH_InheritHints)) + { + Arc << SerialParameter("Key", Key, Hints) + << SerialParameter("Value", Val, Hints); + + Arc.ParamEnd(); + } } } } -template -inline void SerializeContainer(IArchive& rArc, std::map& rMap, const TString& rkElemName, FactoryType *pFactory) +template +inline void Serialize(IArchive& Arc, std::map& Map) { - u32 Size = rMap.size(); - rArc.SerializeContainerSize(Size, rkElemName); - - if (rArc.IsReader()) - { - for (u32 iElem = 0; iElem < Size; iElem++) - { - KeyType Key; - ValType Val; - - rArc.ParamBegin(*rkElemName); - rArc << SERIAL_ABSTRACT("Key", Key, pFactory) << SERIAL("Value", Val); - rArc.ParamEnd(); - - ASSERT(rMap.find(Key) == rMap.end()); - rMap[Key] = Val; - } - } - - else - { - for (auto Iter = rMap.begin(); Iter != rMap.end(); Iter++) - { - KeyType Key = Iter->first; - ValType Val = Iter->second; - - rArc.ParamBegin(*rkElemName); - rArc << SERIAL("Key", Key) << SERIAL("Value", Val); - rArc.ParamEnd(); - } - } + SerializeMap_Internal >(Arc, Map); } +template +inline void Serialize(IArchive& Arc, std::unordered_map& Map) +{ + SerializeMap_Internal >(Arc, Map); +} + +// Smart pointer serialize methods +template +void Serialize(IArchive& Arc, std::unique_ptr& Pointer) +{ + T* pRawPtr = Pointer.get(); + Arc << SerialParameter("RawPointer", pRawPtr, SH_Proxy); + + if (Arc.IsReader()) + Pointer = std::unique_ptr(pRawPtr); +} + +template +void Serialize(IArchive& Arc, std::shared_ptr& Pointer) +{ + T* pRawPtr = Pointer.get(); + Arc << SerialParameter("RawPointer", pRawPtr, SH_Proxy); + + if (Arc.IsReader()) + Pointer = std::shared_ptr(pRawPtr); +} + +// Remove header-only macros +#undef ENABLE_IF +#undef SUPPORTS_DEFAULT_VALUES +#undef IS_ABSTRACT +#undef IS_SERIAL_TYPE +#undef IS_ARCHIVE_CONSTRUCTOR_TYPE +#undef ABSTRACT_TYPE + #endif // IARCHIVE diff --git a/src/Common/TString.cpp b/src/Common/TString.cpp index 2e4b2b23..6fc2f9f5 100644 --- a/src/Common/TString.cpp +++ b/src/Common/TString.cpp @@ -1,20 +1,22 @@ #include "TString.h" -#include "CHashFNV1A.h" -#include +#include "Hash/CCRC32.h" +#include "Hash/CFNV1A.h" +#include "FileIO/IOUtil.h" #include #include // ************ TString ************ u32 TString::Hash32() const { - CHashFNV1A Hash(CHashFNV1A::e32Bit); - Hash.HashString(*this); - return Hash.GetHash32(); + CCRC32 Hash; + Hash.Hash(**this); + return Hash.Digest(); } u64 TString::Hash64() const { - CHashFNV1A Hash(CHashFNV1A::e64Bit); + // todo: replace with MD5 + CFNV1A Hash(CFNV1A::e64Bit); Hash.HashString(*this); return Hash.GetHash64(); } @@ -108,14 +110,14 @@ TWideString TString::ToUTF16() const // ************ TWideString ************ u32 TWideString::Hash32() const { - CHashFNV1A Hash(CHashFNV1A::e32Bit); + CFNV1A Hash(CFNV1A::e32Bit); Hash.HashData(Data(), Size() * sizeof(wchar_t)); return Hash.GetHash32(); } u64 TWideString::Hash64() const { - CHashFNV1A Hash(CHashFNV1A::e64Bit); + CFNV1A Hash(CFNV1A::e64Bit); Hash.HashData(Data(), Size() * sizeof(wchar_t)); return Hash.GetHash64(); } diff --git a/src/Common/TString.h b/src/Common/TString.h index cb8b5bbb..36c87cf1 100644 --- a/src/Common/TString.h +++ b/src/Common/TString.h @@ -930,14 +930,9 @@ public: return SStream.str(); } - static _TString FromFloat(float Value, int MinDecimals = 1) + static _TString FromFloat(float Value, int MinDecimals = 1, bool Scientific = false) { - // Initial float -> string conversion - std::basic_stringstream SStream; - if (MinDecimals > 0) SStream.setf(std::ios_base::showpoint); - SStream.setf(std::ios_base::fixed, std::ios_base::floatfield); - SStream << Value; - _TString Out = SStream.str(); + _TString Out = _TString::Format(Scientific ? "%.8g" : "%f", Value); // Make sure we have the right number of decimals int DecIdx = Out.IndexOf(CHAR_LITERAL('.')); @@ -954,7 +949,7 @@ public: if (NumZeroes < MinDecimals) { for (int iDec = 0; iDec < (MinDecimals - NumZeroes); iDec++) - Out.Append(CHAR_LITERAL('.')); + Out.Append(CHAR_LITERAL('0')); } // Remove unnecessary trailing zeroes from the end of the string @@ -1065,6 +1060,16 @@ public: return (Chr >= CHAR_LITERAL('a') && Chr <= CHAR_LITERAL('z')) ? Chr - 0x20 : Chr; } + static bool IsVowel(CharType Chr) + { + Chr = CharToUpper(Chr); + return (Chr == 'A' || + Chr == 'E' || + Chr == 'I' || + Chr == 'O' || + Chr == 'U'); + } + static bool IsWhitespace(CharType Chr) { return ( (Chr == CHAR_LITERAL('\t')) || diff --git a/src/Core/CAreaAttributes.cpp b/src/Core/CAreaAttributes.cpp index 21069c3e..a32b8cdc 100644 --- a/src/Core/CAreaAttributes.cpp +++ b/src/Core/CAreaAttributes.cpp @@ -1,5 +1,5 @@ #include "CAreaAttributes.h" -#include "Core/Resource/Script/CMasterTemplate.h" +#include "Core/Resource/Script/CGameTemplate.h" #include "Core/Resource/Script/CScriptLayer.h" CAreaAttributes::CAreaAttributes(CScriptObject *pObj) @@ -13,48 +13,30 @@ CAreaAttributes::~CAreaAttributes() void CAreaAttributes::SetObject(CScriptObject *pObj) { - mpObj = pObj; - mGame = pObj->Template()->MasterTemplate()->Game(); + CScriptTemplate* pTemplate = pObj->Template(); + CStructProperty* pProperties = pTemplate->Properties(); + + mpObject = pObj; + mGame = pTemplate->GameTemplate()->Game(); + mNeedSky = CBoolRef(pObj->PropertyData(), pProperties->ChildByIndex(1)); + + if (mGame == EGame::Prime) + mOverrideSky = CAssetRef(pObj->PropertyData(), pProperties->ChildByIndex(7)); + else if (mGame > EGame::Prime) + mOverrideSky = CAssetRef(pObj->PropertyData(), pProperties->ChildByID(0xD208C9FA)); } bool CAreaAttributes::IsLayerEnabled() const { - return mpObj->Layer()->IsActive(); + return mpObject->Layer()->IsActive(); } bool CAreaAttributes::IsSkyEnabled() const { - CPropertyStruct *pBaseStruct = mpObj->Properties(); - - switch (mGame) - { - case ePrime: - case eEchoesDemo: - case eEchoes: - case eCorruptionProto: - case eCorruption: - case eReturns: - return static_cast(pBaseStruct->PropertyByIndex(1))->Get(); - default: - return false; - } + return mNeedSky.IsValid() ? mNeedSky.Get() : false; } CModel* CAreaAttributes::SkyModel() const { - CPropertyStruct *pBaseStruct = mpObj->Properties(); - - switch (mGame) - { - case ePrime: - return gpResourceStore->LoadResource( static_cast(pBaseStruct->PropertyByIndex(7))->Get() ); - case eEchoesDemo: - case eEchoes: - case eCorruptionProto: - case eCorruption: - case eReturns: - return gpResourceStore->LoadResource( static_cast(pBaseStruct->PropertyByID(0xD208C9FA))->Get() ); - default: - return nullptr; - } + return mOverrideSky.IsValid() ? gpResourceStore->LoadResource(mOverrideSky.Get()) : nullptr; } diff --git a/src/Core/CAreaAttributes.h b/src/Core/CAreaAttributes.h index 02890f20..86cec024 100644 --- a/src/Core/CAreaAttributes.h +++ b/src/Core/CAreaAttributes.h @@ -2,11 +2,15 @@ #define CAREAATTRIBUTES_H #include "Core/Resource/Script/CScriptObject.h" +#include "Core/Resource/Script/Property/Properties.h" class CAreaAttributes { + CScriptObject* mpObject; EGame mGame; - CScriptObject *mpObj; + + CBoolRef mNeedSky; + CAssetRef mOverrideSky; public: CAreaAttributes(CScriptObject *pObj); @@ -16,7 +20,7 @@ public: bool IsSkyEnabled() const; CModel* SkyModel() const; - inline CScriptObject* Instance() const { return mpObj; } + inline CScriptObject* Instance() const { return mpObject; } }; #endif // CAREAATTRIBUTES_H diff --git a/src/Core/CAudioManager.cpp b/src/Core/CAudioManager.cpp index ed9b53cc..540063b6 100644 --- a/src/Core/CAudioManager.cpp +++ b/src/Core/CAudioManager.cpp @@ -41,13 +41,13 @@ void CAudioManager::LoadAssets() } // Load audio lookup table + sfx name list - TString AudioLookupName = (mpProject->Game() < eEchoesDemo ? "sound_lookup" : "sound_lookup_ATBL"); + TString AudioLookupName = (mpProject->Game() < EGame::EchoesDemo ? "sound_lookup" : "sound_lookup_ATBL"); CAssetID AudioLookupID = mpProject->FindNamedResource(AudioLookupName); if (AudioLookupID.IsValid()) mpAudioLookupTable = mpProject->ResourceStore()->LoadResource(AudioLookupID); - if (mpProject->Game() >= eEchoesDemo) + if (mpProject->Game() >= EGame::EchoesDemo) { CAssetID SfxNameListID = mpProject->FindNamedResource("audio_name_lookup_STLC"); @@ -77,7 +77,7 @@ SSoundInfo CAudioManager::GetSoundInfo(u32 SoundID) if (Iter != mSfxIdMap.end()) Out.pAudioGroup = Iter->second; - if (mpProject->Game() >= eEchoesDemo) + if (mpProject->Game() >= EGame::EchoesDemo) Out.Name = mpSfxNameList->StringByIndex(Out.DefineID); } @@ -90,7 +90,7 @@ void CAudioManager::LogSoundInfo(u32 SoundID) if (SoundInfo.DefineID != 0xFFFF) { - if (mpProject->Game() >= eEchoesDemo) + if (mpProject->Game() >= EGame::EchoesDemo) Log::Write("Sound Name: " + SoundInfo.Name); Log::Write("Sound ID: " + TString::HexString(SoundInfo.SoundID, 4)); diff --git a/src/Core/CLightParameters.h b/src/Core/CLightParameters.h index a79153f8..1a5ffd52 100644 --- a/src/Core/CLightParameters.h +++ b/src/Core/CLightParameters.h @@ -2,7 +2,7 @@ #define CLIGHTPARAMETERS_H #include "Core/Resource/Area/CGameArea.h" -#include "Core/Resource/Script/IProperty.h" +#include "Core/Resource/Script/Property/Properties.h" enum EWorldLightingOptions { @@ -14,48 +14,35 @@ enum EWorldLightingOptions class CLightParameters { - CPropertyStruct *mpStruct; - EGame mGame; - - TLongProperty *mpLightLayer; - TEnumProperty *mpWorldLightingOptions; + CIntRef mLightLayer; + TEnumRef mWorldLightingOptions; public: - CLightParameters(CPropertyStruct *pStruct, EGame Game) - : mpStruct(pStruct) - , mGame(Game) - , mpLightLayer(nullptr) - , mpWorldLightingOptions(nullptr) + CLightParameters(CStructRef InStruct, EGame Game) { - if (mpStruct) + if (InStruct.IsValid()) { - if (mGame <= ePrime) + if (Game <= EGame::Prime) { - mpWorldLightingOptions = TPropCast(mpStruct->PropertyByIndex(0x7)); - mpLightLayer = TPropCast(mpStruct->PropertyByIndex(0xD)); + mWorldLightingOptions = TEnumRef(InStruct.DataPointer(), InStruct.Property()->ChildByIndex(0x7)); + mLightLayer = CIntRef(InStruct.DataPointer(), InStruct.Property()->ChildByIndex(0xD)); } else { - mpWorldLightingOptions = TPropCast(mpStruct->PropertyByID(0x6B5E7509)); - mpLightLayer = TPropCast(mpStruct->PropertyByID(0x1F715FD3)); + mWorldLightingOptions = TEnumRef(InStruct.DataPointer(), InStruct.Property()->ChildByID(0x6B5E7509)); + mLightLayer = CIntRef(InStruct.DataPointer(), InStruct.Property()->ChildByID(0x1F715FD3)); } } } inline int LightLayerIndex() const { - if (!mpLightLayer) - return 0; - else - return mpLightLayer->Get(); + return mLightLayer.IsValid() ? mLightLayer.Get() : 0; } inline EWorldLightingOptions WorldLightingOptions() const { - if (mpWorldLightingOptions) - return (EWorldLightingOptions) mpWorldLightingOptions->Get(); - else - return eNormalLighting; + return mWorldLightingOptions.IsValid() ? mWorldLightingOptions.Get() : eNormalLighting; } }; diff --git a/src/Core/Core.pro b/src/Core/Core.pro index 192983d0..f16b114c 100644 --- a/src/Core/Core.pro +++ b/src/Core/Core.pro @@ -12,6 +12,9 @@ TEMPLATE = lib DESTDIR = $$BUILD_DIR/Core DEFINES += GLEW_STATIC +win32 { + QMAKE_CXXFLAGS += -std:c++17 +} unix { target.path = /usr/lib QMAKE_CXXFLAGS += /WX @@ -26,11 +29,9 @@ CONFIG (debug, debug|release) { # Debug Libs LIBS += -L$$BUILD_DIR/Common/ -lCommond \ -L$$BUILD_DIR/Math/ -lMathd \ - -L$$EXTERNALS_DIR/assimp/lib/ -lassimp-vc140-mtd \ - -L$$EXTERNALS_DIR/lzo-2.09/lib/ -llzo2d \ - -L$$EXTERNALS_DIR/nodtool/build/debug/lib/ -lnod \ - -L$$EXTERNALS_DIR/nodtool/build/debug/logvisor/ -llogvisor \ - -L$$EXTERNALS_DIR/tinyxml2/lib/ -ltinyxml2d \ + -L$$EXTERNALS_DIR/assimp/lib/Debug -lassimp-vc140-mt \ + -L$$EXTERNALS_DIR/nod/lib/Debug -lnod \ + -L$$EXTERNALS_DIR/nod/logvisor/Debug -llogvisor \ -L$$EXTERNALS_DIR/zlib/lib/ -lzlibd # Debug Target Dependencies @@ -48,11 +49,9 @@ CONFIG (release, debug|release) { # Release Libs LIBS += -L$$BUILD_DIR/Common/ -lCommon \ -L$$BUILD_DIR/Math/ -lMath \ - -L$$EXTERNALS_DIR/assimp/lib/ -lassimp-vc140-mt \ - -L$$EXTERNALS_DIR/lzo-2.09/lib/ -llzo2 \ - -L$$EXTERNALS_DIR/nodtool/build/release/lib/ -lnod \ - -L$$EXTERNALS_DIR/nodtool/build/release/logvisor -llogvisor \ - -L$$EXTERNALS_DIR/tinyxml2/lib/ -ltinyxml2 \ + -L$$EXTERNALS_DIR/assimp/lib/Release -lassimp-vc140-mt \ + -L$$EXTERNALS_DIR/nod/lib/Release -lnod \ + -L$$EXTERNALS_DIR/nod/logvisor/Release -llogvisor \ -L$$EXTERNALS_DIR/zlib/lib/ -lzlib # Release Target Dependencies @@ -63,18 +62,19 @@ CONFIG (release, debug|release) { } # Debug/Release Libs -LIBS += -L$$EXTERNALS_DIR/glew-2.0.0/lib/Release/x64 -lglew32s \ +LIBS += -L$$EXTERNALS_DIR/glew-2.1.0/lib/Release/x64 -lglew32s \ -lopengl32 # Include Paths INCLUDEPATH += $$PWE_MAIN_INCLUDE \ $$EXTERNALS_DIR/assimp/include \ - $$EXTERNALS_DIR/glew-2.0.0/include \ - $$EXTERNALS_DIR/lzo-2.09/include \ - $$EXTERNALS_DIR/nodtool/include \ - $$EXTERNALS_DIR/nodtool/logvisor/include \ - $$EXTERNALS_DIR/tinyxml2/include \ - $$EXTERNALS_DIR/zlib/include + $$EXTERNALS_DIR/CodeGen/include \ + $$EXTERNALS_DIR/glew-2.1.0/include \ + $$EXTERNALS_DIR/lzo-2.10/include \ + $$EXTERNALS_DIR/nod/include \ + $$EXTERNALS_DIR/nod/logvisor/include \ + $$EXTERNALS_DIR/tinyxml2 \ + $$EXTERNALS_DIR/zlib # Header Files HEADERS += \ @@ -91,7 +91,6 @@ HEADERS += \ Resource/Cooker/CMaterialCooker.h \ Resource/Cooker/CModelCooker.h \ Resource/Cooker/CSectionMgrOut.h \ - Resource/Cooker/CTemplateWriter.h \ Resource/Cooker/CTextureEncoder.h \ Resource/Cooker/CWorldCooker.h \ Resource/Factory/CAnimSetLoader.h \ @@ -103,7 +102,6 @@ HEADERS += \ Resource/Factory/CScanLoader.h \ Resource/Factory/CScriptLoader.h \ Resource/Factory/CStringLoader.h \ - Resource/Factory/CTemplateLoader.h \ Resource/Factory/CTextureDecoder.h \ Resource/Factory/CWorldLoader.h \ Resource/Model/CBasicModel.h \ @@ -111,11 +109,9 @@ HEADERS += \ Resource/Model/CStaticModel.h \ Resource/Model/CVertex.h \ Resource/Model/SSurface.h \ - Resource/Script/CMasterTemplate.h \ Resource/Script/CScriptLayer.h \ Resource/Script/CScriptObject.h \ Resource/Script/CScriptTemplate.h \ - Resource/Script/EPropertyType.h \ Resource/Script/EVolumeShape.h \ Resource/CCollisionMesh.h \ Resource/CCollisionMeshGroup.h \ @@ -162,11 +158,7 @@ HEADERS += \ OpenGL/CVertexBuffer.h \ OpenGL/GLCommon.h \ ScriptExtra/CRadiusSphereExtra.h \ - Resource/EGame.h \ Resource/Cooker/CAreaCooker.h \ - Resource/Script/IPropertyValue.h \ - Resource/Script/IPropertyTemplate.h \ - Resource/Script/IProperty.h \ Resource/Model/EVertexAttribute.h \ Render/FRenderOptions.h \ Scene/FShowFlags.h \ @@ -231,7 +223,34 @@ HEADERS += \ IProgressNotifier.h \ IUIRelay.h \ Resource/CResTypeFilter.h \ - GameProject/COpeningBanner.h + GameProject/COpeningBanner.h \ + Resource/Script/Property/CPropertyNameGenerator.h \ + Resource/Script/Property/IProperty.h \ + Resource/Script/Property/CEnumProperty.h \ + Resource/Script/Property/CFlagsProperty.h \ + Resource/Script/Property/CAssetProperty.h \ + Resource/Script/Property/CPointerProperty.h \ + Resource/Script/Property/CArrayProperty.h \ + Resource/Script/Property/Properties.h \ + Resource/Script/Property/TPropertyRef.h \ + Resource/Script/Property/CBoolProperty.h \ + Resource/Script/Property/CByteProperty.h \ + Resource/Script/Property/CShortProperty.h \ + Resource/Script/Property/CIntProperty.h \ + Resource/Script/Property/CFloatProperty.h \ + Resource/Script/Property/CStringProperty.h \ + Resource/Script/Property/CSoundProperty.h \ + Resource/Script/Property/CAnimationProperty.h \ + Resource/Script/Property/CSequenceProperty.h \ + Resource/Script/Property/CSplineProperty.h \ + Resource/Script/Property/CAnimationSetProperty.h \ + Resource/Script/Property/CVectorProperty.h \ + Resource/Script/Property/CColorProperty.h \ + Resource/Script/Property/CStructProperty.h \ + Resource/Script/Property/CGuidProperty.h \ + Resource/Script/CGameTemplate.h \ + Resource/Script/NPropertyMap.h \ + Resource/Script/NGameList.h # Source Files SOURCES += \ @@ -243,7 +262,6 @@ SOURCES += \ Resource/Area/CGameArea.cpp \ Resource/Cooker/CMaterialCooker.cpp \ Resource/Cooker/CModelCooker.cpp \ - Resource/Cooker/CTemplateWriter.cpp \ Resource/Cooker/CTextureEncoder.cpp \ Resource/Cooker/CWorldCooker.cpp \ Resource/Factory/CAnimSetLoader.cpp \ @@ -255,14 +273,12 @@ SOURCES += \ Resource/Factory/CScanLoader.cpp \ Resource/Factory/CScriptLoader.cpp \ Resource/Factory/CStringLoader.cpp \ - Resource/Factory/CTemplateLoader.cpp \ Resource/Factory/CTextureDecoder.cpp \ Resource/Factory/CWorldLoader.cpp \ Resource/Model/CBasicModel.cpp \ Resource/Model/CModel.cpp \ Resource/Model/CStaticModel.cpp \ Resource/Model/SSurface.cpp \ - Resource/Script/CMasterTemplate.cpp \ Resource/Script/CScriptObject.cpp \ Resource/Script/CScriptTemplate.cpp \ Resource/CCollisionMesh.cpp \ @@ -296,8 +312,6 @@ SOURCES += \ OpenGL/GLCommon.cpp \ ScriptExtra/CRadiusSphereExtra.cpp \ Resource/Cooker/CAreaCooker.cpp \ - Resource/Script/IPropertyTemplate.cpp \ - Resource/Script/IProperty.cpp \ Scene/FShowFlags.cpp \ Scene/CScene.cpp \ Scene/CSceneIterator.cpp \ @@ -340,4 +354,22 @@ SOURCES += \ CompressionUtil.cpp \ IUIRelay.cpp \ GameProject\COpeningBanner.cpp \ - IProgressNotifier.cpp + IProgressNotifier.cpp \ + Resource/Script/Property/CPropertyNameGenerator.cpp \ + Resource/Script/Property/IProperty.cpp \ + Resource/Script/Property/CStructProperty.cpp \ + Resource/Script/Property/CFlagsProperty.cpp \ + Resource/Script/CGameTemplate.cpp \ + Resource/Script/NPropertyMap.cpp \ + Resource/Script/NGameList.cpp + +# Codegen +CODEGEN_DIR = $$EXTERNALS_DIR/CodeGen +CODEGEN_OUT_PATH = $$BUILD_DIR/Core/codegen_build/auto_codegen.cpp +CODEGEN_SRC_PATH = $$PWD +include($$EXTERNALS_DIR/CodeGen/codegen.pri) + +# Library Sources +SOURCES += $$EXTERNALS_DIR/lzo-2.10/src/lzo_init.c \ + $$EXTERNALS_DIR/lzo-2.10/src/lzo1x_9x.c \ + $$EXTERNALS_DIR/lzo-2.10/src/lzo1x_d1.c diff --git a/src/Core/GameProject/AssetNameGeneration.cpp b/src/Core/GameProject/AssetNameGeneration.cpp index 025a6e5f..5edf2343 100644 --- a/src/Core/GameProject/AssetNameGeneration.cpp +++ b/src/Core/GameProject/AssetNameGeneration.cpp @@ -43,7 +43,7 @@ void ApplyGeneratedName(CResourceEntry *pEntry, const TString& rkDir, const TStr // trying to keep these as consistent with Retro's naming scheme as possible, and // for some reason in MP3 they started using all lowercase folder names... - if (pEntry->Game() >= eCorruptionProto) + if (pEntry->Game() >= EGame::CorruptionProto) SanitizedDir = SanitizedDir.ToLower(); pNewDir = pEntry->ResourceStore()->GetVirtualDirectory(SanitizedDir, true); @@ -245,9 +245,9 @@ void GenerateAssetNames(CGameProject *pProj) { CMaterialPass *pPass = pMat->Pass(iPass); - bool IsLightmap = ( (pArea->Game() <= eEchoes && pMat->Options().HasFlag(CMaterial::eLightmap) && iPass == 0) || - (pArea->Game() >= eCorruptionProto && pPass->Type() == "DIFF") ); - bool IsBloomLightmap = (pArea->Game() >= eCorruptionProto && pPass->Type() == "BLOL"); + bool IsLightmap = ( (pArea->Game() <= EGame::Echoes && pMat->Options().HasFlag(CMaterial::eLightmap) && iPass == 0) || + (pArea->Game() >= EGame::CorruptionProto && pPass->Type() == "DIFF") ); + bool IsBloomLightmap = (pArea->Game() >= EGame::CorruptionProto && pPass->Type() == "BLOL"); TString TexName; @@ -283,7 +283,8 @@ void GenerateAssetNames(CGameProject *pProj) for (u32 iInst = 0; iInst < pLayer->NumInstances(); iInst++) { - CScriptObject *pInst = pLayer->InstanceByIndex(iInst); + CScriptObject* pInst = pLayer->InstanceByIndex(iInst); + CStructProperty* pProperties = pInst->Template()->Properties(); if (pInst->ObjectTypeID() == 0x42 || pInst->ObjectTypeID() == FOURCC('POIN')) { @@ -291,13 +292,13 @@ void GenerateAssetNames(CGameProject *pProj) if (Name.StartsWith("POI_", false)) { - TIDString ScanIDString = (pProj->Game() <= ePrime ? "0x4:0x0" : "0xBDBEC295:0xB94E9BE7"); - TAssetProperty *pScanProperty = TPropCast(pInst->PropertyByIDString(ScanIDString)); + TIDString ScanIDString = (pProj->Game() <= EGame::Prime ? "0x4:0x0" : "0xBDBEC295:0xB94E9BE7"); + CAssetProperty *pScanProperty = TPropCast(pProperties->ChildByIDString(ScanIDString)); ASSERT(pScanProperty); // Temporary assert to remind myself later to update this code when uncooked properties are added to the template if (pScanProperty) { - CAssetID ScanID = pScanProperty->Get(); + CAssetID ScanID = pScanProperty->Value(pInst->PropertyData()); CResourceEntry *pEntry = pStore->FindEntry(ScanID); if (pEntry && !pEntry->IsNamed()) @@ -326,13 +327,13 @@ void GenerateAssetNames(CGameProject *pProj) if (Name.EndsWith(".STRG", false)) { - u32 StringPropID = (pProj->Game() <= ePrime ? 0x4 : 0x9182250C); - TAssetProperty *pStringProperty = TPropCast(pInst->Properties()->PropertyByID(StringPropID)); + u32 StringPropID = (pProj->Game() <= EGame::Prime ? 0x4 : 0x9182250C); + CAssetProperty *pStringProperty = TPropCast(pProperties->ChildByID(StringPropID)); ASSERT(pStringProperty); // Temporary assert to remind myself later to update this code when uncooked properties are added to the template if (pStringProperty) { - CAssetID StringID = pStringProperty->Get(); + CAssetID StringID = pStringProperty->Value(pInst->PropertyData()); CResourceEntry *pEntry = pStore->FindEntry(StringID); if (pEntry && !pEntry->IsNamed()) @@ -352,13 +353,13 @@ void GenerateAssetNames(CGameProject *pProj) else if (pInst->ObjectTypeID() == 0x0 || pInst->ObjectTypeID() == FOURCC('ACTR') || pInst->ObjectTypeID() == 0x8 || pInst->ObjectTypeID() == FOURCC('PLAT')) { - u32 ModelPropID = (pProj->Game() <= ePrime ? (pInst->ObjectTypeID() == 0x0 ? 0xA : 0x6) : 0xC27FFA8F); - TAssetProperty *pModelProperty = TPropCast(pInst->Properties()->PropertyByID(ModelPropID)); + u32 ModelPropID = (pProj->Game() <= EGame::Prime ? (pInst->ObjectTypeID() == 0x0 ? 0xA : 0x6) : 0xC27FFA8F); + CAssetProperty *pModelProperty = TPropCast(pProperties->ChildByID(ModelPropID)); ASSERT(pModelProperty); // Temporary assert to remind myself later to update this code when uncooked properties are added to the template if (pModelProperty) { - CAssetID ModelID = pModelProperty->Get(); + CAssetID ModelID = pModelProperty->Value(pInst->PropertyData()); CResourceEntry *pEntry = pStore->FindEntry(ModelID); if (pEntry && !pEntry->IsCategorized()) @@ -414,8 +415,8 @@ void GenerateAssetNames(CGameProject *pProj) { CMaterialPass *pPass = pMat->Pass(iPass); - bool IsLightmap = ( (pMat->Version() <= eEchoes && pMat->Options().HasFlag(CMaterial::eLightmap) && iPass == 0) || - (pMat->Version() >= eCorruptionProto && pPass->Type() == "DIFF") ); + bool IsLightmap = ( (pMat->Version() <= EGame::Echoes && pMat->Options().HasFlag(CMaterial::eLightmap) && iPass == 0) || + (pMat->Version() >= EGame::CorruptionProto && pPass->Type() == "DIFF") ); if (IsLightmap) { @@ -484,7 +485,7 @@ void GenerateAssetNames(CGameProject *pProj) // Generate animation format names // Hacky syntax because animsets are under eAnimSet in MP1/2 and eCharacter in MP3/DKCR Log::Write("Processing animation data"); - CResourceIterator *pIter = (pProj->Game() <= eEchoes ? (CResourceIterator*) new TResourceIterator : (CResourceIterator*) new TResourceIterator); + CResourceIterator *pIter = (pProj->Game() <= EGame::Echoes ? (CResourceIterator*) new TResourceIterator : (CResourceIterator*) new TResourceIterator); CResourceIterator& It = *pIter; for (; It; ++It) @@ -504,7 +505,7 @@ void GenerateAssetNames(CGameProject *pProj) if (pkChar->pSkeleton) ApplyGeneratedName(pkChar->pSkeleton->Entry(), SetDir, CharName); if (pkChar->pSkin) ApplyGeneratedName(pkChar->pSkin->Entry(), SetDir, CharName); - if (pProj->Game() >= eCorruptionProto && pProj->Game() <= eCorruption && pkChar->ID == 0) + if (pProj->Game() >= EGame::CorruptionProto && pProj->Game() <= EGame::Corruption && pkChar->ID == 0) { CResourceEntry *pAnimDataEntry = gpResourceStore->FindEntry( pkChar->AnimDataID ); @@ -606,7 +607,7 @@ void GenerateAssetNames(CGameProject *pProj) CScan *pScan = (CScan*) It->Load(); TString ScanName; - if (pProj->Game() >= eEchoesDemo) + if (pProj->Game() >= EGame::EchoesDemo) { CAssetID DisplayAsset = pScan->LogbookDisplayAssetID(); CResourceEntry *pEntry = pStore->FindEntry(DisplayAsset); @@ -621,7 +622,7 @@ void GenerateAssetNames(CGameProject *pProj) ApplyGeneratedName(pScan->Entry(), It->DirectoryPath(), ScanName); - if (!ScanName.IsEmpty() && pProj->Game() <= ePrime) + if (!ScanName.IsEmpty() && pProj->Game() <= EGame::Prime) { CAssetID FrameID = pScan->GuiFrame(); CResourceEntry *pEntry = pStore->FindEntry(FrameID); diff --git a/src/Core/GameProject/CAssetNameMap.cpp b/src/Core/GameProject/CAssetNameMap.cpp index 8ba78322..65615eb1 100644 --- a/src/Core/GameProject/CAssetNameMap.cpp +++ b/src/Core/GameProject/CAssetNameMap.cpp @@ -36,7 +36,7 @@ bool CAssetNameMap::SaveAssetNames(TString Path /*= ""*/) if (Path.IsEmpty()) Path = DefaultNameMapPath(mIDLength); - EGame Game = (mIDLength == e32Bit ? ePrime : eCorruption); + EGame Game = (mIDLength == e32Bit ? EGame::Prime : EGame::Corruption); CXMLWriter Writer(Path, "AssetNameMap", 0, Game); Serialize(Writer); return Writer.Save(); @@ -58,7 +58,7 @@ bool CAssetNameMap::GetNameInfo(CAssetID ID, TString& rOutDirectory, TString& rO else { - EGame Game = (ID.Length() == e32Bit ? ePrime : eCorruption); + EGame Game = (ID.Length() == e32Bit ? EGame::Prime : EGame::Corruption); rOutDirectory = CResourceStore::StaticDefaultResourceDirPath(Game); rOutName = ID.ToString(); rOutAutoGenDir = true; @@ -133,7 +133,7 @@ void CAssetNameMap::CopyFromStore(CResourceStore *pStore /*= gpResourceStore*/) // ************ PRIVATE ************ void CAssetNameMap::Serialize(IArchive& rArc) { - rArc << SERIAL_CONTAINER("AssetNameMap", mMap, "Asset"); + rArc << SerialParameter("AssetNameMap", mMap); if (rArc.IsReader()) PostLoadValidate(); diff --git a/src/Core/GameProject/CAssetNameMap.h b/src/Core/GameProject/CAssetNameMap.h index 6257e8f4..b516226b 100644 --- a/src/Core/GameProject/CAssetNameMap.h +++ b/src/Core/GameProject/CAssetNameMap.h @@ -28,7 +28,11 @@ class CAssetNameMap void Serialize(IArchive& rArc) { - rArc << SERIAL_AUTO(Name) << SERIAL_AUTO(Directory) << SERIAL_AUTO(Type) << SERIAL_AUTO(AutoGenName) << SERIAL_AUTO(AutoGenDir); + rArc << SerialParameter("Name", Name) + << SerialParameter("Directory", Directory) + << SerialParameter("Type", Type) + << SerialParameter("AutoGenName", AutoGenName) + << SerialParameter("AutoGenDir", AutoGenDir); } bool operator<(const SAssetNameInfo& rkOther) const diff --git a/src/Core/GameProject/CDependencyTree.cpp b/src/Core/GameProject/CDependencyTree.cpp index 44644800..ce8e062e 100644 --- a/src/Core/GameProject/CDependencyTree.cpp +++ b/src/Core/GameProject/CDependencyTree.cpp @@ -1,11 +1,10 @@ #include "CDependencyTree.h" #include "Core/GameProject/CGameProject.h" #include "Core/Resource/Animation/CAnimSet.h" -#include "Core/Resource/Script/CMasterTemplate.h" +#include "Core/Resource/Script/CGameTemplate.h" #include "Core/Resource/Script/CScriptLayer.h" #include "Core/Resource/Script/CScriptObject.h" - -CDependencyNodeFactory gDependencyNodeFactory; +#include "Core/Resource/Script/NGameList.h" // ************ IDependencyNode ************ IDependencyNode::~IDependencyNode() @@ -31,6 +30,24 @@ void IDependencyNode::GetAllResourceReferences(std::set& rOutSet) cons mChildren[iChild]->GetAllResourceReferences(rOutSet); } +// Serialization constructor +IDependencyNode* IDependencyNode::ArchiveConstructor(EDependencyNodeType Type) +{ + switch (Type) + { + case eDNT_DependencyTree: return new CDependencyTree; + case eDNT_ResourceDependency: return new CResourceDependency; + case eDNT_ScriptInstance: return new CScriptInstanceDependency; + case eDNT_ScriptProperty: return new CPropertyDependency; + case eDNT_CharacterProperty: return new CCharPropertyDependency; + case eDNT_SetCharacter: return new CSetCharacterDependency; + case eDNT_SetAnimation: return new CSetAnimationDependency; + case eDNT_AnimEvent: return new CAnimEventDependency; + case eDNT_Area: return new CAreaDependencyTree; + default: ASSERT(false); return nullptr; + } +} + // ************ CDependencyTree ************ EDependencyNodeType CDependencyTree::Type() const { @@ -39,7 +56,7 @@ EDependencyNodeType CDependencyTree::Type() const void CDependencyTree::Serialize(IArchive& rArc) { - rArc << SERIAL_ABSTRACT_CONTAINER("Children", mChildren, "Child", &gDependencyNodeFactory); + rArc << SerialParameter("Children", mChildren); } void CDependencyTree::AddChild(IDependencyNode *pNode) @@ -78,7 +95,7 @@ EDependencyNodeType CResourceDependency::Type() const void CResourceDependency::Serialize(IArchive& rArc) { - rArc << SERIAL("ID", mID); + rArc << SerialParameter("ID", mID); } void CResourceDependency::GetAllResourceReferences(std::set& rOutSet) const @@ -99,7 +116,7 @@ EDependencyNodeType CPropertyDependency::Type() const void CPropertyDependency::Serialize(IArchive& rArc) { - rArc << SERIAL("PropertyID", mIDString); + rArc << SerialParameter("PropertyID", mIDString); CResourceDependency::Serialize(rArc); } @@ -112,7 +129,7 @@ EDependencyNodeType CCharPropertyDependency::Type() const void CCharPropertyDependency::Serialize(IArchive& rArc) { CPropertyDependency::Serialize(rArc); - rArc << SERIAL("CharIndex", mUsedChar); + rArc << SerialParameter("CharIndex", mUsedChar); } // ************ CScriptInstanceDependency ************ @@ -123,8 +140,8 @@ EDependencyNodeType CScriptInstanceDependency::Type() const void CScriptInstanceDependency::Serialize(IArchive& rArc) { - rArc << SERIAL("ObjectType", mObjectType) - << SERIAL_ABSTRACT_CONTAINER("Properties", mChildren, "Property", &gDependencyNodeFactory); + rArc << SerialParameter("ObjectType", mObjectType) + << SerialParameter("Properties", mChildren); } // Static @@ -132,28 +149,32 @@ CScriptInstanceDependency* CScriptInstanceDependency::BuildTree(CScriptObject *p { CScriptInstanceDependency *pInst = new CScriptInstanceDependency(); pInst->mObjectType = pInstance->ObjectTypeID(); - ParseStructDependencies(pInst, pInstance->Properties()); + ParseStructDependencies(pInst, pInstance, pInstance->Template()->Properties()); return pInst; } -void CScriptInstanceDependency::ParseStructDependencies(CScriptInstanceDependency *pInst, CPropertyStruct *pStruct) +void CScriptInstanceDependency::ParseStructDependencies(CScriptInstanceDependency* pInst, CScriptObject* pInstance, CStructProperty *pStruct) { // Recursive function for parsing script dependencies and loading them into the script instance dependency - for (u32 iProp = 0; iProp < pStruct->Count(); iProp++) + void* pPropertyData = pInstance->PropertyData(); + + for (u32 PropertyIdx = 0; PropertyIdx < pStruct->NumChildren(); PropertyIdx++) { - IProperty *pProp = pStruct->PropertyByIndex(iProp); + IProperty *pProp = pStruct->ChildByIndex(PropertyIdx); EPropertyType Type = pProp->Type(); - if (Type == eStructProperty || Type == eArrayProperty) - ParseStructDependencies(pInst, static_cast(pProp)); + // Technically we aren't parsing array children, but it's not really worth refactoring this function + // to support it when there aren't any array properties that contain any asset references anyway... + if (Type == EPropertyType::Struct) + ParseStructDependencies(pInst, pInstance, TPropCast(pProp)); - else if (Type == eSoundProperty) + else if (Type == EPropertyType::Sound) { - u32 SoundID = static_cast(pProp)->Get(); + u32 SoundID = TPropCast(pProp)->Value(pPropertyData); if (SoundID != -1) { - CGameProject *pProj = pStruct->Instance()->Area()->Entry()->Project(); + CGameProject *pProj = pInstance->Area()->Entry()->Project(); SSoundInfo Info = pProj->AudioManager()->GetSoundInfo(SoundID); if (Info.pAudioGroup) @@ -164,9 +185,9 @@ void CScriptInstanceDependency::ParseStructDependencies(CScriptInstanceDependenc } } - else if (Type == eAssetProperty) + else if (Type == EPropertyType::Asset) { - CAssetID ID = static_cast(pProp)->Get(); + CAssetID ID = TPropCast(pProp)->Value(pPropertyData); if (ID.IsValid()) { @@ -175,16 +196,15 @@ void CScriptInstanceDependency::ParseStructDependencies(CScriptInstanceDependenc } } - else if (Type == eCharacterProperty) + else if (Type == EPropertyType::AnimationSet) { - TCharacterProperty *pChar = static_cast(pProp); - CAnimationParameters Params = pChar->Get(); + CAnimationParameters Params = TPropCast(pProp)->Value(pPropertyData); CAssetID ID = Params.ID(); if (ID.IsValid()) { // Character sets are removed starting in MP3, so we only need char property dependencies in Echoes and earlier - if (pStruct->Instance()->Area()->Game() <= eEchoes) + if (pStruct->Game() <= EGame::Echoes) { CCharPropertyDependency *pDep = new CCharPropertyDependency(pProp->IDString(true), ID, Params.CharacterIndex()); pInst->mChildren.push_back(pDep); @@ -207,8 +227,8 @@ EDependencyNodeType CSetCharacterDependency::Type() const void CSetCharacterDependency::Serialize(IArchive& rArc) { - rArc << SERIAL("CharSetIndex", mCharSetIndex) - << SERIAL_ABSTRACT_CONTAINER("Children", mChildren, "Child", &gDependencyNodeFactory); + rArc << SerialParameter("CharSetIndex", mCharSetIndex) + << SerialParameter("Children", mChildren); } CSetCharacterDependency* CSetCharacterDependency::BuildTree(const SSetCharacter& rkChar) @@ -252,8 +272,8 @@ EDependencyNodeType CSetAnimationDependency::Type() const void CSetAnimationDependency::Serialize(IArchive& rArc) { - rArc << SERIAL_CONTAINER("CharacterIndices", mCharacterIndices, "Index") - << SERIAL_ABSTRACT_CONTAINER("Children", mChildren, "Child", &gDependencyNodeFactory); + rArc << SerialParameter("CharacterIndices", mCharacterIndices) + << SerialParameter("Children", mChildren); } CSetAnimationDependency* CSetAnimationDependency::BuildTree(const CAnimSet *pkOwnerSet, u32 AnimIndex) @@ -279,7 +299,7 @@ CSetAnimationDependency* CSetAnimationDependency::BuildTree(const CAnimSet *pkOw const CAnimPrimitive& rkPrim = *Iter; pTree->AddDependency(rkPrim.Animation()); - if (pkOwnerSet->Game() >= eEchoesDemo) + if (pkOwnerSet->Game() >= EGame::EchoesDemo) { CAnimEventData *pEvents = pkOwnerSet->AnimationEventData(rkPrim.ID()); ASSERT(pEvents && !pEvents->Entry()); @@ -299,7 +319,7 @@ EDependencyNodeType CAnimEventDependency::Type() const void CAnimEventDependency::Serialize(IArchive& rArc) { CResourceDependency::Serialize(rArc); - rArc << SERIAL("CharacterIndex", mCharIndex); + rArc << SerialParameter("CharacterIndex", mCharIndex); } // ************ CAreaDependencyTree ************ @@ -311,7 +331,7 @@ EDependencyNodeType CAreaDependencyTree::Type() const void CAreaDependencyTree::Serialize(IArchive& rArc) { CDependencyTree::Serialize(rArc); - rArc << SERIAL_CONTAINER("LayerOffsets", mLayerOffsets, "Offset"); + rArc << SerialParameter("LayerOffsets", mLayerOffsets); } void CAreaDependencyTree::AddScriptLayer(CScriptLayer *pLayer, const std::vector& rkExtraDeps) @@ -326,7 +346,7 @@ void CAreaDependencyTree::AddScriptLayer(CScriptLayer *pLayer, const std::vector ASSERT(pTree != nullptr); // Note: MP2+ need to track all instances (not just instances with dependencies) to be able to build the layer module list - if (pTree->NumChildren() > 0 || pLayer->Area()->Game() >= eEchoesDemo) + if (pTree->NumChildren() > 0 || pLayer->Area()->Game() >= EGame::EchoesDemo) { mChildren.push_back(pTree); pTree->GetAllResourceReferences(UsedIDs); @@ -341,7 +361,7 @@ void CAreaDependencyTree::AddScriptLayer(CScriptLayer *pLayer, const std::vector void CAreaDependencyTree::GetModuleDependencies(EGame Game, std::vector& rModuleDepsOut, std::vector& rModuleLayerOffsetsOut) const { - CMasterTemplate *pMaster = CMasterTemplate::MasterForGame(Game); + CGameTemplate *pGame = NGameList::GetGameTemplate(Game); // Output module list will be split per-script layer // The output offset list contains two offsets per layer - start index and end index @@ -367,7 +387,7 @@ void CAreaDependencyTree::GetModuleDependencies(EGame Game, std::vector if (UsedObjectTypes.find(ObjType) == UsedObjectTypes.end()) { // Get the module list for this object type and check whether any of them are new before adding them to the output list - CScriptTemplate *pTemplate = pMaster->TemplateByID(ObjType); + CScriptTemplate *pTemplate = pGame->TemplateByID(ObjType); const std::vector& rkModules = pTemplate->RequiredModules(); for (u32 iMod = 0; iMod < rkModules.size(); iMod++) diff --git a/src/Core/GameProject/CDependencyTree.h b/src/Core/GameProject/CDependencyTree.h index 2e3b8911..bbab2248 100644 --- a/src/Core/GameProject/CDependencyTree.h +++ b/src/Core/GameProject/CDependencyTree.h @@ -8,7 +8,7 @@ class CScriptLayer; class CScriptObject; -class CPropertyStruct; +class CStructProperty; class CAnimSet; class CAnimationParameters; struct SSetCharacter; @@ -40,6 +40,9 @@ public: virtual void GetAllResourceReferences(std::set& rOutSet) const; virtual bool HasDependency(const CAssetID& rkID) const; + // Serialization constructor + static IDependencyNode* ArchiveConstructor(EDependencyNodeType Type); + // Accessors inline u32 NumChildren() const { return mChildren.size(); } inline IDependencyNode* ChildByIndex(u32 Index) const { return mChildren[Index]; } @@ -142,7 +145,7 @@ public: // Static static CScriptInstanceDependency* BuildTree(CScriptObject *pInstance); protected: - static void ParseStructDependencies(CScriptInstanceDependency *pTree, CPropertyStruct *pStruct); + static void ParseStructDependencies(CScriptInstanceDependency *pTree, CScriptObject* pInstance, CStructProperty *pStruct); }; // Node representing an animset character. Indicates what index the character is within the animset. @@ -223,28 +226,5 @@ public: inline u32 ScriptLayerOffset(u32 LayerIdx) const { return mLayerOffsets[LayerIdx]; } }; -// Dependency node factory for serialization -class CDependencyNodeFactory -{ -public: - IDependencyNode* SpawnObject(u32 NodeID) - { - switch (NodeID) - { - case eDNT_DependencyTree: return new CDependencyTree; - case eDNT_ResourceDependency: return new CResourceDependency; - case eDNT_ScriptInstance: return new CScriptInstanceDependency; - case eDNT_ScriptProperty: return new CPropertyDependency; - case eDNT_CharacterProperty: return new CCharPropertyDependency; - case eDNT_SetCharacter: return new CSetCharacterDependency; - case eDNT_SetAnimation: return new CSetAnimationDependency; - case eDNT_AnimEvent: return new CAnimEventDependency; - case eDNT_Area: return new CAreaDependencyTree; - default: ASSERT(false); return nullptr; - } - } -}; -extern CDependencyNodeFactory gDependencyNodeFactory; - #endif // CDEPENDENCYTREE diff --git a/src/Core/GameProject/CGameExporter.cpp b/src/Core/GameProject/CGameExporter.cpp index bf7a2a36..a03d13c0 100644 --- a/src/Core/GameProject/CGameExporter.cpp +++ b/src/Core/GameProject/CGameExporter.cpp @@ -4,12 +4,14 @@ #include "CResourceStore.h" #include "Core/CompressionUtil.h" #include "Core/Resource/CWorld.h" -#include "Core/Resource/Script/CMasterTemplate.h" +#include "Core/Resource/Script/CGameTemplate.h" #include #include #include #include #include + +#include #include #define LOAD_PAKS 1 @@ -27,8 +29,8 @@ CGameExporter::CGameExporter(EDiscType DiscType, EGame Game, bool FrontEnd, EReg , mFrontEnd(FrontEnd) , mpProgress(nullptr) { - ASSERT(mGame != eUnknownGame); - ASSERT(mRegion != eRegion_Unknown); + ASSERT(mGame != EGame::Invalid); + ASSERT(mRegion != ERegion::Unknown); } bool CGameExporter::Export(nod::DiscBase *pDisc, const TString& rkOutputDir, CAssetNameMap *pNameMap, CGameInfo *pGameInfo, IProgressNotifier *pProgress) @@ -112,15 +114,15 @@ bool CGameExporter::ShouldExportDiscNode(const nod::Node *pkNode, bool IsInRoot) switch (mGame) { - case ePrime: + case EGame::Prime: return ( (mDiscType == eDT_WiiDeAsobu && pkNode->getName() == "MP1JPN") || (mDiscType == eDT_Trilogy && pkNode->getName() == "MP1") ); - case eEchoes: + case EGame::Echoes: return ( (mDiscType == eDT_WiiDeAsobu && pkNode->getName() == "MP2JPN") || (mDiscType == eDT_Trilogy && pkNode->getName() == "MP2") ); - case eCorruption: + case EGame::Corruption: return (mDiscType == eDT_Trilogy && pkNode->getName() == "MP3"); default: @@ -140,15 +142,15 @@ bool CGameExporter::ShouldExportDiscNode(const nod::Node *pkNode, bool IsInRoot) switch (mGame) { - case ePrime: + case EGame::Prime: return ( (mDiscType == eDT_WiiDeAsobu && pkNode->getName() == "rs5mp1jpn_p.dol") || (mDiscType == eDT_Trilogy && pkNode->getName() == "rs5mp1_p.dol") ); - case eEchoes: + case EGame::Echoes: return ( (mDiscType == eDT_WiiDeAsobu && pkNode->getName() == "rs5mp2jpn_p.dol") || (mDiscType == eDT_Trilogy && pkNode->getName() == "rs5mp2_p.dol") ); - case eCorruption: + case EGame::Corruption: return (mDiscType == eDT_Trilogy && pkNode->getName() == "rs5mp3_p.dol"); default: @@ -176,11 +178,11 @@ bool CGameExporter::ExtractDiscData() FileUtil::MakeDirectory(AbsDiscDir); // Extract disc filesystem - nod::Partition *pDataPartition = mpDisc->getDataPartition(); + nod::IPartition *pDataPartition = mpDisc->getDataPartition(); nod::ExtractionContext Context; Context.force = false; - Context.progressCB = [&](const std::string& rkDesc, float ProgressPercent) { - mpProgress->Report((int) (ProgressPercent * 10000), 10000, rkDesc); + Context.progressCB = [&](const std::string_view rkDesc, float ProgressPercent) { + mpProgress->Report((int) (ProgressPercent * 10000), 10000, rkDesc.data()); }; TString FilesDir = AbsDiscDir + "files/"; @@ -223,7 +225,7 @@ bool CGameExporter::ExtractDiscNodeRecursive(const nod::Node *pkNode, const TStr if (Iter->getKind() == nod::Node::Kind::File) { - TString FilePath = rkDir + Iter->getName(); + TString FilePath = rkDir + Iter->getName().data(); bool Success = Iter->extractToDirectory(*rkDir.ToUTF16(), rkContext); if (!Success) return false; @@ -237,7 +239,7 @@ bool CGameExporter::ExtractDiscNodeRecursive(const nod::Node *pkNode, const TStr else { - TString Subdir = rkDir + Iter->getName() + "/"; + TString Subdir = rkDir + Iter->getName().data() + "/"; bool Success = FileUtil::MakeDirectory(Subdir); if (!Success) return false; @@ -274,7 +276,7 @@ void CGameExporter::LoadPaks() CPackage *pPackage = new CPackage(mpProject, PakPath.GetFileName(false), RelPakPath); // MP1-MP3Proto - if (mGame < eCorruption) + if (mGame < EGame::Corruption) { u32 PakVersion = Pak.ReadLong(); Pak.Seek(0x4, SEEK_CUR); @@ -392,7 +394,7 @@ void CGameExporter::LoadPaks() mResourceMap[ResID] = SResourceInstance { PakPath, ResID, Type, Offset, Size, Compressed, false }; // Check for duplicate resources (unnecessary for DKCR) - if (mGame != eReturns) + if (mGame != EGame::DKCReturns) { if (Type == "MREA") { @@ -434,9 +436,9 @@ void CGameExporter::LoadResource(const SResourceInstance& rkResource, std::vecto // Handle compression if (rkResource.Compressed) { - bool ZlibCompressed = (mGame <= eEchoesDemo || mGame == eReturns); + bool ZlibCompressed = (mGame <= EGame::EchoesDemo || mGame == EGame::DKCReturns); - if (mGame <= eCorruptionProto) + if (mGame <= EGame::CorruptionProto) { std::vector CompressedData(rkResource.PakSize); @@ -682,14 +684,14 @@ TString CGameExporter::MakeWorldName(CAssetID WorldID) { // World names are basically formatted differently in every game... // MP1 demo - Remove ! from the beginning - if (mGame == ePrimeDemo) + if (mGame == EGame::PrimeDemo) { if (WorldName.StartsWith('!')) WorldName = WorldName.ChopFront(1); } // MP1 - Remove prefix characters and ending date - else if (mGame == ePrime) + else if (mGame == EGame::Prime) { WorldName = WorldName.ChopFront(2); bool StartedDate = false; @@ -708,7 +710,7 @@ TString CGameExporter::MakeWorldName(CAssetID WorldID) } // MP2 demo - Use text between the first and second underscores - else if (mGame == eEchoesDemo) + else if (mGame == EGame::EchoesDemo) { u32 UnderscoreA = WorldName.IndexOf('_'); u32 UnderscoreB = WorldName.IndexOf('_', UnderscoreA + 1); @@ -718,7 +720,7 @@ TString CGameExporter::MakeWorldName(CAssetID WorldID) } // MP2 - Remove text before first underscore and after last underscore, strip remaining underscores (except multiplayer maps, which have one underscore) - else if (mGame == eEchoes) + else if (mGame == EGame::Echoes) { u32 FirstUnderscore = WorldName.IndexOf('_'); u32 LastUnderscore = WorldName.LastIndexOf('_'); @@ -732,7 +734,7 @@ TString CGameExporter::MakeWorldName(CAssetID WorldID) } // MP3 proto - Remove ! from the beginning and all text after last underscore - else if (mGame == eCorruptionProto) + else if (mGame == EGame::CorruptionProto) { if (WorldName.StartsWith('!')) WorldName = WorldName.ChopFront(1); @@ -742,7 +744,7 @@ TString CGameExporter::MakeWorldName(CAssetID WorldID) } // MP3 - Remove text after last underscore - else if (mGame == eCorruption) + else if (mGame == EGame::Corruption) { u32 LastUnderscore = WorldName.LastIndexOf('_'); @@ -751,7 +753,7 @@ TString CGameExporter::MakeWorldName(CAssetID WorldID) } // DKCR - Remove text prior to first underscore - else if (mGame == eReturns) + else if (mGame == EGame::DKCReturns) { u32 Underscore = WorldName.IndexOf('_'); WorldName = WorldName.ChopFront(Underscore + 1); diff --git a/src/Core/GameProject/CGameInfo.cpp b/src/Core/GameProject/CGameInfo.cpp index 8a80b3e2..940eb541 100644 --- a/src/Core/GameProject/CGameInfo.cpp +++ b/src/Core/GameProject/CGameInfo.cpp @@ -24,7 +24,7 @@ bool CGameInfo::LoadGameInfo(TString Path) bool CGameInfo::SaveGameInfo(TString Path /*= ""*/) { - ASSERT(mGame != eUnknownGame); // can't save game info that was never loaded + ASSERT(mGame != EGame::Invalid); // can't save game info that was never loaded if (Path.IsEmpty()) Path = GetDefaultGameInfoPath(mGame); CXMLWriter Writer(Path, "GameInfo", 0, mGame); @@ -35,16 +35,16 @@ bool CGameInfo::SaveGameInfo(TString Path /*= ""*/) void CGameInfo::Serialize(IArchive& rArc) { // Validate game - if (rArc.IsReader() && mGame != eUnknownGame) + if (rArc.IsReader() && mGame != EGame::Invalid) { ASSERT(mGame == rArc.Game()); } // Serialize data - rArc << SERIAL_CONTAINER("GameBuilds", mBuilds, "Build"); + rArc << SerialParameter("GameBuilds", mBuilds); - if (mGame <= ePrime) - rArc << SERIAL_CONTAINER("AreaNameMap", mAreaNameMap, "AreaName"); + if (mGame <= EGame::Prime) + rArc << SerialParameter("AreaNameMap", mAreaNameMap); } TString CGameInfo::GetBuildName(float BuildVer, ERegion Region) const @@ -69,9 +69,9 @@ TString CGameInfo::GetAreaName(const CAssetID &rkID) const // ************ STATIC ************ EGame CGameInfo::RoundGame(EGame Game) { - if (Game == ePrimeDemo) return ePrime; - if (Game == eEchoesDemo) return eEchoes; - if (Game == eCorruptionProto) return eCorruption; + if (Game == EGame::PrimeDemo) return EGame::Prime; + if (Game == EGame::EchoesDemo) return EGame::Echoes; + if (Game == EGame::CorruptionProto) return EGame::Corruption; return Game; } @@ -79,7 +79,7 @@ TString CGameInfo::GetDefaultGameInfoPath(EGame Game) { Game = RoundGame(Game); - if (Game == eUnknownGame) + if (Game == EGame::Invalid) return ""; TString GameName = GetGameShortName(Game); diff --git a/src/Core/GameProject/CGameInfo.h b/src/Core/GameProject/CGameInfo.h index 16cab5bc..096862b3 100644 --- a/src/Core/GameProject/CGameInfo.h +++ b/src/Core/GameProject/CGameInfo.h @@ -11,6 +11,8 @@ const TString gkGameInfoDir = "../resources/gameinfo"; const TString gkGameInfoExt = "xml"; +//@todo merge this class into CGameTemplate +// they serve similar purposes, no real reason for them to be different classes class CGameInfo { EGame mGame; @@ -24,7 +26,9 @@ class CGameInfo void Serialize(IArchive& rArc) { - rArc << SERIAL_AUTO(Version) << SERIAL_AUTO(Region) << SERIAL_AUTO(Name); + rArc << SerialParameter("Version", Version) + << SerialParameter("Region", Region) + << SerialParameter("Name", Name); } }; std::vector mBuilds; @@ -34,7 +38,7 @@ class CGameInfo public: CGameInfo() - : mGame(eUnknownGame) + : mGame(EGame::Invalid) {} bool LoadGameInfo(EGame Game); diff --git a/src/Core/GameProject/CGameProject.cpp b/src/Core/GameProject/CGameProject.cpp index 2f0fa61c..ca54a52b 100644 --- a/src/Core/GameProject/CGameProject.cpp +++ b/src/Core/GameProject/CGameProject.cpp @@ -1,7 +1,6 @@ #include "CGameProject.h" #include "IUIRelay.h" -#include "Core/Resource/Factory/CTemplateLoader.h" -#include "Core/Resource/Script/CMasterTemplate.h" +#include "Core/Resource/Script/CGameTemplate.h" #include #include @@ -36,10 +35,10 @@ bool CGameProject::Save() bool CGameProject::Serialize(IArchive& rArc) { - rArc << SERIAL("Name", mProjectName) - << SERIAL("Region", mRegion) - << SERIAL("GameID", mGameID) - << SERIAL("BuildVersion", mBuildVersion); + rArc << SerialParameter("Name", mProjectName) + << SerialParameter("Region", mRegion) + << SerialParameter("GameID", mGameID) + << SerialParameter("BuildVersion", mBuildVersion); // Serialize package list std::vector PackageList; @@ -50,7 +49,7 @@ bool CGameProject::Serialize(IArchive& rArc) PackageList.push_back( mPackages[iPkg]->DefinitionPath(true) ); } - rArc << SERIAL_CONTAINER("Packages", PackageList, "Package"); + rArc << SerialParameter("Packages", PackageList); // Load packages if (rArc.IsReader()) @@ -82,9 +81,9 @@ bool CGameProject::BuildISO(const TString& rkIsoPath, IProgressNotifier *pProgre ASSERT( FileUtil::IsValidPath(rkIsoPath, false) ); ASSERT( !IsWiiDeAsobu() && !IsTrilogy() ); - auto ProgressCallback = [&](float ProgressPercent, const nod::SystemString& rkInfoString, size_t) + auto ProgressCallback = [&](float ProgressPercent, const nod::SystemStringView& rkInfoString, size_t) { - pProgress->Report((int) (ProgressPercent * 10000), 10000, TWideString(rkInfoString).ToUTF8()); + pProgress->Report((int) (ProgressPercent * 10000), 10000, TWideString(rkInfoString.data()).ToUTF8()); }; pProgress->SetTask(0, "Building " + rkIsoPath.GetFileName()); @@ -108,9 +107,9 @@ bool CGameProject::MergeISO(const TString& rkIsoPath, nod::DiscWii *pOriginalIso ASSERT( IsWiiDeAsobu() || IsTrilogy() ); ASSERT( pOriginalIso != nullptr ); - auto ProgressCallback = [&](float ProgressPercent, const nod::SystemString& rkInfoString, size_t) + auto ProgressCallback = [&](float ProgressPercent, const nod::SystemStringView& rkInfoString, size_t) { - pProgress->Report((int) (ProgressPercent * 10000), 10000, TWideString(rkInfoString).ToUTF8()); + pProgress->Report((int) (ProgressPercent * 10000), 10000, TWideString(rkInfoString.data()).ToUTF8()); }; pProgress->SetTask(0, "Building " + rkIsoPath.GetFileName()); @@ -266,7 +265,6 @@ CGameProject* CGameProject::LoadProject(const TString& rkProjPath, IProgressNoti return nullptr; } - CTemplateLoader::LoadGameTemplates(pProj->mGame); pProj->mProjFileLock.Lock(ProjPath); pProj->mpGameInfo->LoadGameInfo(pProj->mGame); pProj->mpAudioManager->LoadAssets(); diff --git a/src/Core/GameProject/CGameProject.h b/src/Core/GameProject/CGameProject.h index f7438420..6ea5001f 100644 --- a/src/Core/GameProject/CGameProject.h +++ b/src/Core/GameProject/CGameProject.h @@ -6,7 +6,7 @@ #include "CResourceStore.h" #include "Core/CAudioManager.h" #include "Core/IProgressNotifier.h" -#include "Core/Resource/Script/CMasterTemplate.h" +#include "Core/Resource/Script/CGameTemplate.h" #include #include #include @@ -45,8 +45,8 @@ class CGameProject // Private Constructor CGameProject() : mProjectName("Unnamed Project") - , mGame(eUnknownGame) - , mRegion(eRegion_Unknown) + , mGame(EGame::Invalid) + , mRegion(ERegion::Unknown) , mGameID("000000") , mBuildVersion(0.f) , mpResourceStore(nullptr) @@ -103,8 +103,8 @@ public: inline TString GameID() const { return mGameID; } inline float BuildVersion() const { return mBuildVersion; } inline bool IsWiiBuild() const { return mBuildVersion >= 3.f; } - inline bool IsTrilogy() const { return mGame <= eCorruption && mBuildVersion >= 3.593f; } - inline bool IsWiiDeAsobu() const { return mGame <= eCorruption && mBuildVersion >= 3.570f && mBuildVersion < 3.593f; } + inline bool IsTrilogy() const { return mGame <= EGame::Corruption && mBuildVersion >= 3.593f; } + inline bool IsWiiDeAsobu() const { return mGame <= EGame::Corruption && mBuildVersion >= 3.570f && mBuildVersion < 3.593f; } }; #endif // CGAMEPROJECT_H diff --git a/src/Core/GameProject/CPackage.cpp b/src/Core/GameProject/CPackage.cpp index 56e08013..d8a0f8ca 100644 --- a/src/Core/GameProject/CPackage.cpp +++ b/src/Core/GameProject/CPackage.cpp @@ -29,15 +29,15 @@ bool CPackage::Save() TString DefPath = DefinitionPath(false); FileUtil::MakeDirectory(DefPath.GetFileDirectory()); - CXMLWriter Writer(DefPath, "PackageDefinition", 0, mpProject ? mpProject->Game() : eUnknownGame); + CXMLWriter Writer(DefPath, "PackageDefinition", 0, mpProject ? mpProject->Game() : EGame::Invalid); Serialize(Writer); return Writer.Save(); } void CPackage::Serialize(IArchive& rArc) { - rArc << SERIAL("NeedsRecook", mNeedsRecook) - << SERIAL_CONTAINER("NamedResources", mResources, "Resource"); + rArc << SerialParameter("NeedsRecook", mNeedsRecook) + << SerialParameter("NamedResources", mResources); } void CPackage::AddResource(const TString& rkName, const CAssetID& rkID, const CFourCC& rkType) @@ -82,7 +82,7 @@ void CPackage::Cook(IProgressNotifier *pProgress) } EGame Game = mpProject->Game(); - u32 Alignment = (Game <= eCorruptionProto ? 0x20 : 0x40); + u32 Alignment = (Game <= EGame::CorruptionProto ? 0x20 : 0x40); u32 AlignmentMinusOne = Alignment - 1; u32 TocOffset = 0; @@ -92,7 +92,7 @@ void CPackage::Cook(IProgressNotifier *pProgress) u32 ResDataSize = 0; // Write MP1 pak header - if (Game <= eCorruptionProto) + if (Game <= EGame::CorruptionProto) { Pak.WriteLong(0x00030005); // Major/Minor Version Pak.WriteLong(0); // Unknown @@ -188,7 +188,7 @@ void CPackage::Cook(IProgressNotifier *pProgress) // Update table info SResourceTableInfo& rTableInfo = ResourceTableData[ResIdx]; rTableInfo.pEntry = pEntry; - rTableInfo.Offset = (Game <= eEchoes ? AssetOffset : AssetOffset - ResDataOffset); + rTableInfo.Offset = (Game <= EGame::Echoes ? AssetOffset : AssetOffset - ResDataOffset); // Load resource data CFileInStream CookedAsset(pEntry->CookedAssetPath(), IOUtil::eBigEndian); @@ -201,12 +201,12 @@ void CPackage::Cook(IProgressNotifier *pProgress) // Check if this asset should be compressed; there are a few resource types that are // always compressed, and some types that are compressed if they're over a certain size EResType Type = pEntry->ResourceType(); - u32 CompressThreshold = (Game <= eCorruptionProto ? 0x400 : 0x80); + u32 CompressThreshold = (Game <= EGame::CorruptionProto ? 0x400 : 0x80); bool ShouldAlwaysCompress = (Type == eTexture || Type == eModel || Type == eSkin || Type == eAnimSet || Type == eAnimation || Type == eFont); - if (Game >= eCorruption) + if (Game >= EGame::Corruption) { ShouldAlwaysCompress = ShouldAlwaysCompress || (Type == eCharacter || Type == eSourceAnimData || Type == eScan || @@ -234,7 +234,7 @@ void CPackage::Cook(IProgressNotifier *pProgress) std::vector CompressedData(ResourceData.size() * 2); bool Success = false; - if (Game <= eEchoesDemo || Game == eReturns) + if (Game <= EGame::EchoesDemo || Game == EGame::DKCReturns) Success = CompressionUtil::CompressZlib(ResourceData.data(), ResourceData.size(), CompressedData.data(), CompressedData.size(), CompressedSize); else Success = CompressionUtil::CompressLZOSegmented(ResourceData.data(), ResourceData.size(), CompressedData.data(), CompressedSize, false); @@ -242,7 +242,7 @@ void CPackage::Cook(IProgressNotifier *pProgress) // Make sure that the compressed data is actually smaller, accounting for padding + uncompressed size value if (Success) { - u32 CompressionHeaderSize = (Game <= eCorruptionProto ? 4 : 0x10); + u32 CompressionHeaderSize = (Game <= EGame::CorruptionProto ? 4 : 0x10); u32 PaddedUncompressedSize = (ResourceSize + AlignmentMinusOne) & ~AlignmentMinusOne; u32 PaddedCompressedSize = (CompressedSize + CompressionHeaderSize + AlignmentMinusOne) & ~AlignmentMinusOne; Success = (PaddedCompressedSize < PaddedUncompressedSize); @@ -252,7 +252,7 @@ void CPackage::Cook(IProgressNotifier *pProgress) if (Success) { // Write MP1/2 compressed asset - if (Game <= eCorruptionProto) + if (Game <= EGame::CorruptionProto) { Pak.WriteLong(ResourceSize); } @@ -292,7 +292,7 @@ void CPackage::Cook(IProgressNotifier *pProgress) else { // Write table of contents for real - if (Game >= eCorruption) + if (Game >= EGame::Corruption) { Pak.Seek(TocOffset, SEEK_SET); Pak.WriteLong(3); // Always 3 pak sections diff --git a/src/Core/GameProject/CPackage.h b/src/Core/GameProject/CPackage.h index 5884e144..20458f7a 100644 --- a/src/Core/GameProject/CPackage.h +++ b/src/Core/GameProject/CPackage.h @@ -17,7 +17,9 @@ struct SNamedResource void Serialize(IArchive& rArc) { - rArc << SERIAL_AUTO(Name) << SERIAL_AUTO(ID) << SERIAL_AUTO(Type); + rArc << SerialParameter("Name", Name) + << SerialParameter("ID", ID) + << SerialParameter("Type", Type); } }; diff --git a/src/Core/GameProject/CResourceEntry.cpp b/src/Core/GameProject/CResourceEntry.cpp index 2008515c..9d643ae6 100644 --- a/src/Core/GameProject/CResourceEntry.cpp +++ b/src/Core/GameProject/CResourceEntry.cpp @@ -127,9 +127,9 @@ void CResourceEntry::SerializeEntryInfo(IArchive& rArc, bool MetadataOnly) { CAssetID ID = mID; - rArc << SERIAL("AssetID", ID) - << SERIAL("Type", mpTypeInfo) - << SERIAL("Flags", mFlags); + rArc << SerialParameter("AssetID", ID) + << SerialParameter("Type", mpTypeInfo) + << SerialParameter("Flags", mFlags); // Don't allow the file to override our asset ID if we already have a valid one. if (rArc.IsReader() && !mID.IsValid()) @@ -140,9 +140,9 @@ void CResourceEntry::SerializeEntryInfo(IArchive& rArc, bool MetadataOnly) { TString Dir = (mpDirectory ? mpDirectory->FullPath() : ""); - rArc << SERIAL("Name", mName) - << SERIAL("Directory", Dir) - << SERIAL_ABSTRACT("Dependencies", mpDependencies, &gDependencyNodeFactory); + rArc << SerialParameter("Name", mName) + << SerialParameter("Directory", Dir) + << SerialParameter("Dependencies", mpDependencies); if (rArc.IsReader()) { @@ -618,7 +618,7 @@ CGameProject* CResourceEntry::Project() const EGame CResourceEntry::Game() const { - return mpStore ? mpStore->Game() : eUnknownGame; + return mpStore ? mpStore->Game() : EGame::Invalid; } void CResourceEntry::SetFlag(EResEntryFlag Flag) diff --git a/src/Core/GameProject/CResourceStore.cpp b/src/Core/GameProject/CResourceStore.cpp index f30f34cc..28fd041d 100644 --- a/src/Core/GameProject/CResourceStore.cpp +++ b/src/Core/GameProject/CResourceStore.cpp @@ -18,7 +18,7 @@ CResourceStore *gpEditorStore = nullptr; // Constructor for editor store CResourceStore::CResourceStore(const TString& rkDatabasePath) : mpProj(nullptr) - , mGame(ePrime) + , mGame(EGame::Prime) , mDatabaseCacheDirty(false) { mpDatabaseRoot = new CVirtualDirectory(this); @@ -29,7 +29,7 @@ CResourceStore::CResourceStore(const TString& rkDatabasePath) // Main constructor for game projects and game exporter CResourceStore::CResourceStore(CGameProject *pProject) : mpProj(nullptr) - , mGame(eUnknownGame) + , mGame(EGame::Invalid) , mpDatabaseRoot(nullptr) , mDatabaseCacheDirty(false) { @@ -62,17 +62,17 @@ void RecursiveGetListOfEmptyDirectories(CVirtualDirectory *pDir, TStringList& rO bool CResourceStore::SerializeDatabaseCache(IArchive& rArc) { // Serialize resources - if (rArc.ParamBegin("Resources")) + if (rArc.ParamBegin("Resources", 0)) { // Serialize resources u32 ResourceCount = mResourceEntries.size(); - rArc << SERIAL_AUTO(ResourceCount); + rArc << SerialParameter("ResourceCount", ResourceCount); if (rArc.IsReader()) { for (u32 ResIdx = 0; ResIdx < ResourceCount; ResIdx++) { - if (rArc.ParamBegin("Resource")) + if (rArc.ParamBegin("Resource", 0)) { CResourceEntry *pEntry = CResourceEntry::BuildFromArchive(this, rArc); ASSERT( FindEntry(pEntry->ID()) == nullptr ); @@ -85,7 +85,7 @@ bool CResourceStore::SerializeDatabaseCache(IArchive& rArc) { for (CResourceIterator It(this); It; ++It) { - if (rArc.ParamBegin("Resource")) + if (rArc.ParamBegin("Resource", 0)) { It->SerializeEntryInfo(rArc, false); rArc.ParamEnd(); @@ -101,7 +101,7 @@ bool CResourceStore::SerializeDatabaseCache(IArchive& rArc) if (!rArc.IsReader()) RecursiveGetListOfEmptyDirectories(mpDatabaseRoot, EmptyDirectories); - rArc << SERIAL_CONTAINER_AUTO(EmptyDirectories, "Directory"); + rArc << SerialParameter("EmptyDirectories", EmptyDirectories); if (rArc.IsReader()) { @@ -218,7 +218,7 @@ void CResourceStore::CloseProject() delete mpDatabaseRoot; mpDatabaseRoot = nullptr; mpProj = nullptr; - mGame = eUnknownGame; + mGame = EGame::Invalid; } CVirtualDirectory* CResourceStore::GetVirtualDirectory(const TString& rkPath, bool AllowCreate) @@ -622,5 +622,5 @@ bool CResourceStore::IsValidResourcePath(const TString& rkPath, const TString& r TString CResourceStore::StaticDefaultResourceDirPath(EGame Game) { - return (Game < eCorruptionProto ? "Uncategorized/" : "uncategorized/"); + return (Game < EGame::CorruptionProto ? "Uncategorized/" : "uncategorized/"); } diff --git a/src/Core/GameProject/DependencyListBuilders.cpp b/src/Core/GameProject/DependencyListBuilders.cpp index 4756e246..2ea79dac 100644 --- a/src/Core/GameProject/DependencyListBuilders.cpp +++ b/src/Core/GameProject/DependencyListBuilders.cpp @@ -3,7 +3,7 @@ // ************ CCharacterUsageMap ************ bool CCharacterUsageMap::IsCharacterUsed(const CAssetID& rkID, u32 CharacterIndex) const { - if (mpStore->Game() >= eCorruptionProto) return true; + if (mpStore->Game() >= EGame::CorruptionProto) return true; auto Find = mUsageMap.find(rkID); if (Find == mUsageMap.end()) return false; @@ -214,7 +214,7 @@ void CPackageDependencyListBuilder::AddDependency(CResourceEntry *pCurEntry, con // Is this entry valid? bool IsValid = ResType != eMidi && - (ResType != eAudioGroup || mGame >= eEchoesDemo) && + (ResType != eAudioGroup || mGame >= EGame::EchoesDemo) && (ResType != eWorld || !pCurEntry) && (ResType != eArea || !pCurEntry || pCurEntry->ResourceType() == eWorld); @@ -232,7 +232,7 @@ void CPackageDependencyListBuilder::AddDependency(CResourceEntry *pCurEntry, con // New area - toggle duplicates and find character usages if (ResType == eArea) { - if (mGame <= eEchoes) + if (mGame <= EGame::Echoes) mCharacterUsageMap.FindUsagesForArea(mpWorld, pEntry); mAreaUsedAssets.clear(); @@ -417,7 +417,7 @@ void CAreaDependencyListBuilder::BuildDependencyList(std::list& rAsset CPropertyDependency *pDep = static_cast(pInst->ChildByIndex(iDep)); // For MP3, exclude the CMDL/CSKR properties for the suit assets - only include default character assets - if (mGame == eCorruption && mIsPlayerActor) + if (mGame == EGame::Corruption && mIsPlayerActor) { TString PropID = pDep->PropertyID(); @@ -467,7 +467,7 @@ void CAreaDependencyListBuilder::AddDependency(const CAssetID& rkID, std::listResourceType(); // If this is an audio group, for MP1, save it in the output set. For MP2, treat audio groups as a normal dependency. - if (mGame <= ePrime && ResType == eAudioGroup) + if (mGame <= EGame::Prime && ResType == eAudioGroup) { if (pAudioGroupsOut) pAudioGroupsOut->insert(rkID); @@ -534,7 +534,7 @@ void CAreaDependencyListBuilder::EvaluateDependencyNode(CResourceEntry *pCurEntr else if (Type == eDNT_SetCharacter) { // Note: For MP1/2 PlayerActor, always treat as if Empty Suit is the only used one - const u32 kEmptySuitIndex = (mGame >= eEchoesDemo ? 3 : 5); + const u32 kEmptySuitIndex = (mGame >= EGame::EchoesDemo ? 3 : 5); CSetCharacterDependency *pChar = static_cast(pNode); u32 SetIndex = pChar->CharSetIndex(); diff --git a/src/Core/IProgressNotifier.h b/src/Core/IProgressNotifier.h index 1154cfe7..8eefeb15 100644 --- a/src/Core/IProgressNotifier.h +++ b/src/Core/IProgressNotifier.h @@ -30,7 +30,7 @@ public: mTaskCount = Math::Max(mTaskCount, TaskIndex + 1); } - void Report(int StepIndex, int StepCount, const TString& rkStepDesc) + void Report(int StepIndex, int StepCount, const TString& rkStepDesc = "") { ASSERT(mTaskCount >= 1); diff --git a/src/Core/IUIRelay.h b/src/Core/IUIRelay.h index 83f1375f..07f48777 100644 --- a/src/Core/IUIRelay.h +++ b/src/Core/IUIRelay.h @@ -6,6 +6,7 @@ class IUIRelay { public: + virtual void AsyncMessageBox(const TString& rkInfoBoxTitle, const TString& rkMessage) = 0; virtual bool AskYesNoQuestion(const TString& rkInfoBoxTitle, const TString& rkQuestion) = 0; }; extern IUIRelay *gpUIRelay; diff --git a/src/Core/OpenGL/CShaderGenerator.cpp b/src/Core/OpenGL/CShaderGenerator.cpp index c1ec257c..9487ba42 100644 --- a/src/Core/OpenGL/CShaderGenerator.cpp +++ b/src/Core/OpenGL/CShaderGenerator.cpp @@ -481,7 +481,7 @@ bool CShaderGenerator::CreatePixelShader(const CMaterial& rkMat) if (rkMat.Options() & CMaterial::ePunchthrough) { - if (rkMat.Version() < eCorruptionProto) + if (rkMat.Version() < EGame::CorruptionProto) { ShaderCode << " if (Prev.a <= 0.25) discard;\n" << " else Prev.a = 1.0;\n\n"; diff --git a/src/Core/Resource/Animation/CAnimSet.h b/src/Core/Resource/Animation/CAnimSet.h index adbf6d53..17f928a8 100644 --- a/src/Core/Resource/Animation/CAnimSet.h +++ b/src/Core/Resource/Animation/CAnimSet.h @@ -141,7 +141,7 @@ public: } // Animation dependencies - if (Game() <= eEchoes) + if (Game() <= EGame::Echoes) { for (u32 iAnim = 0; iAnim < mAnimations.size(); iAnim++) { @@ -151,7 +151,7 @@ public: } } - else if (Game() <= eCorruption) + else if (Game() <= EGame::Corruption) { const SSetCharacter& rkChar = mCharacters[0]; std::set PrimitiveSet; @@ -228,7 +228,7 @@ public: { ASSERT(Index >= 0 && Index < NumAnimations()); - if (Game() <= ePrime) + if (Game() <= EGame::Prime) { const CAnimPrimitive& rkPrim = mAnimPrimitives[Index]; return rkPrim.Animation() ? rkPrim.Animation()->EventData() : nullptr; diff --git a/src/Core/Resource/Animation/CAnimationParameters.cpp b/src/Core/Resource/Animation/CAnimationParameters.cpp index 31ee155c..5d61bc99 100644 --- a/src/Core/Resource/Animation/CAnimationParameters.cpp +++ b/src/Core/Resource/Animation/CAnimationParameters.cpp @@ -5,7 +5,7 @@ #include CAnimationParameters::CAnimationParameters() - : mGame(ePrime) + : mGame(EGame::Prime) , mCharIndex(0) , mAnimIndex(0) , mUnknown2(0) @@ -15,6 +15,7 @@ CAnimationParameters::CAnimationParameters() CAnimationParameters::CAnimationParameters(EGame Game) : mGame(Game) + , mCharacterID( CAssetID::InvalidID(Game) ) , mCharIndex(0) , mAnimIndex(0) , mUnknown2(0) @@ -29,20 +30,20 @@ CAnimationParameters::CAnimationParameters(IInputStream& rSCLY, EGame Game) , mUnknown2(0) , mUnknown3(0) { - if (Game <= eEchoes) + if (Game <= EGame::Echoes) { mCharacterID = CAssetID(rSCLY, Game); mCharIndex = rSCLY.ReadLong(); mAnimIndex = rSCLY.ReadLong(); } - else if (Game <= eCorruption) + else if (Game <= EGame::Corruption) { mCharacterID = CAssetID(rSCLY, Game); mAnimIndex = rSCLY.ReadLong(); } - else if (Game == eReturns) + else if (Game == EGame::DKCReturns) { u8 Flags = rSCLY.ReadByte(); @@ -79,7 +80,7 @@ CAnimationParameters::CAnimationParameters(IInputStream& rSCLY, EGame Game) void CAnimationParameters::Write(IOutputStream& rSCLY) { - if (mGame <= eEchoes) + if (mGame <= EGame::Echoes) { if (mCharacterID.IsValid()) { @@ -95,7 +96,7 @@ void CAnimationParameters::Write(IOutputStream& rSCLY) } } - else if (mGame <= eCorruption) + else if (mGame <= EGame::Corruption) { if (mCharacterID.IsValid()) { @@ -136,6 +137,25 @@ void CAnimationParameters::Write(IOutputStream& rSCLY) } } +void CAnimationParameters::Serialize(IArchive& rArc) +{ + if (rArc.IsReader()) + mGame = rArc.Game(); + + rArc << SerialParameter("AnimationSetAsset", mCharacterID); + + if (mGame <= EGame::Echoes) + rArc << SerialParameter("CharacterID", mCharIndex); + + rArc << SerialParameter("AnimationID", mAnimIndex); + + if (mGame >= EGame::DKCReturns) + { + rArc << SerialParameter("Unknown0", mUnknown2) + << SerialParameter("Unknown1", mUnknown3); + } +} + const SSetCharacter* CAnimationParameters::GetCurrentSetCharacter(s32 NodeIndex /*= -1*/) { CAnimSet *pSet = AnimSet(); diff --git a/src/Core/Resource/Animation/CAnimationParameters.h b/src/Core/Resource/Animation/CAnimationParameters.h index 102c95fc..f4687f5b 100644 --- a/src/Core/Resource/Animation/CAnimationParameters.h +++ b/src/Core/Resource/Animation/CAnimationParameters.h @@ -20,6 +20,7 @@ public: CAnimationParameters(EGame Game); CAnimationParameters(IInputStream& rSCLY, EGame Game); void Write(IOutputStream& rSCLY); + void Serialize(IArchive& rArc); const SSetCharacter* GetCurrentSetCharacter(s32 NodeIndex = -1); CModel* GetCurrentModel(s32 NodeIndex = -1); @@ -34,11 +35,36 @@ public: inline void SetCharIndex(u32 Index) { mCharIndex = Index; } inline void SetAnimIndex(u32 Index) { mAnimIndex = Index; } + inline void SetGame(EGame Game) + { + mGame = Game; + + if (!mCharacterID.IsValid()) + { + mCharacterID = CAssetID::InvalidID(mGame); + } + else + { + ASSERT( mCharacterID.Length() == CAssetID::GameIDLength(mGame) ); + } + } + u32 Unknown(u32 Index); void SetResource(const CAssetID& rkID); void SetUnknown(u32 Index, u32 Value); // Operators + inline CAnimationParameters& operator=(const CAnimationParameters& rkOther) + { + mGame = rkOther.mGame; + mCharacterID = rkOther.mCharacterID; + mCharIndex = rkOther.mCharIndex; + mAnimIndex = rkOther.mAnimIndex; + mUnknown2 = rkOther.mUnknown2; + mUnknown3 = rkOther.mUnknown3; + return *this; + } + inline bool operator==(const CAnimationParameters& rkOther) const { return ( (mGame == rkOther.mGame) && diff --git a/src/Core/Resource/Animation/IMetaTransition.cpp b/src/Core/Resource/Animation/IMetaTransition.cpp index 03ccc383..7be47e2e 100644 --- a/src/Core/Resource/Animation/IMetaTransition.cpp +++ b/src/Core/Resource/Animation/IMetaTransition.cpp @@ -56,7 +56,7 @@ CMetaTransTrans::CMetaTransTrans(EMetaTransitionType Type, IInputStream& rInput, ASSERT(Type == eMTT_Trans || Type == eMTT_PhaseTrans); mType = Type; - if (Game <= eEchoes) + if (Game <= EGame::Echoes) { mUnknownA = rInput.ReadFloat(); mUnknownB = rInput.ReadLong(); diff --git a/src/Core/Resource/Area/CGameArea.cpp b/src/Core/Resource/Area/CGameArea.cpp index b17dc2dc..edf4c6a8 100644 --- a/src/Core/Resource/Area/CGameArea.cpp +++ b/src/Core/Resource/Area/CGameArea.cpp @@ -42,7 +42,7 @@ CDependencyTree* CGameArea::BuildDependencyTree() const pTree->AddDependency(mPathID); - if (Game() >= eEchoesDemo) + if (Game() >= EGame::EchoesDemo) { pTree->AddDependency(mPortalAreaID); pTree->AddDependency(mpPoiToWorldMap); @@ -224,7 +224,7 @@ CScriptObject* CGameArea::SpawnInstance(CScriptTemplate *pTemplate, pInstance->SetRotation(rkRotation.ToEuler()); pInstance->SetScale(rkScale); pInstance->SetName(pTemplate->Name()); - if (pTemplate->Game() < eEchoesDemo) pInstance->SetActive(true); + if (pTemplate->Game() < EGame::EchoesDemo) pInstance->SetActive(true); pLayer->AddInstance(pInstance, SuggestedLayerIndex); mObjectMap[InstanceID] = pInstance; return pInstance; diff --git a/src/Core/Resource/CCollisionMaterial.cpp b/src/Core/Resource/CCollisionMaterial.cpp index f918d2b2..c7369489 100644 --- a/src/Core/Resource/CCollisionMaterial.cpp +++ b/src/Core/Resource/CCollisionMaterial.cpp @@ -21,7 +21,7 @@ ECollisionFlag CCollisionMaterial::SurfaceType(EGame Game) const const ECollisionFlag* pkFlagArray; u32 Num; - if (Game <= ePrime) + if (Game <= EGame::Prime) { pkFlagArray = skPrimeTypeHierarchy; Num = sizeof(skPrimeTypeHierarchy) / sizeof(ECollisionFlag); @@ -79,5 +79,5 @@ bool CCollisionMaterial::IsFloor() const bool CCollisionMaterial::IsUnstandable(EGame Game) const { - return HasFlag(eCF_JumpNotAllowed) || (Game >= eCorruptionProto && !HasFlag(eCF_Floor) && HasAnyFlags(eCF_Wall | eCF_Ceiling)); + return HasFlag(eCF_JumpNotAllowed) || (Game >= EGame::CorruptionProto && !HasFlag(eCF_Floor) && HasAnyFlags(eCF_Wall | eCF_Ceiling)); } diff --git a/src/Core/Resource/CLight.cpp b/src/Core/Resource/CLight.cpp index f81b4471..6ca99f67 100644 --- a/src/Core/Resource/CLight.cpp +++ b/src/Core/Resource/CLight.cpp @@ -1,5 +1,6 @@ #include "CLight.h" #include "Core/Render/CGraphics.h" +#include #include #include @@ -127,6 +128,52 @@ void CLight::SetAngleAtten(float AngleCoefA, float AngleCoefB, float AngleCoefC) mAngleAttenCoefficients.Z = AngleCoefC; } +CStructProperty* CLight::GetProperties() const +{ + //@todo MP1 properties only + //@todo we cannot display full properties because a lot of them are discarded on load + static CStructProperty* pProperties = nullptr; + + if (!pProperties) + { + pProperties = (CStructProperty*) IProperty::CreateIntrinsic(EPropertyType::Struct, + EGame::Prime, + 0, + "Light"); + + CChoiceProperty* pLightType = (CChoiceProperty*) IProperty::CreateIntrinsic(EPropertyType::Choice, + pProperties, + MEMBER_OFFSET(CLight, mType), + "LightType"); + pLightType->AddValue("LocalAmbient", eLocalAmbient); + pLightType->AddValue("Directional", eDirectional); + pLightType->AddValue("Spot", eSpot); + pLightType->AddValue("Custom", eCustom); + + IProperty::CreateIntrinsic(EPropertyType::Color, + pProperties, + MEMBER_OFFSET(CLight, mColor), + "Color"); + + IProperty::CreateIntrinsic(EPropertyType::Vector, + pProperties, + MEMBER_OFFSET(CLight, mPosition), + "Position"); + + IProperty::CreateIntrinsic(EPropertyType::Vector, + pProperties, + MEMBER_OFFSET(CLight, mDirection), + "Direction"); + + IProperty::CreateIntrinsic(EPropertyType::Float, + pProperties, + MEMBER_OFFSET(CLight, mSpotCutoff), + "SpotCutoff"); + } + + return pProperties; +} + // ************ OTHER ************ void CLight::Load() const { diff --git a/src/Core/Resource/CLight.h b/src/Core/Resource/CLight.h index eb8511c4..83b1877c 100644 --- a/src/Core/Resource/CLight.h +++ b/src/Core/Resource/CLight.h @@ -1,6 +1,7 @@ #ifndef CLIGHT_H #define CLIGHT_H +#include "Core/Resource/Script/Property/Properties.h" #include #include #include @@ -62,6 +63,8 @@ public: void SetDistAtten(float DistCoefA, float DistCoefB, float DistCoefC); void SetAngleAtten(float AngleCoefA, float AngleCoefB, float AngleCoefC); + CStructProperty* GetProperties() const; + // Other void Load() const; diff --git a/src/Core/Resource/CMaterial.cpp b/src/Core/Resource/CMaterial.cpp index 61c412b7..d3a9e5bc 100644 --- a/src/Core/Resource/CMaterial.cpp +++ b/src/Core/Resource/CMaterial.cpp @@ -4,7 +4,7 @@ #include "Core/Render/CRenderer.h" #include "Core/OpenGL/GLCommon.h" #include "Core/OpenGL/CShaderGenerator.h" -#include +#include #include #include @@ -18,7 +18,7 @@ CMaterial::CMaterial() , mShaderStatus(eNoShader) , mRecalcHash(true) , mEnableBloom(false) - , mVersion(eUnknownGame) + , mVersion(EGame::Invalid) , mOptions(eNoSettings) , mVtxDesc(eNoAttributes) , mBlendSrcFac(GL_ONE) @@ -34,7 +34,7 @@ CMaterial::CMaterial(EGame Version, FVertexDescription VtxDesc) : mpShader(nullptr) , mShaderStatus(eNoShader) , mRecalcHash(true) - , mEnableBloom(Version == eCorruption) + , mEnableBloom(Version == EGame::Corruption) , mVersion(Version) , mOptions(eDepthWrite) , mVtxDesc(VtxDesc) @@ -48,7 +48,7 @@ CMaterial::CMaterial(EGame Version, FVertexDescription VtxDesc) mpShader = nullptr; mShaderStatus = eNoShader; mRecalcHash = true; - mEnableBloom = (Version == eCorruption); + mEnableBloom = (Version == EGame::Corruption); mVersion = Version; mOptions = eDepthWrite; mVtxDesc = VtxDesc; @@ -243,9 +243,9 @@ u64 CMaterial::HashParameters() { if (mRecalcHash) { - CHashFNV1A Hash(CHashFNV1A::e64Bit); + CFNV1A Hash(CFNV1A::e64Bit); - Hash.HashLong(mVersion); + Hash.HashLong((int) mVersion); Hash.HashLong(mOptions); Hash.HashLong(mVtxDesc); Hash.HashData(mKonstColors, sizeof(CColor) * 4); diff --git a/src/Core/Resource/CMaterial.h b/src/Core/Resource/CMaterial.h index a8498b75..e87bf056 100644 --- a/src/Core/Resource/CMaterial.h +++ b/src/Core/Resource/CMaterial.h @@ -112,7 +112,7 @@ public: inline void SetOptions(FMaterialOptions Options) { mOptions = Options; Update(); } inline void SetVertexDescription(FVertexDescription Desc) { mVtxDesc = Desc; Update(); } inline void SetBlendMode(GLenum SrcFac, GLenum DstFac) { mBlendSrcFac = SrcFac; mBlendDstFac = DstFac; mRecalcHash = true; } - inline void SetKonst(CColor& Konst, u32 KIndex) { mKonstColors[KIndex] = Konst; Update(); } + inline void SetKonst(const CColor& Konst, u32 KIndex) { mKonstColors[KIndex] = Konst; Update(); } inline void SetIndTexture(CTexture *pTex) { mpIndirectTexture = pTex; } inline void SetLightingEnabled(bool Enabled) { mLightingEnabled = Enabled; Update(); } diff --git a/src/Core/Resource/CMaterialPass.cpp b/src/Core/Resource/CMaterialPass.cpp index 1bb49920..319ee936 100644 --- a/src/Core/Resource/CMaterialPass.cpp +++ b/src/Core/Resource/CMaterialPass.cpp @@ -58,7 +58,7 @@ CMaterialPass* CMaterialPass::Clone(CMaterial *pParent) return pOut; } -void CMaterialPass::HashParameters(CHashFNV1A& rHash) +void CMaterialPass::HashParameters(CFNV1A& rHash) { if (mEnabled) { diff --git a/src/Core/Resource/CMaterialPass.h b/src/Core/Resource/CMaterialPass.h index 3dcd1ef2..5fe98288 100644 --- a/src/Core/Resource/CMaterialPass.h +++ b/src/Core/Resource/CMaterialPass.h @@ -6,7 +6,7 @@ #include "ETevEnums.h" #include "Core/Render/FRenderOptions.h" #include -#include +#include class CMaterial; @@ -45,7 +45,7 @@ public: CMaterialPass(CMaterial *pParent); ~CMaterialPass(); CMaterialPass* Clone(CMaterial *pParent); - void HashParameters(CHashFNV1A& rHash); + void HashParameters(CFNV1A& rHash); void LoadTexture(u32 PassIndex); void SetAnimCurrent(FRenderOptions Options, u32 PassIndex); diff --git a/src/Core/Resource/CResTypeFilter.h b/src/Core/Resource/CResTypeFilter.h index 068313b4..d1168ff0 100644 --- a/src/Core/Resource/CResTypeFilter.h +++ b/src/Core/Resource/CResTypeFilter.h @@ -11,7 +11,7 @@ class CResTypeFilter std::set mAcceptedTypes; public: - CResTypeFilter() { } + CResTypeFilter() : mGame(EGame::Invalid) { } CResTypeFilter(EGame Game, const TString& rkTypeList) { FromString(Game, rkTypeList); } void SetAcceptedTypes(EGame Game, const TStringList& rkTypes) @@ -47,6 +47,12 @@ public: SetAcceptedTypes(Game, rkString.Split(",")); } + void Serialize(IArchive& rArc) + { + if (rArc.IsReader()) mGame = rArc.Game(); + rArc << SerialParameter("AcceptedTypes", mAcceptedTypes, SH_Proxy); + } + inline bool Accepts(EResType Type) const { return mAcceptedTypes.find(Type) != mAcceptedTypes.end(); diff --git a/src/Core/Resource/CResTypeInfo.cpp b/src/Core/Resource/CResTypeInfo.cpp index eec6dcbe..8b6c081a 100644 --- a/src/Core/Resource/CResTypeInfo.cpp +++ b/src/Core/Resource/CResTypeInfo.cpp @@ -4,9 +4,10 @@ std::unordered_map CResTypeInfo::smTypeMap; -CResTypeInfo::CResTypeInfo(EResType Type, const TString& rkTypeName) +CResTypeInfo::CResTypeInfo(EResType Type, const TString& rkTypeName, const TString& rkRetroExtension) : mType(Type) , mTypeName(rkTypeName) + , mRetroExtension(rkRetroExtension) , mCanBeSerialized(false) , mCanHaveDependencies(true) { @@ -16,12 +17,6 @@ CResTypeInfo::CResTypeInfo(EResType Type, const TString& rkTypeName) smTypeMap[Type] = this; } -CResTypeInfo::~CResTypeInfo() -{ - // shouldn't happen - we want to just create these at launch and keep them around forever - ASSERT(false); -} - bool CResTypeInfo::IsInGame(EGame Game) const { for (u32 iGame = 0; iGame < mCookedExtensions.size(); iGame++) @@ -35,8 +30,8 @@ bool CResTypeInfo::IsInGame(EGame Game) const CFourCC CResTypeInfo::CookedExtension(EGame Game) const { // Default to MP1 - if (Game == eUnknownGame) - Game = ePrime; + if (Game == EGame::Invalid) + Game = EGame::Prime; for (u32 iGame = 0; iGame < mCookedExtensions.size(); iGame++) { @@ -63,7 +58,7 @@ CResTypeInfo* CResTypeInfo::TypeForCookedExtension(EGame Game, CFourCC Ext) { // Extensions can vary between games, but we're not likely to be calling this function for different games very often. // So, to speed things up a little, cache the lookup results in a map. - static EGame sCachedGame = eUnknownGame; + static EGame sCachedGame = EGame::Invalid; static std::map sCachedTypeMap; Ext = Ext.ToUpper(); @@ -113,7 +108,7 @@ void Serialize(IArchive& rArc, CResTypeInfo*& rpType) Ext = rpType->CookedExtension(rArc.Game()); } - rArc.SerializePrimitive(Ext); + rArc.SerializePrimitive(Ext, 0); if (rArc.IsReader()) { @@ -122,6 +117,27 @@ void Serialize(IArchive& rArc, CResTypeInfo*& rpType) } } +void Serialize(IArchive& rArc, EResType& rType) +{ + CFourCC Extension; + + if (rArc.IsWriter()) + { + CResTypeInfo* pTypeInfo = CResTypeInfo::FindTypeInfo(rType); + ASSERT(pTypeInfo != nullptr); + Extension = pTypeInfo->CookedExtension(rArc.Game()); + } + + rArc.SerializePrimitive(Extension, 0); + + if (rArc.IsReader()) + { + CResTypeInfo* pTypeInfo = CResTypeInfo::TypeForCookedExtension(rArc.Game(), Extension); + ASSERT(pTypeInfo != nullptr); + rType = pTypeInfo->Type(); + } +} + // ************ CREATION ************ CResTypeInfo::CResTypeInfoFactory CResTypeInfo::smTypeInfoFactory; @@ -132,16 +148,16 @@ CResTypeInfo::CResTypeInfoFactory::CResTypeInfoFactory() void CResTypeInfo::CResTypeInfoFactory::AddExtension(CResTypeInfo *pType, CFourCC Ext, EGame FirstGame, EGame LastGame) { - ASSERT(FirstGame >= ePrimeDemo && LastGame <= eReturns && FirstGame <= LastGame); - ASSERT(FirstGame != eUnknownGame && LastGame != eUnknownGame); + ASSERT(FirstGame >= EGame::PrimeDemo && LastGame <= EGame::DKCReturns && FirstGame <= LastGame); + ASSERT(FirstGame != EGame::Invalid && LastGame != EGame::Invalid); - for (int iGame = FirstGame; iGame <= LastGame; iGame++) + for (int GameIdx = (int) FirstGame; GameIdx <= (int) LastGame; GameIdx++) { #if !PUBLIC_RELEASE - ASSERT(!pType->IsInGame((EGame) iGame)); + ASSERT(!pType->IsInGame((EGame) GameIdx)); #endif - CResTypeInfo::SGameExtension Info { (EGame) iGame, Ext }; + CResTypeInfo::SGameExtension Info { (EGame) GameIdx, Ext }; pType->mCookedExtensions.push_back(Info); } @@ -153,236 +169,236 @@ void CResTypeInfo::CResTypeInfoFactory::AddExtension(CResTypeInfo *pType, CFourC void CResTypeInfo::CResTypeInfoFactory::InitTypes() { { - CResTypeInfo *pType = new CResTypeInfo(eAnimation, "Animation"); - AddExtension(pType, "ANIM", ePrimeDemo, eReturns); + CResTypeInfo *pType = new CResTypeInfo(eAnimation, "Animation", "ani"); + AddExtension(pType, "ANIM", EGame::PrimeDemo, EGame::DKCReturns); } { - CResTypeInfo *pType = new CResTypeInfo(eAnimCollisionPrimData, "Animation Collision Primitive Data"); - AddExtension(pType, "CPRM", eReturns, eReturns); + CResTypeInfo *pType = new CResTypeInfo(eAnimCollisionPrimData, "Animation Collision Primitive Data", "?"); + AddExtension(pType, "CPRM", EGame::DKCReturns, EGame::DKCReturns); pType->mCanHaveDependencies = false; } { - CResTypeInfo *pType = new CResTypeInfo(eAnimEventData, "Animation Event Data"); - AddExtension(pType, "EVNT", ePrimeDemo, ePrime); + CResTypeInfo *pType = new CResTypeInfo(eAnimEventData, "Animation Event Data", "evnt"); + AddExtension(pType, "EVNT", EGame::PrimeDemo, EGame::Prime); } { - CResTypeInfo *pType = new CResTypeInfo(eAnimSet, "Animation Character Set"); - AddExtension(pType, "ANCS", ePrimeDemo, eEchoes); + CResTypeInfo *pType = new CResTypeInfo(eAnimSet, "Animation Character Set", "acs"); + AddExtension(pType, "ANCS", EGame::PrimeDemo, EGame::Echoes); } { - CResTypeInfo *pType = new CResTypeInfo(eArea, "Area"); - AddExtension(pType, "MREA", ePrimeDemo, eReturns); + CResTypeInfo *pType = new CResTypeInfo(eArea, "Area", "mrea"); + AddExtension(pType, "MREA", EGame::PrimeDemo, EGame::DKCReturns); } { - CResTypeInfo *pType = new CResTypeInfo(eAudioAmplitudeData, "Audio Amplitude Data"); - AddExtension(pType, "CAAD", eCorruption, eCorruption); + CResTypeInfo *pType = new CResTypeInfo(eAudioAmplitudeData, "Audio Amplitude Data", "?"); + AddExtension(pType, "CAAD", EGame::Corruption, EGame::Corruption); } { - CResTypeInfo *pType = new CResTypeInfo(eAudioGroup, "Audio Group"); - AddExtension(pType, "AGSC", ePrimeDemo, eEchoes); + CResTypeInfo *pType = new CResTypeInfo(eAudioGroup, "Audio Group", "agsc"); + AddExtension(pType, "AGSC", EGame::PrimeDemo, EGame::Echoes); pType->mCanHaveDependencies = false; } { - CResTypeInfo *pType = new CResTypeInfo(eAudioMacro, "Audio Macro"); - AddExtension(pType, "CAUD", eCorruptionProto, eReturns); + CResTypeInfo *pType = new CResTypeInfo(eAudioMacro, "Audio Macro", "caud"); + AddExtension(pType, "CAUD", EGame::CorruptionProto, EGame::DKCReturns); } { - CResTypeInfo *pType = new CResTypeInfo(eAudioSample, "Audio Sample"); - AddExtension(pType, "CSMP", eCorruptionProto, eReturns); + CResTypeInfo *pType = new CResTypeInfo(eAudioSample, "Audio Sample", "csmp"); + AddExtension(pType, "CSMP", EGame::CorruptionProto, EGame::DKCReturns); pType->mCanHaveDependencies = false; } { - CResTypeInfo *pType = new CResTypeInfo(eAudioLookupTable, "Audio Lookup Table"); - AddExtension(pType, "ATBL", ePrimeDemo, eCorruption); + CResTypeInfo *pType = new CResTypeInfo(eAudioLookupTable, "Audio Lookup Table", "atbl"); + AddExtension(pType, "ATBL", EGame::PrimeDemo, EGame::Corruption); pType->mCanHaveDependencies = false; } { - CResTypeInfo *pType = new CResTypeInfo(eBinaryData, "Generic Data"); - AddExtension(pType, "DUMB", ePrimeDemo, eCorruption); + CResTypeInfo *pType = new CResTypeInfo(eBinaryData, "Generic Data", "dat"); + AddExtension(pType, "DUMB", EGame::PrimeDemo, EGame::Corruption); } { - CResTypeInfo *pType = new CResTypeInfo(eBurstFireData, "Burst Fire Data"); - AddExtension(pType, "BFRC", eCorruptionProto, eCorruption); + CResTypeInfo *pType = new CResTypeInfo(eBurstFireData, "Burst Fire Data", "bfre.bfrc"); + AddExtension(pType, "BFRC", EGame::CorruptionProto, EGame::Corruption); } { - CResTypeInfo *pType = new CResTypeInfo(eCharacter, "Character"); - AddExtension(pType, "CHAR", eCorruptionProto, eReturns); + CResTypeInfo *pType = new CResTypeInfo(eCharacter, "Character", "char"); + AddExtension(pType, "CHAR", EGame::CorruptionProto, EGame::DKCReturns); } { - CResTypeInfo *pType = new CResTypeInfo(eDependencyGroup, "Dependency Group"); - AddExtension(pType, "DGRP", ePrimeDemo, eReturns); + CResTypeInfo *pType = new CResTypeInfo(eDependencyGroup, "Dependency Group", "?"); + AddExtension(pType, "DGRP", EGame::PrimeDemo, EGame::DKCReturns); } { - CResTypeInfo *pType = new CResTypeInfo(eDynamicCollision, "Dynamic Collision"); - AddExtension(pType, "DCLN", ePrimeDemo, eReturns); + CResTypeInfo *pType = new CResTypeInfo(eDynamicCollision, "Dynamic Collision", "dcln"); + AddExtension(pType, "DCLN", EGame::PrimeDemo, EGame::DKCReturns); pType->mCanHaveDependencies = false; } { - CResTypeInfo *pType = new CResTypeInfo(eFont, "Font"); - AddExtension(pType, "FONT", ePrimeDemo, eReturns); + CResTypeInfo *pType = new CResTypeInfo(eFont, "Font", "rpff"); + AddExtension(pType, "FONT", EGame::PrimeDemo, EGame::DKCReturns); } { - CResTypeInfo *pType = new CResTypeInfo(eGuiFrame, "Gui Frame"); - AddExtension(pType, "FRME", ePrimeDemo, eReturns); + CResTypeInfo *pType = new CResTypeInfo(eGuiFrame, "Gui Frame", "frme"); + AddExtension(pType, "FRME", EGame::PrimeDemo, EGame::DKCReturns); } { - CResTypeInfo *pType = new CResTypeInfo(eGuiKeyFrame, "Gui Keyframe"); - AddExtension(pType, "KFAM", ePrimeDemo, ePrimeDemo); + CResTypeInfo *pType = new CResTypeInfo(eGuiKeyFrame, "Gui Keyframe", "?"); + AddExtension(pType, "KFAM", EGame::PrimeDemo, EGame::PrimeDemo); } { - CResTypeInfo *pType = new CResTypeInfo(eHintSystem, "Hint System Data"); - AddExtension(pType, "HINT", ePrime, eCorruption); + CResTypeInfo *pType = new CResTypeInfo(eHintSystem, "Hint System Data", "hint"); + AddExtension(pType, "HINT", EGame::Prime, EGame::Corruption); } { - CResTypeInfo *pType = new CResTypeInfo(eMapArea, "Area Map"); - AddExtension(pType, "MAPA", ePrimeDemo, eCorruption); + CResTypeInfo *pType = new CResTypeInfo(eMapArea, "Area Map", "mapa"); + AddExtension(pType, "MAPA", EGame::PrimeDemo, EGame::Corruption); } { - CResTypeInfo *pType = new CResTypeInfo(eMapWorld, "World Map"); - AddExtension(pType, "MAPW", ePrimeDemo, eCorruption); + CResTypeInfo *pType = new CResTypeInfo(eMapWorld, "World Map", "mapw"); + AddExtension(pType, "MAPW", EGame::PrimeDemo, EGame::Corruption); } { - CResTypeInfo *pType = new CResTypeInfo(eMapUniverse, "Universe Map"); - AddExtension(pType, "MAPU", ePrimeDemo, eEchoes); + CResTypeInfo *pType = new CResTypeInfo(eMapUniverse, "Universe Map", "mapu"); + AddExtension(pType, "MAPU", EGame::PrimeDemo, EGame::Echoes); } { - CResTypeInfo *pType = new CResTypeInfo(eMidi, "MIDI"); - AddExtension(pType, "CSNG", ePrimeDemo, eEchoes); + CResTypeInfo *pType = new CResTypeInfo(eMidi, "MIDI", "?"); + AddExtension(pType, "CSNG", EGame::PrimeDemo, EGame::Echoes); } { - CResTypeInfo *pType = new CResTypeInfo(eModel, "Model"); - AddExtension(pType, "CMDL", ePrimeDemo, eReturns); + CResTypeInfo *pType = new CResTypeInfo(eModel, "Model", "cmdl"); + AddExtension(pType, "CMDL", EGame::PrimeDemo, EGame::DKCReturns); } { - CResTypeInfo *pType = new CResTypeInfo(eParticle, "Particle System"); - AddExtension(pType, "PART", ePrimeDemo, eReturns); + CResTypeInfo *pType = new CResTypeInfo(eParticle, "Particle System", "gpsm.part"); + AddExtension(pType, "PART", EGame::PrimeDemo, EGame::DKCReturns); } { - CResTypeInfo *pType = new CResTypeInfo(eParticleCollisionResponse, "Collision Response Particle System"); - AddExtension(pType, "CRSC", ePrimeDemo, eCorruption); + CResTypeInfo *pType = new CResTypeInfo(eParticleCollisionResponse, "Collision Response Particle System", "crsm.crsc"); + AddExtension(pType, "CRSC", EGame::PrimeDemo, EGame::Corruption); } { - CResTypeInfo *pType = new CResTypeInfo(eParticleDecal, "Decal Particle System"); - AddExtension(pType, "DPSC", ePrimeDemo, eCorruption); + CResTypeInfo *pType = new CResTypeInfo(eParticleDecal, "Decal Particle System", "dpsm.dpsc"); + AddExtension(pType, "DPSC", EGame::PrimeDemo, EGame::Corruption); } { - CResTypeInfo *pType = new CResTypeInfo(eParticleElectric, "Electric Particle System"); - AddExtension(pType, "ELSC", ePrimeDemo, eCorruption); + CResTypeInfo *pType = new CResTypeInfo(eParticleElectric, "Electric Particle System", "elsm.elsc"); + AddExtension(pType, "ELSC", EGame::PrimeDemo, EGame::Corruption); } { - CResTypeInfo *pType = new CResTypeInfo(eParticleSorted, "Sorted Particle System"); - AddExtension(pType, "SRSC", eEchoesDemo, eEchoes); + CResTypeInfo *pType = new CResTypeInfo(eParticleSorted, "Sorted Particle System", "srsm.srsc"); + AddExtension(pType, "SRSC", EGame::EchoesDemo, EGame::Echoes); } { - CResTypeInfo *pType = new CResTypeInfo(eParticleSpawn, "Spawn Particle System"); - AddExtension(pType, "SPSC", eEchoesDemo, eReturns); + CResTypeInfo *pType = new CResTypeInfo(eParticleSpawn, "Spawn Particle System", "spsm.spsc"); + AddExtension(pType, "SPSC", EGame::EchoesDemo, EGame::DKCReturns); } { - CResTypeInfo *pType = new CResTypeInfo(eParticleSwoosh, "Swoosh Particle System"); - AddExtension(pType, "SWHC", ePrimeDemo, eReturns); + CResTypeInfo *pType = new CResTypeInfo(eParticleSwoosh, "Swoosh Particle System", "swsh.swhc"); + AddExtension(pType, "SWHC", EGame::PrimeDemo, EGame::DKCReturns); } { - CResTypeInfo *pType = new CResTypeInfo(eParticleTransform, "Transform Particle System"); - AddExtension(pType, "XFSC", eReturns, eReturns); + CResTypeInfo *pType = new CResTypeInfo(eParticleTransform, "Transform Particle System", "xfsm.xfsc"); + AddExtension(pType, "XFSC", EGame::DKCReturns, EGame::DKCReturns); } { - CResTypeInfo *pType = new CResTypeInfo(eParticleWeapon, "Weapon Particle System"); - AddExtension(pType, "WPSC", ePrimeDemo, eCorruption); + CResTypeInfo *pType = new CResTypeInfo(eParticleWeapon, "Weapon Particle System", "wpsm.wpsc"); + AddExtension(pType, "WPSC", EGame::PrimeDemo, EGame::Corruption); } { - CResTypeInfo *pType = new CResTypeInfo(ePathfinding, "Pathfinding Mesh"); - AddExtension(pType, "PATH", ePrimeDemo, eCorruption); + CResTypeInfo *pType = new CResTypeInfo(ePathfinding, "Pathfinding Mesh", "path"); + AddExtension(pType, "PATH", EGame::PrimeDemo, EGame::Corruption); pType->mCanHaveDependencies = false; } { - CResTypeInfo *pType = new CResTypeInfo(ePortalArea, "Portal Area"); - AddExtension(pType, "PTLA", eEchoesDemo, eCorruption); + CResTypeInfo *pType = new CResTypeInfo(ePortalArea, "Portal Area", "?"); + AddExtension(pType, "PTLA", EGame::EchoesDemo, EGame::Corruption); pType->mCanHaveDependencies = false; } { - CResTypeInfo *pType = new CResTypeInfo(eRuleSet, "Rule Set"); - AddExtension(pType, "RULE", eEchoesDemo, eReturns); + CResTypeInfo *pType = new CResTypeInfo(eRuleSet, "Rule Set", "rule"); + AddExtension(pType, "RULE", EGame::EchoesDemo, EGame::DKCReturns); } { - CResTypeInfo *pType = new CResTypeInfo(eSaveArea, "Area Save Info"); - AddExtension(pType, "SAVA", eCorruptionProto, eCorruption); + CResTypeInfo *pType = new CResTypeInfo(eSaveArea, "Area Save Info", "sava"); + AddExtension(pType, "SAVA", EGame::CorruptionProto, EGame::Corruption); pType->mCanHaveDependencies = false; } { - CResTypeInfo *pType = new CResTypeInfo(eSaveWorld, "World Save Info"); - AddExtension(pType, "SAVW", ePrime, eReturns); + CResTypeInfo *pType = new CResTypeInfo(eSaveWorld, "World Save Info", "savw"); + AddExtension(pType, "SAVW", EGame::Prime, EGame::DKCReturns); pType->mCanHaveDependencies = false; } { - CResTypeInfo *pType = new CResTypeInfo(eScan, "Scan"); - AddExtension(pType, "SCAN", ePrimeDemo, eCorruption); + CResTypeInfo *pType = new CResTypeInfo(eScan, "Scan", "scan"); + AddExtension(pType, "SCAN", EGame::PrimeDemo, EGame::Corruption); } { - CResTypeInfo *pType = new CResTypeInfo(eSkeleton, "Skeleton"); - AddExtension(pType, "CINF", ePrimeDemo, eReturns); + CResTypeInfo *pType = new CResTypeInfo(eSkeleton, "Skeleton", "cin"); + AddExtension(pType, "CINF", EGame::PrimeDemo, EGame::DKCReturns); pType->mCanHaveDependencies = false; } { - CResTypeInfo *pType = new CResTypeInfo(eSkin, "Skin"); - AddExtension(pType, "CSKR", ePrimeDemo, eReturns); + CResTypeInfo *pType = new CResTypeInfo(eSkin, "Skin", "cskr"); + AddExtension(pType, "CSKR", EGame::PrimeDemo, EGame::DKCReturns); pType->mCanHaveDependencies = false; } { - CResTypeInfo *pType = new CResTypeInfo(eSourceAnimData, "Source Animation Data"); - AddExtension(pType, "SAND", eCorruptionProto, eCorruption); + CResTypeInfo *pType = new CResTypeInfo(eSourceAnimData, "Source Animation Data", "sand"); + AddExtension(pType, "SAND", EGame::CorruptionProto, EGame::Corruption); pType->mCanHaveDependencies = false; // all dependencies are added to the CHAR dependency tree } { - CResTypeInfo *pType = new CResTypeInfo(eSpatialPrimitive, "Spatial Primitive"); - AddExtension(pType, "CSPP", eEchoesDemo, eEchoes); + CResTypeInfo *pType = new CResTypeInfo(eSpatialPrimitive, "Spatial Primitive", "?"); + AddExtension(pType, "CSPP", EGame::EchoesDemo, EGame::Echoes); pType->mCanHaveDependencies = false; } { - CResTypeInfo *pType = new CResTypeInfo(eStateMachine, "State Machine"); - AddExtension(pType, "AFSM", ePrimeDemo, eEchoes); - AddExtension(pType, "FSM2", eCorruptionProto, eCorruption); - AddExtension(pType, "FSMC", eReturns, eReturns); + CResTypeInfo *pType = new CResTypeInfo(eStateMachine, "State Machine", "afsm"); + AddExtension(pType, "AFSM", EGame::PrimeDemo, EGame::Echoes); + AddExtension(pType, "FSM2", EGame::CorruptionProto, EGame::Corruption); + AddExtension(pType, "FSMC", EGame::DKCReturns, EGame::DKCReturns); } { - CResTypeInfo *pType = new CResTypeInfo(eStateMachine2, "State Machine 2"); - AddExtension(pType, "FSM2", eEchoesDemo, eCorruption); + CResTypeInfo *pType = new CResTypeInfo(eStateMachine2, "State Machine 2", "fsm2"); + AddExtension(pType, "FSM2", EGame::EchoesDemo, EGame::Corruption); } { - CResTypeInfo *pType = new CResTypeInfo(eStaticGeometryMap, "Static Scan Map"); - AddExtension(pType, "EGMC", eEchoesDemo, eCorruption); + CResTypeInfo *pType = new CResTypeInfo(eStaticGeometryMap, "Static Scan Map", "egmc"); + AddExtension(pType, "EGMC", EGame::EchoesDemo, EGame::Corruption); pType->mCanHaveDependencies = false; } { - CResTypeInfo *pType = new CResTypeInfo(eStreamedAudio, "Streamed Audio"); - AddExtension(pType, "STRM", eCorruptionProto, eReturns); + CResTypeInfo *pType = new CResTypeInfo(eStreamedAudio, "Streamed Audio", "?"); + AddExtension(pType, "STRM", EGame::CorruptionProto, EGame::DKCReturns); pType->mCanHaveDependencies = false; } { - CResTypeInfo *pType = new CResTypeInfo(eStringList, "String List"); - AddExtension(pType, "STLC", eEchoesDemo, eCorruptionProto); + CResTypeInfo *pType = new CResTypeInfo(eStringList, "String List", "stlc"); + AddExtension(pType, "STLC", EGame::EchoesDemo, EGame::CorruptionProto); pType->mCanHaveDependencies = false; } { - CResTypeInfo *pType = new CResTypeInfo(eStringTable, "String Table"); - AddExtension(pType, "STRG", ePrimeDemo, eReturns); + CResTypeInfo *pType = new CResTypeInfo(eStringTable, "String Table", "strg"); + AddExtension(pType, "STRG", EGame::PrimeDemo, EGame::DKCReturns); } { - CResTypeInfo *pType = new CResTypeInfo(eTexture, "Texture"); - AddExtension(pType, "TXTR", ePrimeDemo, eReturns); + CResTypeInfo *pType = new CResTypeInfo(eTexture, "Texture", "txtr"); + AddExtension(pType, "TXTR", EGame::PrimeDemo, EGame::DKCReturns); pType->mCanHaveDependencies = false; } { - CResTypeInfo *pType = new CResTypeInfo(eTweak, "Tweak Data"); - AddExtension(pType, "CTWK", ePrimeDemo, ePrime); + CResTypeInfo *pType = new CResTypeInfo(eTweak, "Tweak Data", "ctwk"); + AddExtension(pType, "CTWK", EGame::PrimeDemo, EGame::Prime); pType->mCanHaveDependencies = false; } { - CResTypeInfo *pType = new CResTypeInfo(eUserEvaluatorData, "User Evaluator Data"); - AddExtension(pType, "USRC", eCorruptionProto, eCorruption); + CResTypeInfo *pType = new CResTypeInfo(eUserEvaluatorData, "User Evaluator Data", "user.usrc"); + AddExtension(pType, "USRC", EGame::CorruptionProto, EGame::Corruption); } { - CResTypeInfo *pType = new CResTypeInfo(eWorld, "World"); - AddExtension(pType, "MLVL", ePrimeDemo, eReturns); + CResTypeInfo *pType = new CResTypeInfo(eWorld, "World", "mwld"); + AddExtension(pType, "MLVL", EGame::PrimeDemo, EGame::DKCReturns); pType->mCanBeSerialized = true; } } diff --git a/src/Core/Resource/CResTypeInfo.h b/src/Core/Resource/CResTypeInfo.h index b528f64f..699cd875 100644 --- a/src/Core/Resource/CResTypeInfo.h +++ b/src/Core/Resource/CResTypeInfo.h @@ -20,14 +20,15 @@ class CResTypeInfo EResType mType; TString mTypeName; std::vector mCookedExtensions; + TString mRetroExtension; // File extension in Retro's directory tree. We don't use it directly but it is needed for generating asset ID hashes bool mCanBeSerialized; bool mCanHaveDependencies; static std::unordered_map smTypeMap; // Private Methods - CResTypeInfo(EResType Type, const TString& rkTypeName); - ~CResTypeInfo(); + CResTypeInfo(EResType Type, const TString& rkTypeName, const TString& rkRetroExtension); + ~CResTypeInfo() {} // Public Methods public: diff --git a/src/Core/Resource/CResource.h b/src/Core/Resource/CResource.h index 036e2eef..a2d5868e 100644 --- a/src/Core/Resource/CResource.h +++ b/src/Core/Resource/CResource.h @@ -51,7 +51,7 @@ public: inline TString Source() const { return mpEntry ? mpEntry->CookedAssetPath(true).GetFileName() : ""; } inline TString FullSource() const { return mpEntry ? mpEntry->CookedAssetPath(true) : ""; } inline CAssetID ID() const { return mpEntry ? mpEntry->ID() : CAssetID::skInvalidID64; } - inline EGame Game() const { return mpEntry ? mpEntry->Game() : eUnknownGame; } + inline EGame Game() const { return mpEntry ? mpEntry->Game() : EGame::Invalid; } inline bool IsReferenced() const { return mRefCount > 0; } inline void Lock() { mRefCount++; } inline void Release() { mRefCount--; } diff --git a/src/Core/Resource/CSavedStateID.h b/src/Core/Resource/CSavedStateID.h index e18ad976..5cfed855 100644 --- a/src/Core/Resource/CSavedStateID.h +++ b/src/Core/Resource/CSavedStateID.h @@ -46,10 +46,18 @@ public: void Serialize(IArchive& rArc) { - TString Str; - if (rArc.IsWriter()) Str = ToString(); - rArc.SerializePrimitive(Str); - if (rArc.IsReader()) *this = FromString(Str); + if (rArc.IsBinaryFormat()) + { + rArc.SerializePrimitive(m[0], 0); + rArc.SerializePrimitive(m[1], 0); + } + else + { + TString Str; + if (rArc.IsWriter()) Str = ToString(); + rArc.SerializePrimitive(Str, 0); + if (rArc.IsReader()) *this = FromString(Str); + } } // Operators diff --git a/src/Core/Resource/CScan.h b/src/Core/Resource/CScan.h index 04523621..f99febd3 100644 --- a/src/Core/Resource/CScan.h +++ b/src/Core/Resource/CScan.h @@ -69,7 +69,7 @@ public: CDependencyTree *pTree = new CDependencyTree(); // Corruption's SCAN has a list of all assets - just grab that - if (Game() >= eCorruptionProto) + if (Game() >= EGame::CorruptionProto) { for (u32 iDep = 0; iDep < mDependencyList.size(); iDep++) { @@ -80,18 +80,18 @@ public: } // Otherwise add all the dependencies we need from the properties - if (Game() <= ePrime) + if (Game() <= EGame::Prime) pTree->AddDependency(mFrameID); pTree->AddDependency(mpStringTable); - if (Game() <= ePrime) + if (Game() <= EGame::Prime) { for (u32 iImg = 0; iImg < 4; iImg++) pTree->AddDependency(mScanImageTextures[iImg]); } - else if (Game() <= eEchoes) + else if (Game() <= EGame::Echoes) { pTree->AddDependency(mPostOverrideTexture); pTree->AddDependency(mLogbookModel); diff --git a/src/Core/Resource/CStringTable.h b/src/Core/Resource/CStringTable.h index a00fd538..7863e31e 100644 --- a/src/Core/Resource/CStringTable.h +++ b/src/Core/Resource/CStringTable.h @@ -46,7 +46,7 @@ public: { // STRGs can reference FONTs with the &font=; formatting tag and TXTRs with the &image=; tag CDependencyTree *pTree = new CDependencyTree(); - EIDLength IDLength = (Game() <= eEchoes ? e32Bit : e64Bit); + EIDLength IDLength = (Game() <= EGame::Echoes ? e32Bit : e64Bit); for (u32 iLang = 0; iLang < mLangTables.size(); iLang++) { @@ -77,7 +77,7 @@ public: // Font if (TagName == "font") { - if (Game() >= eCorruptionProto) + if (Game() >= EGame::CorruptionProto) { ASSERT(ParamString.StartsWith("0x")); ParamString = ParamString.ChopFront(2); @@ -126,7 +126,7 @@ public: { TString Param = *Iter; - if (Game() >= eCorruptionProto) + if (Game() >= EGame::CorruptionProto) { ASSERT(Param.StartsWith("0x")); Param = Param.ChopFront(2); diff --git a/src/Core/Resource/CWorld.cpp b/src/Core/Resource/CWorld.cpp index ac411549..22c5417d 100644 --- a/src/Core/Resource/CWorld.cpp +++ b/src/Core/Resource/CWorld.cpp @@ -92,87 +92,87 @@ u32 CWorld::AreaIndex(CAssetID AreaID) const // ************ SERIALIZATION ************ void CWorld::Serialize(IArchive& rArc) { - rArc << SERIAL("Name", mName) - << SERIAL("NameString", mpWorldName); + rArc << SerialParameter("Name", mName) + << SerialParameter("NameString", mpWorldName); - if (rArc.Game() == eEchoesDemo || rArc.Game() == eEchoes) - rArc << SERIAL("DarkNameString", mpDarkWorldName); + if (rArc.Game() == EGame::EchoesDemo || rArc.Game() == EGame::Echoes) + rArc << SerialParameter("DarkNameString", mpDarkWorldName); - rArc << SERIAL("WorldSaveInfo", mpSaveWorld) - << SERIAL("WorldMap", mpMapWorld) - << SERIAL("DefaultSkyModel", mpDefaultSkybox); + rArc << SerialParameter("WorldSaveInfo", mpSaveWorld) + << SerialParameter("WorldMap", mpMapWorld) + << SerialParameter("DefaultSkyModel", mpDefaultSkybox); - if (rArc.Game() >= eEchoesDemo && rArc.Game() <= eCorruption) - rArc << SERIAL("TempleKeyWorldIndex", mTempleKeyWorldIndex); + if (rArc.Game() >= EGame::EchoesDemo && rArc.Game() <= EGame::Corruption) + rArc << SerialParameter("TempleKeyWorldIndex", mTempleKeyWorldIndex); - if (rArc.Game() == eReturns) - rArc << SERIAL("TimeAttackData", mTimeAttackData); + if (rArc.Game() == EGame::DKCReturns) + rArc << SerialParameter("TimeAttackData", mTimeAttackData); - if (rArc.Game() == ePrime) - rArc << SERIAL_CONTAINER("MemoryRelays", mMemoryRelays, "MemoryRelay"); + if (rArc.Game() == EGame::Prime) + rArc << SerialParameter("MemoryRelays", mMemoryRelays); - rArc << SERIAL_CONTAINER("Areas", mAreas, "Area"); + rArc << SerialParameter("Areas", mAreas); } void Serialize(IArchive& rArc, CWorld::STimeAttackData& rData) { - rArc << SERIAL("HasTimeAttack", rData.HasTimeAttack) - << SERIAL("ActNumber", rData.ActNumber) - << SERIAL("BronzeTime", rData.BronzeTime) - << SERIAL("SilverTime", rData.SilverTime) - << SERIAL("GoldTime", rData.GoldTime) - << SERIAL("ShinyGoldTime", rData.ShinyGoldTime); + rArc << SerialParameter("HasTimeAttack", rData.HasTimeAttack) + << SerialParameter("ActNumber", rData.ActNumber) + << SerialParameter("BronzeTime", rData.BronzeTime) + << SerialParameter("SilverTime", rData.SilverTime) + << SerialParameter("GoldTime", rData.GoldTime) + << SerialParameter("ShinyGoldTime", rData.ShinyGoldTime); } void Serialize(IArchive& rArc, CWorld::SMemoryRelay& rMemRelay) { - rArc << SERIAL_HEX("MemoryRelayID", rMemRelay.InstanceID) - << SERIAL_HEX("TargetID", rMemRelay.TargetID) - << SERIAL("Message", rMemRelay.Message) - << SERIAL("Active", rMemRelay.Active); + rArc << SerialParameter("MemoryRelayID", rMemRelay.InstanceID, SH_HexDisplay) + << SerialParameter("TargetID", rMemRelay.TargetID, SH_HexDisplay) + << SerialParameter("Message", rMemRelay.Message) + << SerialParameter("Active", rMemRelay.Active); } void Serialize(IArchive& rArc, CWorld::SArea& rArea) { - rArc << SERIAL("Name", rArea.InternalName) - << SERIAL("NameString", rArea.pAreaName) - << SERIAL("MREA", rArea.AreaResID) - << SERIAL("ID", rArea.AreaID) - << SERIAL("Transform", rArea.Transform) - << SERIAL("BoundingBox", rArea.AetherBox) - << SERIAL("AllowPakDuplicates", rArea.AllowPakDuplicates) - << SERIAL_CONTAINER("AttachedAreas", rArea.AttachedAreaIDs, "AreaIndex") - << SERIAL_CONTAINER("RelModules", rArea.RelFilenames, "Module") - << SERIAL_CONTAINER("RelOffsets", rArea.RelOffsets, "Offset") - << SERIAL_CONTAINER("Docks", rArea.Docks, "Dock") - << SERIAL_CONTAINER("Layers", rArea.Layers, "Layer"); + rArc << SerialParameter("Name", rArea.InternalName) + << SerialParameter("NameString", rArea.pAreaName) + << SerialParameter("MREA", rArea.AreaResID) + << SerialParameter("ID", rArea.AreaID) + << SerialParameter("Transform", rArea.Transform) + << SerialParameter("BoundingBox", rArea.AetherBox) + << SerialParameter("AllowPakDuplicates", rArea.AllowPakDuplicates) + << SerialParameter("AttachedAreas", rArea.AttachedAreaIDs) + << SerialParameter("RelModules", rArea.RelFilenames) + << SerialParameter("RelOffsets", rArea.RelOffsets) + << SerialParameter("Docks", rArea.Docks) + << SerialParameter("Layers", rArea.Layers); } void Serialize(IArchive& rArc, CWorld::SArea::SDock& rDock) { - rArc << SERIAL_CONTAINER("ConnectingDocks", rDock.ConnectingDocks, "ConnectingDock") - << SERIAL_CONTAINER("DockCoords", rDock.DockCoordinates, "Coord"); + rArc << SerialParameter("ConnectingDocks", rDock.ConnectingDocks) + << SerialParameter("DockCoords", rDock.DockCoordinates); } void Serialize(IArchive& rArc, CWorld::SArea::SDock::SConnectingDock& rDock) { - rArc << SERIAL("AreaIndex", rDock.AreaIndex) - << SERIAL("DockIndex", rDock.DockIndex); + rArc << SerialParameter("AreaIndex", rDock.AreaIndex) + << SerialParameter("DockIndex", rDock.DockIndex); } void Serialize(IArchive& rArc, CWorld::SArea::SLayer& rLayer) { - rArc << SERIAL("Name", rLayer.LayerName) - << SERIAL("Active", rLayer.Active); + rArc << SerialParameter("Name", rLayer.LayerName) + << SerialParameter("Active", rLayer.Active); - if (rArc.Game() >= eCorruption) + if (rArc.Game() >= EGame::Corruption) { - rArc << SERIAL("StateID", rLayer.LayerStateID); + rArc << SerialParameter("StateID", rLayer.LayerStateID); } } void Serialize(IArchive& rArc, CWorld::SAudioGrp& rAudioGrp) { - rArc << SERIAL("GroupID", rAudioGrp.GroupID) - << SERIAL("AGSC", rAudioGrp.ResID); + rArc << SerialParameter("GroupID", rAudioGrp.GroupID) + << SerialParameter("AGSC", rAudioGrp.ResID); } diff --git a/src/Core/Resource/Cooker/CAreaCooker.cpp b/src/Core/Resource/Cooker/CAreaCooker.cpp index ed5c29ba..a0a73135 100644 --- a/src/Core/Resource/Cooker/CAreaCooker.cpp +++ b/src/Core/Resource/Cooker/CAreaCooker.cpp @@ -35,14 +35,14 @@ void CAreaCooker::DetermineSectionNumbersPrime() switch (mVersion) { - case ePrimeDemo: - case ePrime: + case EGame::PrimeDemo: + case EGame::Prime: GeometrySections = 1 + (7 * OriginalMeshCount); // Accounting for materials break; - case eEchoesDemo: + case EGame::EchoesDemo: GeometrySections = 2 + (9 * OriginalMeshCount); // Account for materials + AROT break; - case eEchoes: + case EGame::Echoes: GeometrySections = 3 + (9 * OriginalMeshCount); // Acount for materials + AROT + an unknown section break; } @@ -52,13 +52,13 @@ void CAreaCooker::DetermineSectionNumbersPrime() // Set section numbers u32 SecNum = GeometrySections; - if (mVersion <= ePrime) mAROTSecNum = SecNum++; - if (mVersion >= eEchoesDemo) mFFFFSecNum = SecNum++; + if (mVersion <= EGame::Prime) mAROTSecNum = SecNum++; + if (mVersion >= EGame::EchoesDemo) mFFFFSecNum = SecNum++; - if (mVersion >= eEchoesDemo) + if (mVersion >= EGame::EchoesDemo) { mSCLYSecNum = SecNum; - SecNum += (mVersion >= eEchoes ? mpArea->mScriptLayers.size() : 1); + SecNum += (mVersion >= EGame::Echoes ? mpArea->mScriptLayers.size() : 1); mSCGNSecNum = SecNum++; } else @@ -70,7 +70,7 @@ void CAreaCooker::DetermineSectionNumbersPrime() mVISISecNum = SecNum++; mPATHSecNum = SecNum++; - if (mVersion >= eEchoesDemo) + if (mVersion >= EGame::EchoesDemo) { mPTLASecNum = SecNum++; mEGMCSecNum = SecNum++; @@ -98,18 +98,18 @@ void CAreaCooker::WritePrimeHeader(IOutputStream& rOut) rOut.WriteLong(GetMREAVersion(mVersion)); mpArea->mTransform.Write(rOut); rOut.WriteLong(mpArea->mOriginalWorldMeshCount); - if (mVersion >= eEchoes) rOut.WriteLong(mpArea->mScriptLayers.size()); + if (mVersion >= EGame::Echoes) rOut.WriteLong(mpArea->mScriptLayers.size()); rOut.WriteLong(mpArea->mSectionDataBuffers.size()); rOut.WriteLong(mGeometrySecNum); rOut.WriteLong(mSCLYSecNum); - if (mVersion >= eEchoesDemo) rOut.WriteLong(mSCGNSecNum); + if (mVersion >= EGame::EchoesDemo) rOut.WriteLong(mSCGNSecNum); rOut.WriteLong(mCollisionSecNum); rOut.WriteLong(mUnknownSecNum); rOut.WriteLong(mLightsSecNum); rOut.WriteLong(mVISISecNum); rOut.WriteLong(mPATHSecNum); - if (mVersion <= ePrime) rOut.WriteLong(mAROTSecNum); + if (mVersion <= EGame::Prime) rOut.WriteLong(mAROTSecNum); else { @@ -118,9 +118,9 @@ void CAreaCooker::WritePrimeHeader(IOutputStream& rOut) rOut.WriteLong(mEGMCSecNum); } - if (mVersion >= eEchoesDemo) + if (mVersion >= EGame::EchoesDemo) { - if (mVersion >= eEchoes) rOut.WriteLong(mCompressedBlocks.size()); + if (mVersion >= EGame::Echoes) rOut.WriteLong(mCompressedBlocks.size()); rOut.WriteToBoundary(32, 0); } @@ -128,7 +128,7 @@ void CAreaCooker::WritePrimeHeader(IOutputStream& rOut) rOut.WriteLong(mSectionSizes[iSec]); rOut.WriteToBoundary(32, 0); - if (mVersion >= eEchoes) + if (mVersion >= EGame::Echoes) WriteCompressionHeader(rOut); } @@ -188,7 +188,7 @@ void CAreaCooker::WritePrimeSCLY(IOutputStream& rOut) // This function covers both Prime 1 and the Echoes demo. // The Echoes demo has a similar SCLY format but with minor layout differences and with SCGN. rOut.WriteFourCC( FOURCC('SCLY') ); - mVersion <= ePrime ? rOut.WriteLong(1) : rOut.WriteByte(1); + mVersion <= EGame::Prime ? rOut.WriteLong(1) : rOut.WriteByte(1); u32 NumLayers = mpArea->mScriptLayers.size(); rOut.WriteLong(NumLayers); @@ -227,7 +227,7 @@ void CAreaCooker::WritePrimeSCLY(IOutputStream& rOut) FinishSection(false); // SCGN - if (mVersion == eEchoesDemo) + if (mVersion == EGame::EchoesDemo) { rOut.WriteFourCC( FOURCC('SCGN') ); rOut.WriteByte(1); @@ -327,7 +327,7 @@ void CAreaCooker::FinishSection(bool SingleSectionBlock) mSectionSizes.push_back(SecSize); // Only track compressed blocks for MP2+. Write everything to one block for MP1. - if (mVersion >= eEchoes) + if (mVersion >= EGame::Echoes) { // Finish the current block if this is a single section block OR if the new section would push the block over the size limit. if (mCurBlock.NumSections > 0 && (mCurBlock.DecompressedSize + SecSize > kSizeThreshold || SingleSectionBlock)) @@ -350,8 +350,8 @@ void CAreaCooker::FinishBlock() if (mCurBlock.NumSections == 0) return; std::vector CompressedBuf(mCompressedData.Size() * 2); - bool EnableCompression = (mVersion >= eEchoes) && mpArea->mUsesCompression && !gkForceDisableCompression; - bool UseZlib = (mVersion == eReturns); + bool EnableCompression = (mVersion >= EGame::Echoes) && mpArea->mUsesCompression && !gkForceDisableCompression; + bool UseZlib = (mVersion == EGame::DKCReturns); u32 CompressedSize = 0; bool WriteCompressedData = false; @@ -394,7 +394,7 @@ bool CAreaCooker::CookMREA(CGameArea *pArea, IOutputStream& rOut) Cooker.mpArea = pArea; Cooker.mVersion = pArea->Game(); - if (Cooker.mVersion <= eEchoes) + if (Cooker.mVersion <= EGame::Echoes) Cooker.DetermineSectionNumbersPrime(); else Cooker.DetermineSectionNumbersCorruption(); @@ -413,13 +413,13 @@ bool CAreaCooker::CookMREA(CGameArea *pArea, IOutputStream& rOut) } // Write SCLY - if (Cooker.mVersion <= eEchoesDemo) + if (Cooker.mVersion <= EGame::EchoesDemo) Cooker.WritePrimeSCLY(Cooker.mSectionData); else Cooker.WriteEchoesSCLY(Cooker.mSectionData); // Write post-SCLY data sections - u32 PostSCLY = (Cooker.mVersion <= ePrime ? Cooker.mSCLYSecNum + 1 : Cooker.mSCGNSecNum + 1); + u32 PostSCLY = (Cooker.mVersion <= EGame::Prime ? Cooker.mSCLYSecNum + 1 : Cooker.mSCGNSecNum + 1); for (u32 iSec = PostSCLY; iSec < pArea->mSectionDataBuffers.size(); iSec++) { if (iSec == Cooker.mModulesSecNum) @@ -435,7 +435,7 @@ bool CAreaCooker::CookMREA(CGameArea *pArea, IOutputStream& rOut) Cooker.FinishBlock(); // Write to actual file - if (Cooker.mVersion <= eEchoes) + if (Cooker.mVersion <= EGame::Echoes) Cooker.WritePrimeHeader(rOut); else Cooker.WriteCorruptionHeader(rOut); @@ -448,13 +448,13 @@ u32 CAreaCooker::GetMREAVersion(EGame Version) { switch (Version) { - case ePrimeDemo: return 0xC; - case ePrime: return 0xF; - case eEchoesDemo: return 0x15; - case eEchoes: return 0x19; - case eCorruptionProto: return 0x1D; - case eCorruption: return 0x1E; - case eReturns: return 0x20; - default: return 0; + case EGame::PrimeDemo: return 0xC; + case EGame::Prime: return 0xF; + case EGame::EchoesDemo: return 0x15; + case EGame::Echoes: return 0x19; + case EGame::CorruptionProto: return 0x1D; + case EGame::Corruption: return 0x1E; + case EGame::DKCReturns: return 0x20; + default: return 0; } } diff --git a/src/Core/Resource/Cooker/CMaterialCooker.cpp b/src/Core/Resource/Cooker/CMaterialCooker.cpp index 4efb133a..8f775746 100644 --- a/src/Core/Resource/Cooker/CMaterialCooker.cpp +++ b/src/Core/Resource/Cooker/CMaterialCooker.cpp @@ -161,7 +161,7 @@ void CMaterialCooker::WriteMaterialPrime(IOutputStream& rOut) bool HasKonst = (NumKonst > 0); u32 Flags; - if (mVersion <= ePrime) + if (mVersion <= EGame::Prime) Flags = 0x1003; else Flags = 0x4002; @@ -178,13 +178,13 @@ void CMaterialCooker::WriteMaterialPrime(IOutputStream& rOut) // Vertex description u32 VtxFlags = ConvertFromVertexDescription( mpMat->VtxDesc() ); - if (mVersion < eEchoes) + if (mVersion < EGame::Echoes) VtxFlags &= 0x00FFFFFF; rOut.WriteLong(VtxFlags); // Echoes unknowns - if (mVersion == eEchoes) + if (mVersion == EGame::Echoes) { rOut.WriteLong(mpMat->EchoesUnknownA()); rOut.WriteLong(mpMat->EchoesUnknownB()); @@ -359,10 +359,10 @@ void CMaterialCooker::WriteCookedMatSet(CMaterialSet *pSet, EGame Version, IOutp switch (Version) { - case ePrimeDemo: - case ePrime: - case eEchoesDemo: - case eEchoes: + case EGame::PrimeDemo: + case EGame::Prime: + case EGame::EchoesDemo: + case EGame::Echoes: Cooker.WriteMatSetPrime(rOut); break; } @@ -376,10 +376,10 @@ void CMaterialCooker::WriteCookedMaterial(CMaterial *pMat, EGame Version, IOutpu switch (Version) { - case ePrimeDemo: - case ePrime: - case eEchoesDemo: - case eEchoes: + case EGame::PrimeDemo: + case EGame::Prime: + case EGame::EchoesDemo: + case EGame::Echoes: Cooker.WriteMaterialPrime(rOut); break; // TODO: Corruption/Uncooked diff --git a/src/Core/Resource/Cooker/CModelCooker.cpp b/src/Core/Resource/Cooker/CModelCooker.cpp index d74d8448..ffecd12c 100644 --- a/src/Core/Resource/Cooker/CModelCooker.cpp +++ b/src/Core/Resource/Cooker/CModelCooker.cpp @@ -168,7 +168,7 @@ void CModelCooker::WriteModelPrime(IOutputStream& rOut) { CVertex *pVert = &pPrimitive->Vertices[iVert]; - if (mVersion == eEchoes) + if (mVersion == EGame::Echoes) { for (u32 iMtxAttribs = 0; iMtxAttribs < 8; iMtxAttribs++) if (VtxAttribs & (ePosMtx << iMtxAttribs)) @@ -232,10 +232,10 @@ bool CModelCooker::CookCMDL(CModel *pModel, IOutputStream& rOut) switch (pModel->Game()) { - case ePrimeDemo: - case ePrime: - case eEchoesDemo: - case eEchoes: + case EGame::PrimeDemo: + case EGame::Prime: + case EGame::EchoesDemo: + case EGame::Echoes: Cooker.WriteModelPrime(rOut); return true; @@ -248,17 +248,17 @@ u32 CModelCooker::GetCMDLVersion(EGame Version) { switch (Version) { - case ePrimeDemo: - case ePrime: + case EGame::PrimeDemo: + case EGame::Prime: return 0x2; - case eEchoesDemo: + case EGame::EchoesDemo: return 0x3; - case eEchoes: + case EGame::Echoes: return 0x4; - case eCorruptionProto: - case eCorruption: + case EGame::CorruptionProto: + case EGame::Corruption: return 0x5; - case eReturns: + case EGame::DKCReturns: return 0xA; default: return 0; diff --git a/src/Core/Resource/Cooker/CScriptCooker.cpp b/src/Core/Resource/Cooker/CScriptCooker.cpp index 8b6d66cb..3f659621 100644 --- a/src/Core/Resource/Cooker/CScriptCooker.cpp +++ b/src/Core/Resource/Cooker/CScriptCooker.cpp @@ -1,121 +1,149 @@ #include "CScriptCooker.h" #include "Core/Resource/Script/CLink.h" +#include +#include +#include +#include -void CScriptCooker::WriteProperty(IOutputStream& rOut,IProperty *pProp, bool InSingleStruct) +void CScriptCooker::WriteProperty(IOutputStream& rOut, IProperty* pProperty, bool InAtomicStruct) { u32 SizeOffset = 0, PropStart = 0; + void* pData = (mpArrayItemData ? mpArrayItemData : mpObject->PropertyData()); - if (mGame >= eEchoesDemo && !InSingleStruct) + if (mGame >= EGame::EchoesDemo && !InAtomicStruct) { - rOut.WriteLong(pProp->ID()); + rOut.WriteLong(pProperty->ID()); SizeOffset = rOut.Tell(); rOut.WriteShort(0x0); PropStart = rOut.Tell(); } - switch (pProp->Type()) + switch (pProperty->Type()) { - case eBoolProperty: + case EPropertyType::Bool: { - TBoolProperty *pBoolCast = static_cast(pProp); - rOut.WriteBool(pBoolCast->Get()); + CBoolProperty* pBool = TPropCast(pProperty); + rOut.WriteBool( pBool->Value(pData) ); break; } - case eByteProperty: + case EPropertyType::Byte: { - TByteProperty *pByteCast = static_cast(pProp); - rOut.WriteByte(pByteCast->Get()); + CByteProperty* pByte = TPropCast(pProperty); + rOut.WriteByte( pByte->Value(pData) ); break; } - case eShortProperty: + case EPropertyType::Short: { - TShortProperty *pShortCast = static_cast(pProp); - rOut.WriteShort(pShortCast->Get()); + CShortProperty* pShort = TPropCast(pProperty); + rOut.WriteShort( pShort->Value(pData) ); break; } - case eLongProperty: + case EPropertyType::Int: { - TLongProperty *pLongCast = static_cast(pProp); - rOut.WriteLong(pLongCast->Get()); + CIntProperty* pInt = TPropCast(pProperty); + rOut.WriteLong( pInt->Value(pData) ); break; } - case eEnumProperty: + case EPropertyType::Float: { - TEnumProperty *pEnumCast = static_cast(pProp); - rOut.WriteLong(pEnumCast->Get()); + CFloatProperty* pFloat = TPropCast(pProperty); + rOut.WriteFloat( pFloat->Value(pData) ); break; } - case eBitfieldProperty: + case EPropertyType::Choice: { - TBitfieldProperty *pBitfieldCast = static_cast(pProp); - rOut.WriteLong(pBitfieldCast->Get()); + CChoiceProperty* pChoice = TPropCast(pProperty); + rOut.WriteLong( pChoice->Value(pData) ); break; } - case eFloatProperty: + case EPropertyType::Enum: { - TFloatProperty *pFloatCast = static_cast(pProp); - rOut.WriteFloat(pFloatCast->Get()); + CEnumProperty* pEnum = TPropCast(pProperty); + rOut.WriteLong( pEnum->Value(pData) ); break; } - case eStringProperty: + case EPropertyType::Flags: { - TStringProperty *pStringCast = static_cast(pProp); - rOut.WriteString(pStringCast->Get()); + CFlagsProperty* pFlags = TPropCast(pProperty); + rOut.WriteLong( pFlags->Value(pData) ); break; } - case eVector3Property: + case EPropertyType::String: { - TVector3Property *pVectorCast = static_cast(pProp); - pVectorCast->Get().Write(rOut); + CStringProperty* pString = TPropCast(pProperty); + rOut.WriteString( pString->Value(pData) ); break; } - case eColorProperty: + case EPropertyType::Vector: { - TColorProperty *pColorCast = static_cast(pProp); - pColorCast->Get().Write(rOut, false); + CVectorProperty* pVector = TPropCast(pProperty); + pVector->ValueRef(pData).Write(rOut); break; } - case eSoundProperty: + case EPropertyType::Color: { - TSoundProperty *pSoundCast = static_cast(pProp); - rOut.WriteLong(pSoundCast->Get()); + CColorProperty* pColor = TPropCast(pProperty); + pColor->ValueRef(pData).Write(rOut); break; } - case eAssetProperty: + case EPropertyType::Asset: { - TAssetProperty *pAssetCast = static_cast(pProp); - pAssetCast->Get().Write(rOut); + CAssetProperty* pAsset = TPropCast(pProperty); + pAsset->ValueRef(pData).Write(rOut); break; } - case eCharacterProperty: + case EPropertyType::Sound: { - TCharacterProperty *pCharCast = static_cast(pProp); - pCharCast->Get().Write(rOut); + CSoundProperty* pSound = TPropCast(pProperty); + rOut.WriteLong( pSound->Value(pData) ); break; } - case eMayaSplineProperty: + case EPropertyType::Animation: { - TMayaSplineProperty *pSplineCast = static_cast(pProp); - std::vector Buffer = pSplineCast->Get(); - if (!Buffer.empty()) rOut.WriteBytes(Buffer.data(), Buffer.size()); + CAnimationProperty* pAnim = TPropCast(pProperty); + rOut.WriteLong( pAnim->Value(pData) ); + break; + } + case EPropertyType::AnimationSet: + { + CAnimationSetProperty* pAnimSet = TPropCast(pProperty); + pAnimSet->ValueRef(pData).Write(rOut); + break; + } + + case EPropertyType::Sequence: + { + // TODO + break; + } + + case EPropertyType::Spline: + { + CSplineProperty* pSpline = TPropCast(pProperty); + std::vector& rBuffer = pSpline->ValueRef(pData); + + if (!rBuffer.empty()) + { + rOut.WriteBytes( rBuffer.data(), rBuffer.size() ); + } else { - if (mGame < eReturns) + if (mGame < EGame::DKCReturns) { rOut.WriteShort(0); rOut.WriteLong(0); @@ -132,47 +160,63 @@ void CScriptCooker::WriteProperty(IOutputStream& rOut,IProperty *pProp, bool InS rOut.WriteByte(1); } } - break; } - case eStructProperty: + case EPropertyType::Guid: { - CPropertyStruct *pStruct = static_cast(pProp); - CStructTemplate *pTemp = static_cast(pStruct->Template()); + CGuidProperty* pGuid = TPropCast(pProperty); + std::vector& rBuffer = pGuid->ValueRef(pData); + if (rBuffer.empty()) + rBuffer.resize(16, 0); + + rOut.WriteBytes( rBuffer.data(), rBuffer.size() ); + break; + } + + case EPropertyType::Struct: + { + CStructProperty* pStruct = TPropCast(pProperty); std::vector PropertiesToWrite; - for (u32 iProp = 0; iProp < pStruct->Count(); iProp++) + for (u32 ChildIdx = 0; ChildIdx < pStruct->NumChildren(); ChildIdx++) { - IProperty *pSubProp = pStruct->PropertyByIndex(iProp);\ + IProperty *pChild = pStruct->ChildByIndex(ChildIdx); - if (pTemp->IsSingleProperty() || pSubProp->ShouldCook()) - PropertiesToWrite.push_back(pSubProp); + if (pStruct->IsAtomic() || pChild->ShouldCook(pData)) + PropertiesToWrite.push_back(pChild); } - if (!pTemp->IsSingleProperty()) + if (!pStruct->IsAtomic()) { - if (mGame <= ePrime) + if (mGame <= EGame::Prime) rOut.WriteLong(PropertiesToWrite.size()); else rOut.WriteShort((u16) PropertiesToWrite.size()); } - for (u32 iProp = 0; iProp < PropertiesToWrite.size(); iProp++) - WriteProperty(rOut, PropertiesToWrite[iProp], pTemp->IsSingleProperty()); + for (u32 PropertyIdx = 0; PropertyIdx < PropertiesToWrite.size(); PropertyIdx++) + WriteProperty(rOut, PropertiesToWrite[PropertyIdx], pStruct->IsAtomic()); break; } - case eArrayProperty: + case EPropertyType::Array: { - CArrayProperty *pArray = static_cast(pProp); - rOut.WriteLong(pArray->Count()); + CArrayProperty* pArray = TPropCast(pProperty); + u32 Count = pArray->ArrayCount(pData); + rOut.WriteLong(Count); - for (u32 iProp = 0; iProp < pArray->Count(); iProp++) - WriteProperty(rOut, pArray->PropertyByIndex(iProp), true); + void* pOldItemData = mpArrayItemData; + for (u32 ElementIdx = 0; ElementIdx < pArray->ArrayCount(pData); ElementIdx++) + { + mpArrayItemData = pArray->ItemPointer(pData, ElementIdx); + WriteProperty(rOut, pArray->ItemArchetype(), true); + } + + mpArrayItemData = pOldItemData; break; } @@ -194,7 +238,7 @@ void CScriptCooker::WriteInstance(IOutputStream& rOut, CScriptObject *pInstance) // Note the format is pretty much the same between games; the main difference is a // number of fields changed size between MP1 and 2, but they're still the same fields - bool IsPrime1 = (mGame <= ePrime); + bool IsPrime1 = (mGame <= EGame::Prime); u32 ObjectType = pInstance->ObjectTypeID(); IsPrime1 ? rOut.WriteByte((u8) ObjectType) : rOut.WriteLong(ObjectType); @@ -209,15 +253,16 @@ void CScriptCooker::WriteInstance(IOutputStream& rOut, CScriptObject *pInstance) u32 NumLinks = pInstance->NumLinks(eOutgoing); IsPrime1 ? rOut.WriteLong(NumLinks) : rOut.WriteShort((u16) NumLinks); - for (u32 iLink = 0; iLink < pInstance->NumLinks(eOutgoing); iLink++) + for (u32 LinkIdx = 0; LinkIdx < NumLinks; LinkIdx++) { - CLink *pLink = pInstance->Link(eOutgoing, iLink); + CLink *pLink = pInstance->Link(eOutgoing, LinkIdx); rOut.WriteLong(pLink->State()); rOut.WriteLong(pLink->Message()); rOut.WriteLong(pLink->ReceiverID()); } - WriteProperty(rOut, pInstance->Properties(), false); + mpObject = pInstance; + WriteProperty(rOut, pInstance->Template()->Properties(), false); u32 InstanceEnd = rOut.Tell(); rOut.Seek(SizeOffset, SEEK_SET); @@ -230,7 +275,7 @@ void CScriptCooker::WriteLayer(IOutputStream& rOut, CScriptLayer *pLayer) { ASSERT(pLayer->Area()->Game() == mGame); - rOut.WriteByte( mGame <= ePrime ? 0 : 1 ); // Version + rOut.WriteByte( mGame <= EGame::Prime ? 0 : 1 ); // Version u32 InstanceCountOffset = rOut.Tell(); u32 NumWrittenInstances = 0; @@ -246,7 +291,7 @@ void CScriptCooker::WriteLayer(IOutputStream& rOut, CScriptLayer *pLayer) if (mWriteGeneratedSeparately) { // GenericCreature instances in DKCR always write to both SCLY and SCGN - if (mGame == eReturns && pInstance->ObjectTypeID() == FOURCC('GCTR')) + if (mGame == EGame::DKCReturns && pInstance->ObjectTypeID() == FOURCC('GCTR')) mGeneratedObjects.push_back(pInstance); // Instances receiving a Generate/Activate message (MP2) or a @@ -257,7 +302,7 @@ void CScriptCooker::WriteLayer(IOutputStream& rOut, CScriptLayer *pLayer) { CLink *pLink = pInstance->Link(eIncoming, LinkIdx); - if (mGame <= eEchoes) + if (mGame <= EGame::Echoes) { if (pLink->State() == FOURCC('GRNT') && pLink->Message() == FOURCC('ACTV')) { @@ -302,6 +347,6 @@ void CScriptCooker::WriteGeneratedLayer(IOutputStream& rOut) rOut.WriteByte(1); // Version rOut.WriteLong(mGeneratedObjects.size()); - for (u32 InstIdx = 0; InstIdx < mGeneratedObjects.size(); InstIdx++) - WriteInstance(rOut, mGeneratedObjects[InstIdx]); + for (u32 ObjectIdx = 0; ObjectIdx < mGeneratedObjects.size(); ObjectIdx++) + WriteInstance(rOut, mGeneratedObjects[ObjectIdx]); } diff --git a/src/Core/Resource/Cooker/CScriptCooker.h b/src/Core/Resource/Cooker/CScriptCooker.h index c28a1bf2..50ba2a2c 100644 --- a/src/Core/Resource/Cooker/CScriptCooker.h +++ b/src/Core/Resource/Cooker/CScriptCooker.h @@ -10,15 +10,19 @@ class CScriptCooker { EGame mGame; + CScriptObject* mpObject; + void* mpArrayItemData; std::vector mGeneratedObjects; bool mWriteGeneratedSeparately; - void WriteProperty(IOutputStream& rOut,IProperty *pProp, bool InSingleStruct); + void WriteProperty(IOutputStream& rOut, IProperty* pProperty, bool InAtomicStruct); public: CScriptCooker(EGame Game, bool WriteGeneratedObjectsSeparately = true) : mGame(Game) - , mWriteGeneratedSeparately(WriteGeneratedObjectsSeparately && mGame >= eEchoesDemo) + , mpObject(nullptr) + , mpArrayItemData(nullptr) + , mWriteGeneratedSeparately(WriteGeneratedObjectsSeparately && mGame >= EGame::EchoesDemo) {} void WriteInstance(IOutputStream& rOut, CScriptObject *pInstance); diff --git a/src/Core/Resource/Cooker/CTemplateWriter.cpp b/src/Core/Resource/Cooker/CTemplateWriter.cpp deleted file mode 100644 index 90ba206e..00000000 --- a/src/Core/Resource/Cooker/CTemplateWriter.cpp +++ /dev/null @@ -1,841 +0,0 @@ -#include "CTemplateWriter.h" -#include "CAreaCooker.h" -#include - -#include - -using namespace tinyxml2; -TString CTemplateWriter::smTemplatesDir = "../templates/"; - -CTemplateWriter::CTemplateWriter() -{ -} - -void CTemplateWriter::SavePropertyTemplate(IPropertyTemplate *pTemp) -{ - // Check for a source file in the template's hierarchy; that indicates it's part of a struct template, not a script template - TString SourceFile = pTemp->FindStructSource(); - - // Struct - if (!SourceFile.IsEmpty()) - { - CMasterTemplate *pMaster = pTemp->MasterTemplate(); - auto StructIt = pMaster->mStructTemplates.find(SourceFile); - - if (StructIt != pMaster->mStructTemplates.end()) - { - CStructTemplate *pStruct = StructIt->second; - CTemplateWriter::SaveStructTemplate(pStruct); - } - } - - // Script - else if (pTemp->ScriptTemplate()) - CTemplateWriter::SaveScriptTemplate(pTemp->ScriptTemplate()); - - // Error - else - Log::Error("Couldn't save property template " + pTemp->IDString(true) + "; no struct template source path or script template found"); -} - -void CTemplateWriter::SaveAllTemplates() -{ - // Create directory - std::list MasterList = CMasterTemplate::MasterList(); - FileUtil::MakeDirectory(smTemplatesDir); - - // Resave property list - SavePropertyList(); - - // Resave master templates - for (auto it = MasterList.begin(); it != MasterList.end(); it++) - SaveGameTemplates(*it); - - // Resave game list - XMLDocument GameList; - - XMLDeclaration *pDecl = GameList.NewDeclaration(); - GameList.LinkEndChild(pDecl); - - XMLElement *pBase = GameList.NewElement("GameList"); - pBase->SetAttribute("version", 4); - GameList.LinkEndChild(pBase); - - XMLElement *pProperties = GameList.NewElement("properties"); - pProperties->SetText("Properties.xml"); - pBase->LinkEndChild(pProperties); - - for (auto it = MasterList.begin(); it != MasterList.end(); it++) - { - CMasterTemplate *pMaster = *it; - - XMLElement *pGame = GameList.NewElement("game"); - pBase->LinkEndChild(pGame); - - XMLElement *pGameName = GameList.NewElement("name"); - pGameName->SetText(*pMaster->mGameName); - pGame->LinkEndChild(pGameName); - - XMLElement *pAreaVersion = GameList.NewElement("mrea"); - u32 VersionNumber = CAreaCooker::GetMREAVersion(pMaster->Game()); - pAreaVersion->SetText(*TString::HexString(VersionNumber, 2)); - pGame->LinkEndChild(pAreaVersion); - - XMLElement *pTempPath = GameList.NewElement("master"); - pTempPath->SetText(*pMaster->mSourceFile); - pGame->LinkEndChild(pTempPath); - } - - TString GameListName = smTemplatesDir + "GameList.xml"; - GameList.SaveFile(*GameListName); -} - -void CTemplateWriter::SaveGameTemplates(CMasterTemplate *pMaster) -{ - // Create directory - TString OutFile = smTemplatesDir + pMaster->mSourceFile; - TString OutDir = OutFile.GetFileDirectory(); - FileUtil::MakeDirectory(OutDir); - - // Resave script templates - for (auto it = pMaster->mTemplates.begin(); it != pMaster->mTemplates.end(); it++) - SaveScriptTemplate(it->second); - - // Resave struct templates - for (auto it = pMaster->mStructTemplates.begin(); it != pMaster->mStructTemplates.end(); it++) - SaveStructTemplate(it->second); - - // Resave master template - XMLDocument Master; - - XMLDeclaration *pDecl = Master.NewDeclaration(); - Master.LinkEndChild(pDecl); - - XMLElement *pBase = Master.NewElement("MasterTemplate"); - pBase->SetAttribute("version", 4); - Master.LinkEndChild(pBase); - - // Write versions - if (!pMaster->mGameVersions.empty()) - { - XMLElement *pVersionsBlock = Master.NewElement("versions"); - pBase->LinkEndChild(pVersionsBlock); - - for (auto it = pMaster->mGameVersions.begin(); it != pMaster->mGameVersions.end(); it++) - { - XMLElement *pVersion = Master.NewElement("version"); - pVersion->SetText(*(*it)); - pVersionsBlock->LinkEndChild(pVersion); - } - } - - // Write script objects - XMLElement *pObjects = Master.NewElement("objects"); - pBase->LinkEndChild(pObjects); - - for (auto it = pMaster->mTemplates.begin(); it != pMaster->mTemplates.end(); it++) - { - u32 ObjID = (it->second)->ObjectID(); - - TString StrID; - if (ObjID <= 0xFF) - StrID = TString::HexString(ObjID, 2); - else - StrID = CFourCC(ObjID).ToString(); - - XMLElement *pObj = Master.NewElement("object"); - pObj->SetAttribute("ID", *StrID); - pObj->SetAttribute("template", *(it->second)->mSourceFile); - pObjects->LinkEndChild(pObj); - } - - // Write script states/messages - for (u32 iType = 0; iType < 2; iType++) - { - TString Type = (iType == 0 ? "state" : "message"); - XMLElement *pElem = Master.NewElement(*(Type + "s")); - pBase->LinkEndChild(pElem); - - u32 Num = (iType == 0 ? pMaster->NumStates() : pMaster->NumMessages()); - - for (u32 iScr = 0; iScr < Num; iScr++) - { - u32 ID; - TString Name; - - if (iType == 0) - { - SState State = pMaster->StateByIndex(iScr); - ID = State.ID; - Name = State.Name; - } - else - { - SMessage Message = pMaster->MessageByIndex(iScr); - ID = Message.ID; - Name = Message.Name; - } - - TString StrID; - if (ID <= 0xFF) StrID = TString::HexString(ID, 2); - else StrID = CFourCC(ID).ToString(); - - XMLElement *pSubElem = Master.NewElement(*Type); - pSubElem->SetAttribute("ID", *StrID); - pSubElem->SetAttribute("name", *Name); - pElem->LinkEndChild(pSubElem); - } - } - - // Save file - Master.SaveFile(*OutFile); -} - -void CTemplateWriter::SavePropertyList() -{ - // Create XML - XMLDocument List; - - XMLDeclaration *pDecl = List.NewDeclaration(); - List.LinkEndChild(pDecl); - - XMLElement *pBase = List.NewElement("Properties"); - pBase->SetAttribute("version", 4); - List.LinkEndChild(pBase); - - // Write properties - for (auto it = CMasterTemplate::smPropertyNames.begin(); it != CMasterTemplate::smPropertyNames.end(); it++) - { - u32 ID = it->first; - TString Name = it->second; - - XMLElement *pElem = List.NewElement("property"); - pElem->SetAttribute("ID", *TString::HexString(ID)); - pElem->SetAttribute("name", *Name); - pBase->LinkEndChild(pElem); - } - - TString OutFile = smTemplatesDir + "Properties.xml"; - List.SaveFile(*OutFile); -} - -void CTemplateWriter::SaveScriptTemplate(CScriptTemplate *pTemp) -{ - CMasterTemplate *pMaster = pTemp->MasterTemplate(); - - // Create directory - TString OutFile = smTemplatesDir + pMaster->GetDirectory() + pTemp->mSourceFile; - TString OutDir = OutFile.GetFileDirectory(); - FileUtil::MakeDirectory(*OutDir); - - // Create new document - XMLDocument ScriptXML; - - XMLDeclaration *pDecl = ScriptXML.NewDeclaration(); - ScriptXML.LinkEndChild(pDecl); - - // Base element - XMLElement *pRoot = ScriptXML.NewElement("ScriptTemplate"); - pRoot->SetAttribute("version", 4); - ScriptXML.LinkEndChild(pRoot); - - // Write object name - XMLElement *pName = ScriptXML.NewElement("name"); - pName->SetText(*pTemp->Name()); - pRoot->LinkEndChild(pName); - - // Write modules - if (!pTemp->mModules.empty()) - { - XMLElement *pModules = ScriptXML.NewElement("modules"); - pRoot->LinkEndChild(pModules); - - for (u32 iMod = 0; iMod < pTemp->mModules.size(); iMod++) - { - XMLElement *pModule = ScriptXML.NewElement("module"); - pModule->SetText(*pTemp->mModules[iMod]); - pModules->LinkEndChild(pModule); - } - } - - // Write properties - SaveProperties(&ScriptXML, pRoot, pTemp->mpBaseStruct); - - // States/Messages [todo] - XMLElement *pStates = ScriptXML.NewElement("states"); - pRoot->LinkEndChild(pStates); - - XMLElement *pMessages = ScriptXML.NewElement("messages"); - pRoot->LinkEndChild(pMessages); - - // Write editor properties - XMLElement *pEditor = ScriptXML.NewElement("editor"); - pRoot->LinkEndChild(pEditor); - - // Editor Properties - XMLElement *pEditorProperties = ScriptXML.NewElement("properties"); - pEditor->LinkEndChild(pEditorProperties); - - TString PropNames[6] = { - "InstanceName", "Position", "Rotation", - "Scale", "Active", "LightParameters" - }; - - TIDString *pPropStrings[6] = { - &pTemp->mNameIDString, &pTemp->mPositionIDString, &pTemp->mRotationIDString, - &pTemp->mScaleIDString, &pTemp->mActiveIDString, &pTemp->mLightParametersIDString - }; - - for (u32 iProp = 0; iProp < 6; iProp++) - { - if (!pPropStrings[iProp]->IsEmpty()) - { - XMLElement *pProperty = ScriptXML.NewElement("property"); - pProperty->SetAttribute("name", *PropNames[iProp]); - pProperty->SetAttribute("ID", **pPropStrings[iProp]); - pEditorProperties->LinkEndChild(pProperty); - } - } - - // Editor Assets - XMLElement *pAssets = ScriptXML.NewElement("assets"); - pEditor->LinkEndChild(pAssets); - - for (auto it = pTemp->mAssets.begin(); it != pTemp->mAssets.end(); it++) - { - TString Source = (it->AssetSource == CScriptTemplate::SEditorAsset::eFile ? "file" : "property"); - TString Type; - - switch (it->AssetType) - { - case CScriptTemplate::SEditorAsset::eModel: Type = "model"; break; - case CScriptTemplate::SEditorAsset::eAnimParams: Type = "animparams"; break; - case CScriptTemplate::SEditorAsset::eBillboard: Type = "billboard"; break; - case CScriptTemplate::SEditorAsset::eCollision: Type = "collision"; break; - } - - s32 Force = -1; - if (it->AssetType == CScriptTemplate::SEditorAsset::eAnimParams) - Force = it->ForceNodeIndex; - - XMLElement *pAsset = ScriptXML.NewElement(*Type); - pAsset->SetAttribute("source", *Source); - if (Force >= 0) pAsset->SetAttribute("force", *TString::FromInt32(Force, 0, 10)); - pAsset->SetText(*it->AssetLocation); - pAssets->LinkEndChild(pAsset); - } - - // Attachments - if (!pTemp->mAttachments.empty()) - { - XMLElement *pAttachments = ScriptXML.NewElement("attachments"); - pEditor->LinkEndChild(pAttachments); - - for (auto it = pTemp->mAttachments.begin(); it != pTemp->mAttachments.end(); it++) - { - XMLElement *pAttachment = ScriptXML.NewElement("attachment"); - pAttachment->SetAttribute("propertyID", *it->AttachProperty); - pAttachment->SetAttribute("locator", *it->LocatorName); - pAttachments->LinkEndChild(pAttachment); - - // Sub-properties - if (it->AttachType != eAttach) - { - XMLElement *pAttachType = ScriptXML.NewElement("attach_type"); - pAttachType->SetText("follow"); - pAttachment->LinkEndChild(pAttachType); - } - } - } - - // Preview Scale - if (pTemp->mPreviewScale != 1.f) - { - XMLElement *pPreviewScale = ScriptXML.NewElement("preview_scale"); - pPreviewScale->SetText(*TString::FromFloat(pTemp->mPreviewScale)); - pEditor->LinkEndChild(pPreviewScale); - } - - // Rot/Scale Type - XMLElement *pRotType = ScriptXML.NewElement("rotation_type"); - pEditor->LinkEndChild(pRotType); - pRotType->SetText(pTemp->mRotationType == CScriptTemplate::eRotationEnabled ? "enabled" : "disabled"); - - XMLElement *pScaleType = ScriptXML.NewElement("scale_type"); - pEditor->LinkEndChild(pScaleType); - - if (pTemp->mScaleType != CScriptTemplate::eScaleVolume) - pScaleType->SetText(pTemp->mScaleType == CScriptTemplate::eScaleEnabled ? "enabled" : "disabled"); - - else - { - pScaleType->SetText("volume"); - - // Volume Preview - XMLElement *pVolume = ScriptXML.NewElement("preview_volume"); - pEditor->LinkEndChild(pVolume); - - // Enum -> String conversion lambda to avoid redundant code - auto GetVolumeString = [](EVolumeShape shape) -> TString - { - switch (shape) - { - case eBoxShape: return "Box"; - case eAxisAlignedBoxShape: return "AxisAlignedBox"; - case eEllipsoidShape: return "Ellipsoid"; - case eCylinderShape: return "Cylinder"; - case eConditionalShape: return "Conditional"; - default: return "INVALID"; - } - }; - - pVolume->SetAttribute("shape", *GetVolumeString(pTemp->mVolumeShape)); - - if (pTemp->mVolumeScale != 1.f) - pVolume->SetAttribute("scale", pTemp->mVolumeScale); - - if (pTemp->mVolumeShape == eConditionalShape) - { - pVolume->SetAttribute("propertyID", *pTemp->mVolumeConditionIDString); - - // Find conditional test property - IPropertyTemplate *pProp = pTemp->mpBaseStruct->PropertyByIDString(pTemp->mVolumeConditionIDString); - - // Write conditions - for (auto it = pTemp->mVolumeConditions.begin(); it != pTemp->mVolumeConditions.end(); it++) - { - // Value should be an integer, or a boolean condition - TString StrVal; - - if (pProp->Type() == eBoolProperty) - StrVal = (it->Value == 1 ? "true" : "false"); - else - StrVal = TString::HexString((u32) it->Value, (it->Value > 0xFF ? 8 : 2)); - - XMLElement *pCondition = ScriptXML.NewElement("condition"); - pCondition->SetAttribute("value", *StrVal); - pCondition->SetAttribute("shape", *GetVolumeString(it->Shape)); - if (it->Scale != 1.f) pCondition->SetAttribute("scale", it->Scale); - pVolume->LinkEndChild(pCondition); - } - } - } - - // Write to file - ScriptXML.SaveFile(*OutFile); -} - -void CTemplateWriter::SaveStructTemplate(CStructTemplate *pTemp) -{ - // Create directory - CMasterTemplate *pMaster = pTemp->MasterTemplate(); - TString OutFile = smTemplatesDir + pMaster->GetDirectory() + pTemp->mSourceFile; - TString OutDir = OutFile.GetFileDirectory(); - TString Name = OutFile.GetFileName(false); - FileUtil::MakeDirectory(OutDir); - - // Create new document and write struct properties to it - XMLDocument StructXML; - - XMLDeclaration *pDecl = StructXML.NewDeclaration(); - StructXML.LinkEndChild(pDecl); - - XMLElement *pRoot = StructXML.NewElement("struct"); - pRoot->SetAttribute("name", *Name); - pRoot->SetAttribute("type", (pTemp->IsSingleProperty() ? "single" : "multi")); - StructXML.LinkEndChild(pRoot); - - SaveProperties(&StructXML, pRoot, pTemp); - StructXML.SaveFile(*OutFile); -} - -void CTemplateWriter::SaveEnumTemplate(CEnumTemplate *pTemp) -{ - // Create directory - CMasterTemplate *pMaster = pTemp->MasterTemplate(); - TString OutFile = smTemplatesDir + pMaster->GetDirectory() + pTemp->mSourceFile; - TString OutDir = OutFile.GetFileDirectory(); - TString Name = OutFile.GetFileName(false); - FileUtil::MakeDirectory(OutDir); - - // Create new document and write enumerators to it - XMLDocument EnumXML; - - XMLDeclaration *pDecl = EnumXML.NewDeclaration(); - EnumXML.LinkEndChild(pDecl); - - XMLElement *pRoot = EnumXML.NewElement("enum"); - pRoot->SetAttribute("name", *Name); - EnumXML.LinkEndChild(pRoot); - - SaveEnumerators(&EnumXML, pRoot, pTemp); - EnumXML.SaveFile(*OutFile); -} - -void CTemplateWriter::SaveBitfieldTemplate(CBitfieldTemplate *pTemp) -{ - // Create directory - CMasterTemplate *pMaster = pTemp->MasterTemplate(); - TString OutFile = smTemplatesDir + pMaster->GetDirectory() + pTemp->mSourceFile; - TString OutDir = OutFile.GetFileDirectory(); - TString Name = pTemp->mSourceFile.GetFileName(false); - FileUtil::MakeDirectory(OutDir); - - // Create new document and write enumerators to it - XMLDocument BitfieldXML; - - XMLDeclaration *pDecl = BitfieldXML.NewDeclaration(); - BitfieldXML.LinkEndChild(pDecl); - - XMLElement *pRoot = BitfieldXML.NewElement("bitfield"); - pRoot->SetAttribute("name", *Name); - BitfieldXML.LinkEndChild(pRoot); - - SaveBitFlags(&BitfieldXML, pRoot, pTemp); - BitfieldXML.SaveFile(*OutFile); -} - -void CTemplateWriter::SaveProperties(XMLDocument *pDoc, XMLElement *pParent, CStructTemplate *pTemp) -{ - // Create base element - XMLElement *pPropsBlock = pDoc->NewElement("properties"); - pParent->LinkEndChild(pPropsBlock); - - for (u32 iProp = 0; iProp < pTemp->Count(); iProp++) - { - // Get ID - IPropertyTemplate *pProp = pTemp->PropertyByIndex(iProp); - u32 ID = pProp->PropertyID(); - TString StrID = TString::HexString(ID, (ID > 0xFF ? 8 : 2)); - - // Create element - XMLElement *pElem; - - if (pProp->Type() == eStructProperty) - pElem = pDoc->NewElement("struct"); - else if (pProp->Type() == eEnumProperty) - pElem = pDoc->NewElement("enum"); - else if (pProp->Type() == eBitfieldProperty) - pElem = pDoc->NewElement("bitfield"); - else if (pProp->Type() == eArrayProperty) - pElem = pDoc->NewElement("array"); - else - pElem = pDoc->NewElement("property"); - - pPropsBlock->LinkEndChild(pElem); - - // Set common property parameters, starting with ID - pElem->SetAttribute("ID", *StrID); - - // Name - TString Name = pProp->Name(); - - if (pProp->Game() >= eEchoesDemo && ID > 0xFF) - { - TString MasterName = CMasterTemplate::PropertyName(ID); - - if (Name != MasterName) - pElem->SetAttribute("name", *Name); - } - - else - pElem->SetAttribute("name", *Name); - - // Type - if (pProp->Type() == eStructProperty) - { - CStructTemplate *pStruct = static_cast(pProp); - - if (pStruct->mSourceFile.IsEmpty()) - pElem->SetAttribute("type", (pStruct->mIsSingleProperty ? "single" : "multi")); - } - - else if (TString(pElem->Name()) == "property") - pElem->SetAttribute("type", *PropEnumToPropString(pProp->Type())); - - // Versions - CMasterTemplate *pMaster = pProp->MasterTemplate(); - u32 NumVersions = pProp->mAllowedVersions.size(); - - if (NumVersions > 0 && NumVersions != pMaster->mGameVersions.size()) - { - XMLElement *pVersions = pDoc->NewElement("versions"); - pElem->LinkEndChild(pVersions); - - for (u32 iVer = 0; iVer < pMaster->mGameVersions.size(); iVer++) - { - if (pProp->IsInVersion(iVer)) - { - XMLElement *pVersion = pDoc->NewElement("version"); - pVersion->SetText(*pMaster->mGameVersions[iVer]); - pVersions->LinkEndChild(pVersion); - } - } - } - - // Default - if (pProp->CanHaveDefault() && pProp->Game() >= eEchoesDemo) - { - XMLElement *pDefault = pDoc->NewElement("default"); - pDefault->SetText(*pProp->DefaultToString()); - pElem->LinkEndChild(pDefault); - } - - // Description - if (!pProp->Description().IsEmpty()) - { - XMLElement *pDesc = pDoc->NewElement("description"); - pDesc->SetText(*pProp->Description()); - pElem->LinkEndChild(pDesc); - } - - // Range - if (pProp->IsNumerical() && pProp->HasValidRange()) - { - XMLElement *pRange = pDoc->NewElement("range"); - pRange->SetText(*pProp->RangeToString()); - pElem->LinkEndChild(pRange); - } - - // Suffix - if (pProp->IsNumerical()) - { - TString Suffix = pProp->Suffix(); - - if (!Suffix.IsEmpty()) - { - XMLElement *pSuffix = pDoc->NewElement("suffix"); - pSuffix->SetText(*Suffix); - pElem->LinkEndChild(pSuffix); - } - } - - // Cook Pref - ECookPreference CookPref = pProp->CookPreference(); - - if (CookPref != eNoCookPreference) - { - XMLElement *pCookPref = pDoc->NewElement("cook_pref"); - pCookPref->SetText(CookPref == eAlwaysCook ? "always" : "never"); - pElem->LinkEndChild(pCookPref); - } - - // Asset-specific parameters - if (pProp->Type() == eAssetProperty) - { - CAssetTemplate *pAsset = static_cast(pProp); - const CResTypeFilter& rkFilter = pAsset->TypeFilter(); - TString ExtensionsString = rkFilter.ToString(); - if (ExtensionsString.IsEmpty()) ExtensionsString = "UNKN"; - pElem->SetAttribute("extensions", *ExtensionsString); - } - - // Enum-specific parameters - else if (pProp->Type() == eEnumProperty) - { - CEnumTemplate *pEnum = static_cast(pProp); - - if (pEnum->mSourceFile.IsEmpty()) - SaveEnumerators(pDoc, pElem, pEnum); - - else - { - SaveEnumTemplate(pEnum); - pElem->SetAttribute("template", *pEnum->mSourceFile); - } - } - - // Bitfield-specific parameters - else if (pProp->Type() == eBitfieldProperty) - { - CBitfieldTemplate *pBitfield = static_cast(pProp); - - if (pBitfield->mSourceFile.IsEmpty()) - SaveBitFlags(pDoc, pElem, pBitfield); - - else - { - SaveBitfieldTemplate(pBitfield); - pElem->SetAttribute("template", *pBitfield->mSourceFile); - } - } - - // Struct/array-specific parameters - else if (pProp->Type() == eStructProperty || pProp->Type() == eArrayProperty) - { - // Element Name - if (pProp->Type() == eArrayProperty) - { - CArrayTemplate *pArray = static_cast(pProp); - - if (!pArray->ElementName().IsEmpty()) - { - XMLElement *pElement = pDoc->NewElement("element_name"); - pElement->SetText(*static_cast(pProp)->ElementName()); - pElem->LinkEndChild(pElement); - } - } - - // Sub-properties - CStructTemplate *pStruct = static_cast(pProp); - - if (pStruct->mSourceFile.IsEmpty()) - SaveProperties(pDoc, pElem, pStruct); - - else - { - CStructTemplate *pOriginal = pMaster->StructAtSource(pStruct->mSourceFile); - - if (pOriginal) - SavePropertyOverrides(pDoc, pElem, pStruct, pOriginal); - - pElem->SetAttribute("template", *pStruct->mSourceFile); - } - } - } -} - -void CTemplateWriter::SavePropertyOverrides(XMLDocument *pDoc, XMLElement *pParent, CStructTemplate *pStruct, CStructTemplate *pOriginal) -{ - if (!pStruct->StructDataMatches(pOriginal)) - { - // Create base element - XMLElement *pPropsBlock = pDoc->NewElement("properties"); - pParent->LinkEndChild(pPropsBlock); - - for (u32 iProp = 0; iProp < pStruct->Count(); iProp++) - { - IPropertyTemplate *pProp = pStruct->PropertyByIndex(iProp); - IPropertyTemplate *pSource = pOriginal->PropertyByIndex(iProp); - - if (!pProp->Matches(pSource)) - { - // Create element - XMLElement *pElem; - - if (pProp->Type() == eStructProperty) - pElem = pDoc->NewElement("struct"); - else if (pProp->Type() == eEnumProperty) - pElem = pDoc->NewElement("enum"); - else if (pProp->Type() == eBitfieldProperty) - pElem = pDoc->NewElement("bitfield"); - else if (pProp->Type() == eArrayProperty) - pElem = pDoc->NewElement("array"); - else - pElem = pDoc->NewElement("property"); - - pPropsBlock->LinkEndChild(pElem); - - // ID - u32 ID = pProp->PropertyID(); - pElem->SetAttribute("ID", *TString::HexString(pProp->PropertyID(), (ID > 0xFF ? 8 : 2))); - - // Name - if (pProp->Name() != pSource->Name()) - pElem->SetAttribute("name", *pProp->Name()); - - // Default - if (pProp->CanHaveDefault() && !pProp->RawDefaultValue()->Matches(pSource->RawDefaultValue())) - { - XMLElement *pDefault = pDoc->NewElement("default"); - pDefault->SetText(*pProp->DefaultToString()); - pElem->LinkEndChild(pDefault); - } - - // Description - if (pProp->Description() != pSource->Description()) - { - XMLElement *pDesc = pDoc->NewElement("description"); - pDesc->SetText(*pProp->Description()); - pElem->LinkEndChild(pDesc); - } - - // Range - if (pProp->IsNumerical()) - { - TString Range = pProp->RangeToString(); - - if (Range != pSource->RangeToString()) - { - XMLElement *pRange = pDoc->NewElement("range"); - pRange->SetText(*Range); - pElem->LinkEndChild(pRange); - } - } - - // Suffix - if (pProp->Suffix() != pSource->Suffix()) - { - XMLElement *pSuffix = pDoc->NewElement("suffix"); - pSuffix->SetText(*pProp->Suffix()); - pElem->LinkEndChild(pSuffix); - } - - // Cook Pref - if (pProp->CookPreference() != pSource->CookPreference()) - { - XMLElement *pCookPref = pDoc->NewElement("cook_pref"); - - TString PrefStr; - if (pProp->CookPreference() == eAlwaysCook) PrefStr = "always"; - else if (pProp->CookPreference() == eNeverCook) PrefStr = "never"; - else PrefStr = "none"; - - pCookPref->SetText(*PrefStr); - pElem->LinkEndChild(pCookPref); - } - - // Asset-specific parameters - if (pProp->Type() == eAssetProperty) - { - CAssetTemplate *pAsset = static_cast(pProp); - CAssetTemplate *pSourceAsset = static_cast(pSource); - - if (pAsset->TypeFilter() != pSourceAsset->TypeFilter()) - { - TString ExtensionsString = pAsset->TypeFilter().ToString(); - if (ExtensionsString.IsEmpty()) ExtensionsString = "UNKN"; - pElem->SetAttribute("extensions", *ExtensionsString); - } - } - - // Struct/array-specific parameters - else if (pProp->Type() == eStructProperty || pProp->Type() == eArrayProperty) - { - CStructTemplate *pStruct = static_cast(pProp); - CStructTemplate *pSourceStruct = static_cast(pSource); - SavePropertyOverrides(pDoc, pElem, pStruct, pSourceStruct); - } - } - } - } -} - -void CTemplateWriter::SaveEnumerators(XMLDocument *pDoc, XMLElement *pParent, CEnumTemplate *pTemp) -{ - XMLElement *pEnumerators = pDoc->NewElement("enumerators"); - pParent->LinkEndChild(pEnumerators); - - for (u32 iEnum = 0; iEnum < pTemp->NumEnumerators(); iEnum++) - { - XMLElement *pElem = pDoc->NewElement("enumerator"); - u32 EnumerID = pTemp->EnumeratorID(iEnum); - pElem->SetAttribute("ID", *TString::HexString(EnumerID, (EnumerID > 0xFF ? 8 : 2))); - pElem->SetAttribute("name", *pTemp->EnumeratorName(iEnum)); - pEnumerators->LinkEndChild(pElem); - } -} - -void CTemplateWriter::SaveBitFlags(XMLDocument *pDoc, XMLElement *pParent, CBitfieldTemplate *pTemp) -{ - XMLElement *pFlags = pDoc->NewElement("flags"); - pParent->LinkEndChild(pFlags); - - for (u32 iFlag = 0; iFlag < pTemp->NumFlags(); iFlag++) - { - XMLElement *pElem = pDoc->NewElement("flag"); - pElem->SetAttribute("mask", *TString::HexString(pTemp->FlagMask(iFlag))); - pElem->SetAttribute("name", *pTemp->FlagName(iFlag)); - pFlags->LinkEndChild(pElem); - } -} diff --git a/src/Core/Resource/Cooker/CTemplateWriter.h b/src/Core/Resource/Cooker/CTemplateWriter.h deleted file mode 100644 index 156e343a..00000000 --- a/src/Core/Resource/Cooker/CTemplateWriter.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef CTEMPLATEWRITER_H -#define CTEMPLATEWRITER_H - -#include "Core/Resource/Script/CMasterTemplate.h" -#include "Core/Resource/Script/CScriptTemplate.h" -#include - -class CTemplateWriter -{ - CTemplateWriter(); - static TString smTemplatesDir; - -public: - static void SavePropertyTemplate(IPropertyTemplate *pTemp); - static void SaveAllTemplates(); - static void SaveGameTemplates(CMasterTemplate *pMaster); - static void SavePropertyList(); - static void SaveScriptTemplate(CScriptTemplate *pTemp); - static void SaveStructTemplate(CStructTemplate *pTemp); - static void SaveEnumTemplate(CEnumTemplate *pTemp); - static void SaveBitfieldTemplate(CBitfieldTemplate *pTemp); - static void SaveProperties(tinyxml2::XMLDocument *pDoc, tinyxml2::XMLElement *pParent, CStructTemplate *pTemp); - static void SavePropertyOverrides(tinyxml2::XMLDocument *pDoc, tinyxml2::XMLElement *pParent, CStructTemplate *pStruct, CStructTemplate *pOriginal); - static void SaveEnumerators(tinyxml2::XMLDocument *pDoc, tinyxml2::XMLElement *pParent, CEnumTemplate *pTemp); - static void SaveBitFlags(tinyxml2::XMLDocument *pDoc, tinyxml2::XMLElement *pParent, CBitfieldTemplate *pTemp); -}; - -#endif // CTEMPLATEWRITER_H diff --git a/src/Core/Resource/Cooker/CWorldCooker.cpp b/src/Core/Resource/Cooker/CWorldCooker.cpp index 19aedeac..3ec30206 100644 --- a/src/Core/Resource/Cooker/CWorldCooker.cpp +++ b/src/Core/Resource/Cooker/CWorldCooker.cpp @@ -22,15 +22,15 @@ bool CWorldCooker::CookMLVL(CWorld *pWorld, IOutputStream& rMLVL) WorldNameID.Write(rMLVL); - if (Game == eEchoesDemo || Game == eEchoes) + if (Game == EGame::EchoesDemo || Game == EGame::Echoes) { DarkWorldNameID.Write(rMLVL); } - if (Game >= eEchoesDemo && Game <= eCorruption) + if (Game >= EGame::EchoesDemo && Game <= EGame::Corruption) { rMLVL.WriteLong(pWorld->mTempleKeyWorldIndex); } - if (Game == eReturns) + if (Game == EGame::DKCReturns) { const CWorld::STimeAttackData& rkData = pWorld->mTimeAttackData; rMLVL.WriteBool(rkData.HasTimeAttack); @@ -49,7 +49,7 @@ bool CWorldCooker::CookMLVL(CWorld *pWorld, IOutputStream& rMLVL) DefaultSkyID.Write(rMLVL); // Memory Relays - if (Game == ePrime) + if (Game == EGame::Prime) { rMLVL.WriteLong( pWorld->mMemoryRelays.size() ); @@ -65,7 +65,7 @@ bool CWorldCooker::CookMLVL(CWorld *pWorld, IOutputStream& rMLVL) // Areas rMLVL.WriteLong(pWorld->mAreas.size()); - if (Game <= ePrime) rMLVL.WriteLong(1); // Unknown + if (Game <= EGame::Prime) rMLVL.WriteLong(1); // Unknown std::set AudioGroups; for (u32 iArea = 0; iArea < pWorld->mAreas.size(); iArea++) @@ -83,7 +83,7 @@ bool CWorldCooker::CookMLVL(CWorld *pWorld, IOutputStream& rMLVL) rArea.AreaID.Write(rMLVL); // Attached Areas - if (Game <= eCorruption) + if (Game <= EGame::Corruption) { rMLVL.WriteLong( rArea.AttachedAreaIDs.size() ); @@ -92,7 +92,7 @@ bool CWorldCooker::CookMLVL(CWorld *pWorld, IOutputStream& rMLVL) } // Dependencies - if (Game <= eEchoes) + if (Game <= EGame::Echoes) { std::list Dependencies; std::list LayerDependsOffsets; @@ -117,7 +117,7 @@ bool CWorldCooker::CookMLVL(CWorld *pWorld, IOutputStream& rMLVL) } // Docks - if (Game <= eCorruption) + if (Game <= EGame::Corruption) { rMLVL.WriteLong( rArea.Docks.size() ); @@ -141,7 +141,7 @@ bool CWorldCooker::CookMLVL(CWorld *pWorld, IOutputStream& rMLVL) } // Module Dependencies - if (Game == eEchoesDemo || Game == eEchoes) + if (Game == EGame::EchoesDemo || Game == EGame::Echoes) { std::vector ModuleNames; std::vector ModuleLayerOffsets; @@ -160,15 +160,15 @@ bool CWorldCooker::CookMLVL(CWorld *pWorld, IOutputStream& rMLVL) } // Unknown - if (Game == eReturns) + if (Game == EGame::DKCReturns) rMLVL.WriteLong(0); // Internal Name - if (Game >= eEchoesDemo) + if (Game >= EGame::EchoesDemo) rMLVL.WriteString(rArea.InternalName); } - if (Game <= eCorruption) + if (Game <= EGame::Corruption) { // World Map CAssetID MapWorldID = pWorld->mpMapWorld ? pWorld->mpMapWorld->ID() : CAssetID::skInvalidID32; @@ -180,7 +180,7 @@ bool CWorldCooker::CookMLVL(CWorld *pWorld, IOutputStream& rMLVL) } // Audio Groups - if (Game <= ePrime) + if (Game <= EGame::Prime) { // Create sorted list of audio groups (sort by group ID) std::vector SortedAudioGroups; @@ -244,7 +244,7 @@ bool CWorldCooker::CookMLVL(CWorld *pWorld, IOutputStream& rMLVL) rMLVL.WriteString(LayerNames[iLyr]); // Layer Saved State IDs - if (Game >= eCorruption) + if (Game >= EGame::Corruption) { rMLVL.WriteLong(LayerStateIDs.size()); @@ -265,12 +265,12 @@ u32 CWorldCooker::GetMLVLVersion(EGame Version) { switch (Version) { - case ePrimeDemo: return 0xD; - case ePrime: return 0x11; - case eEchoesDemo: return 0x14; - case eEchoes: return 0x17; - case eCorruption: return 0x19; - case eReturns: return 0x1B; + case EGame::PrimeDemo: return 0xD; + case EGame::Prime: return 0x11; + case EGame::EchoesDemo: return 0x14; + case EGame::Echoes: return 0x17; + case EGame::Corruption: return 0x19; + case EGame::DKCReturns: return 0x1B; default: return 0; } } diff --git a/src/Core/Resource/EResType.h b/src/Core/Resource/EResType.h index 0ee52ed1..d8f54bbd 100644 --- a/src/Core/Resource/EResType.h +++ b/src/Core/Resource/EResType.h @@ -74,5 +74,8 @@ enum EResType eInvalidResType = -1 }; +// Defined in CResTypeInfo.cpp +void Serialize(IArchive& rArc, EResType& rType); + #endif // ERESTYPE diff --git a/src/Core/Resource/Factory/CAnimEventLoader.cpp b/src/Core/Resource/Factory/CAnimEventLoader.cpp index 00c2a9f4..a0072c82 100644 --- a/src/Core/Resource/Factory/CAnimEventLoader.cpp +++ b/src/Core/Resource/Factory/CAnimEventLoader.cpp @@ -47,9 +47,9 @@ s32 CAnimEventLoader::LoadEventBase(IInputStream& rEVNT) { rEVNT.Skip(0x2); rEVNT.ReadString(); - rEVNT.Skip(mGame < eCorruptionProto ? 0x13 : 0x17); + rEVNT.Skip(mGame < EGame::CorruptionProto ? 0x13 : 0x17); s32 CharacterIndex = rEVNT.ReadLong(); - rEVNT.Skip(mGame < eCorruptionProto ? 0x4 : 0x18); + rEVNT.Skip(mGame < EGame::CorruptionProto ? 0x4 : 0x18); return CharacterIndex; } @@ -69,13 +69,13 @@ void CAnimEventLoader::LoadUserEvent(IInputStream& rEVNT) void CAnimEventLoader::LoadEffectEvent(IInputStream& rEVNT) { s32 CharIndex = LoadEventBase(rEVNT); - rEVNT.Skip(mGame < eCorruptionProto ? 0x8 : 0x4); + rEVNT.Skip(mGame < EGame::CorruptionProto ? 0x8 : 0x4); CAssetID ParticleID(rEVNT, mGame); mpEventData->AddEvent(CharIndex, ParticleID); - if (mGame <= ePrime) + if (mGame <= EGame::Prime) rEVNT.ReadString(); - else if (mGame <= eEchoes) + else if (mGame <= EGame::Echoes) rEVNT.Skip(0x4); rEVNT.Skip(0x8); @@ -86,11 +86,11 @@ void CAnimEventLoader::LoadSoundEvent(IInputStream& rEVNT) s32 CharIndex = LoadEventBase(rEVNT); // Metroid Prime 1/2 - if (mGame <= eEchoes) + if (mGame <= EGame::Echoes) { u32 SoundID = rEVNT.ReadLong() & 0xFFFF; rEVNT.Skip(0x8); - if (mGame >= eEchoes) rEVNT.Skip(0xC); + if (mGame >= EGame::Echoes) rEVNT.Skip(0xC); if (SoundID != 0xFFFF) { @@ -134,7 +134,7 @@ CAnimEventData* CAnimEventLoader::LoadEVNT(IInputStream& rEVNT, CResourceEntry * { CAnimEventLoader Loader; Loader.mpEventData = new CAnimEventData(pEntry); - Loader.mGame = ePrime; + Loader.mGame = EGame::Prime; Loader.LoadEvents(rEVNT); return Loader.mpEventData; } @@ -143,7 +143,7 @@ CAnimEventData* CAnimEventLoader::LoadAnimSetEvents(IInputStream& rANCS) { CAnimEventLoader Loader; Loader.mpEventData = new CAnimEventData(); - Loader.mGame = eEchoes; + Loader.mGame = EGame::Echoes; Loader.LoadEvents(rANCS); return Loader.mpEventData; } @@ -152,7 +152,7 @@ CAnimEventData* CAnimEventLoader::LoadCorruptionCharacterEventSet(IInputStream& { CAnimEventLoader Loader; Loader.mpEventData = new CAnimEventData(); - Loader.mGame = eCorruption; + Loader.mGame = EGame::Corruption; // Read event set header rCHAR.Skip(0x4); // Skip animation ID diff --git a/src/Core/Resource/Factory/CAnimSetLoader.cpp b/src/Core/Resource/Factory/CAnimSetLoader.cpp index 9bf2ffed..d505b92f 100644 --- a/src/Core/Resource/Factory/CAnimSetLoader.cpp +++ b/src/Core/Resource/Factory/CAnimSetLoader.cpp @@ -116,8 +116,8 @@ CAnimSet* CAnimSetLoader::LoadReturnsCHAR(IInputStream& rCHAR) for (u32 ModelIdx = 0; ModelIdx < NumModels; ModelIdx++) { rCHAR.ReadString(); - CAssetID ModelID(rCHAR, eReturns); - CAssetID SkinID(rCHAR, eReturns); + CAssetID ModelID(rCHAR, EGame::DKCReturns); + CAssetID SkinID(rCHAR, EGame::DKCReturns); rCHAR.Skip(0x18); if (ModelIdx == 0) @@ -138,7 +138,7 @@ CAnimSet* CAnimSetLoader::LoadReturnsCHAR(IInputStream& rCHAR) for (u32 AnimIdx = 0; AnimIdx < NumAnims; AnimIdx++) { TString AnimName = rCHAR.ReadString(); - CAssetID AnimID(rCHAR, eReturns); + CAssetID AnimID(rCHAR, EGame::DKCReturns); rCHAR.Skip(0x25); rChar.DKDependencies.push_back(AnimID); @@ -229,7 +229,7 @@ CAnimSet* CAnimSetLoader::LoadReturnsCHAR(IInputStream& rCHAR) for (u32 ResIdx = 0; ResIdx < NumResources; ResIdx++) { - CAssetID ResID(rCHAR, eReturns); + CAssetID ResID(rCHAR, EGame::DKCReturns); rCHAR.Skip(3); rChar.DKDependencies.push_back(ResID); } @@ -293,7 +293,7 @@ void CAnimSetLoader::LoadParticleResourceData(IInputStream& rFile, SSetCharacter for (u32 iSwoosh = 0; iSwoosh < SwooshCount; iSwoosh++) pChar->SwooshParticles.push_back( CAssetID(rFile, mGame) ); - if (CharVersion >= 6 && mGame <= eEchoes) rFile.Seek(0x4, SEEK_CUR); + if (CharVersion >= 6 && mGame <= EGame::Echoes) rFile.Seek(0x4, SEEK_CUR); u32 ElectricCount = rFile.ReadLong(); pChar->ElectricParticles.reserve(ElectricCount); @@ -301,7 +301,7 @@ void CAnimSetLoader::LoadParticleResourceData(IInputStream& rFile, SSetCharacter for (u32 iElec = 0; iElec < ElectricCount; iElec++) pChar->ElectricParticles.push_back( CAssetID(rFile, mGame) ); - if (mGame >= eEchoes) + if (mGame >= EGame::Echoes) { u32 SpawnCount = rFile.ReadLong(); pChar->SpawnParticles.reserve(SpawnCount); @@ -311,7 +311,7 @@ void CAnimSetLoader::LoadParticleResourceData(IInputStream& rFile, SSetCharacter } rFile.Seek(0x4, SEEK_CUR); - if (mGame >= eEchoes) rFile.Seek(0x4, SEEK_CUR); + if (mGame >= EGame::Echoes) rFile.Seek(0x4, SEEK_CUR); } void CAnimSetLoader::LoadAnimationSet(IInputStream& rANCS) @@ -379,7 +379,7 @@ void CAnimSetLoader::LoadAnimationSet(IInputStream& rANCS) // Skipping MP1 ANIM asset list // Events - if (mGame >= eEchoesDemo) + if (mGame >= EGame::EchoesDemo) { u32 EventDataCount = rANCS.ReadLong(); pSet->mAnimEvents.reserve(EventDataCount); @@ -410,7 +410,7 @@ void CAnimSetLoader::ProcessPrimitives() for (u32 iTrans = 0; iTrans < pSet->mHalfTransitions.size(); iTrans++) pSet->mHalfTransitions[iTrans].pMetaTrans->GetUniquePrimitives(UniquePrimitives); - if (mGame == eCorruptionProto || mGame == eCorruption) + if (mGame == EGame::CorruptionProto || mGame == EGame::Corruption) { CSourceAnimData *pAnimData = gpResourceStore->LoadResource( pSet->mCharacters[0].AnimDataID ); @@ -431,7 +431,7 @@ void CAnimSetLoader::ProcessPrimitives() } // Add used animation indices from the animset to the character's list - if (mGame <= eEchoes) + if (mGame <= EGame::Echoes) { // Add animations referenced by default transition if (pSet->mpDefaultTransition) @@ -537,9 +537,9 @@ CAnimSet* CAnimSetLoader::LoadANCS(IInputStream& rANCS, CResourceEntry *pEntry) pChar->ID = rANCS.ReadLong(); u16 CharVersion = rANCS.ReadShort(); - if (iNode == 0 && Loader.mGame == eUnknownGame) + if (iNode == 0 && Loader.mGame == EGame::Invalid) { - Loader.mGame = (CharVersion == 0xA) ? eEchoes : ePrime; + Loader.mGame = (CharVersion == 0xA) ? EGame::Echoes : EGame::Prime; } pChar->Name = rANCS.ReadString(); pChar->pModel = gpResourceStore->LoadResource(rANCS.ReadLong()); @@ -554,7 +554,7 @@ CAnimSet* CAnimSetLoader::LoadANCS(IInputStream& rANCS, CResourceEntry *pEntry) for (u32 iAnim = 0; iAnim < AnimCount; iAnim++) { rANCS.Seek(0x4, SEEK_CUR); - if (Loader.mGame == ePrime) rANCS.Seek(0x1, SEEK_CUR); + if (Loader.mGame == EGame::Prime) rANCS.Seek(0x1, SEEK_CUR); rANCS.ReadString(); } @@ -584,8 +584,8 @@ CAnimSet* CAnimSetLoader::LoadANCS(IInputStream& rANCS, CResourceEntry *pEntry) CAssetID ParticleID(rANCS, e32Bit); if (ParticleID.IsValid()) pChar->EffectParticles.push_back(ParticleID); - if (Loader.mGame == ePrime) rANCS.ReadString(); - if (Loader.mGame == eEchoes) rANCS.Seek(0x4, SEEK_CUR); + if (Loader.mGame == EGame::Prime) rANCS.ReadString(); + if (Loader.mGame == EGame::Echoes) rANCS.Seek(0x4, SEEK_CUR); rANCS.Seek(0xC, SEEK_CUR); } } @@ -604,7 +604,7 @@ CAnimSet* CAnimSetLoader::LoadANCS(IInputStream& rANCS, CResourceEntry *pEntry) pChar->UsedAnimationIndices.insert(AnimIndex); } - if (Loader.mGame == eEchoes) + if (Loader.mGame == EGame::Echoes) { pChar->SpatialPrimitives = rANCS.ReadLong(); rANCS.Seek(0x1, SEEK_CUR); @@ -629,14 +629,14 @@ CAnimSet* CAnimSetLoader::LoadCHAR(IInputStream& rCHAR, CResourceEntry *pEntry) if (Check == 0x5 || Check == 0x3) { - Loader.mGame = eCorruption; + Loader.mGame = EGame::Corruption; Loader.pSet = new CAnimSet(pEntry); return Loader.LoadCorruptionCHAR(rCHAR); } if (Check == 0x59) { - Loader.mGame = eReturns; + Loader.mGame = EGame::DKCReturns; Loader.pSet = new CAnimSet(pEntry); return Loader.LoadReturnsCHAR(rCHAR); } diff --git a/src/Core/Resource/Factory/CAnimationLoader.cpp b/src/Core/Resource/Factory/CAnimationLoader.cpp index 70041059..23827ddf 100644 --- a/src/Core/Resource/Factory/CAnimationLoader.cpp +++ b/src/Core/Resource/Factory/CAnimationLoader.cpp @@ -43,7 +43,7 @@ EGame CAnimationLoader::UncompressedCheckVersion() u32 Start = mpInput->Tell(); bool Echoes = UncompressedCheckEchoes(); mpInput->Seek(Start, SEEK_SET); - return (Echoes ? eEchoes : ePrime); + return (Echoes ? EGame::Echoes : EGame::Prime); } void CAnimationLoader::ReadUncompressedANIM() @@ -75,13 +75,13 @@ void CAnimationLoader::ReadUncompressedANIM() NumBoneChannels++; } - if (mGame == eUnknownGame) + if (mGame == EGame::Invalid) mGame = UncompressedCheckVersion(); // Echoes only - rotation channel indices std::vector RotationIndices; - if (mGame == eEchoes) + if (mGame == EGame::Echoes) { u32 NumRotationIndices = mpInput->ReadLong(); RotationIndices.resize(NumRotationIndices); @@ -125,7 +125,7 @@ void CAnimationLoader::ReadUncompressedANIM() // Echoes only - scale channel indices std::vector ScaleIndices; - if (mGame == eEchoes) + if (mGame == EGame::Echoes) { u32 NumScaleIndices = mpInput->ReadLong(); ScaleIndices.resize(NumScaleIndices); @@ -161,7 +161,7 @@ void CAnimationLoader::ReadUncompressedANIM() } // Read bone transforms - if (mGame == eEchoes) + if (mGame == EGame::Echoes) { mpInput->Seek(0x4, SEEK_CUR); // Skipping scale key count mpAnim->mScaleChannels.resize(NumScaleChannels); @@ -197,7 +197,7 @@ void CAnimationLoader::ReadUncompressedANIM() mpAnim->mTranslationChannels[iTrans][iKey] = CVector3f(*mpInput); } - if (mGame == ePrime) + if (mGame == EGame::Prime) { mpAnim->mpEventData = gpResourceStore->LoadResource(mpInput->ReadLong()); } @@ -208,10 +208,10 @@ void CAnimationLoader::ReadCompressedANIM() // Header mpInput->Seek(0x4, SEEK_CUR); // Skip alloc size - if (mGame == eUnknownGame) - mGame = (mpInput->PeekShort() == 0x0101 ? eEchoes : ePrime); + if (mGame == EGame::Invalid) + mGame = (mpInput->PeekShort() == 0x0101 ? EGame::Echoes : EGame::Prime); - if (mGame == ePrime) + if (mGame == EGame::Prime) { mpAnim->mpEventData = gpResourceStore->LoadResource(mpInput->ReadLong()); mpInput->Seek(0x4, SEEK_CUR); // Skip unknown @@ -224,7 +224,7 @@ void CAnimationLoader::ReadCompressedANIM() mRotationDivisor = mpInput->ReadLong(); mTranslationMultiplier = mpInput->ReadFloat(); - if (mGame == eEchoes) mScaleMultiplier = mpInput->ReadFloat(); + if (mGame == EGame::Echoes) mScaleMultiplier = mpInput->ReadFloat(); u32 NumBoneChannels = mpInput->ReadLong(); mpInput->Seek(0x4, SEEK_CUR); // Skip unknown value @@ -238,7 +238,7 @@ void CAnimationLoader::ReadCompressedANIM() for (u32 iBit = 0; iBit < NumKeys; iBit++) mKeyFlags[iBit] = BitStream.ReadBit(); } - mpInput->Seek(mGame == ePrime ? 0x8 : 0x4, SEEK_CUR); + mpInput->Seek(mGame == EGame::Prime ? 0x8 : 0x4, SEEK_CUR); // Read bone channel descriptors mCompressedChannels.resize(NumBoneChannels); @@ -249,7 +249,7 @@ void CAnimationLoader::ReadCompressedANIM() for (u32 iChan = 0; iChan < NumBoneChannels; iChan++) { SCompressedChannel& rChan = mCompressedChannels[iChan]; - rChan.BoneID = (mGame == ePrime ? mpInput->ReadLong() : mpInput->ReadByte()); + rChan.BoneID = (mGame == EGame::Prime ? mpInput->ReadLong() : mpInput->ReadByte()); // Read rotation parameters rChan.NumRotationKeys = mpInput->ReadShort(); @@ -284,7 +284,7 @@ void CAnimationLoader::ReadCompressedANIM() // Read scale parameters u8 ScaleIdx = 0xFF; - if (mGame == eEchoes) + if (mGame == EGame::Echoes) { rChan.NumScaleKeys = mpInput->ReadShort(); @@ -465,7 +465,7 @@ CQuaternion CAnimationLoader::DequantizeRotation(bool Sign, s16 X, s16 Y, s16 Z) CAnimation* CAnimationLoader::LoadANIM(IInputStream& rANIM, CResourceEntry *pEntry) { // MP3/DKCR unsupported - if (pEntry->Game() > eEchoes) + if (pEntry->Game() > EGame::Echoes) return new CAnimation(pEntry); u32 CompressionType = rANIM.ReadLong(); diff --git a/src/Core/Resource/Factory/CAreaLoader.cpp b/src/Core/Resource/Factory/CAreaLoader.cpp index fdfbea1d..737b94f1 100644 --- a/src/Core/Resource/Factory/CAreaLoader.cpp +++ b/src/Core/Resource/Factory/CAreaLoader.cpp @@ -81,7 +81,7 @@ void CAreaLoader::ReadGeometryPrime() CModel *pModel = CModelLoader::LoadWorldModel(*mpMREA, *mpSectionMgr, *mpArea->mpMaterialSet, mVersion); FileModels.push_back(pModel); - if (mVersion <= ePrime) + if (mVersion <= EGame::Prime) mpArea->AddWorldModel(pModel); // For Echoes+, load surface mesh IDs, then skip to the start of the next mesh @@ -101,7 +101,7 @@ void CAreaLoader::ReadGeometryPrime() } // Split meshes - if (mVersion >= eEchoesDemo) + if (mVersion >= EGame::EchoesDemo) { std::vector SplitModels; CModelLoader::BuildWorldMeshes(FileModels, SplitModels, true); @@ -124,7 +124,7 @@ void CAreaLoader::ReadSCLYPrime() Log::FileError(mpMREA->GetSourceString(), mpMREA->Tell() - 4, "Invalid SCLY magic: " + SCLY.ToString()); return; } - mpMREA->Seek(mVersion <= ePrime ? 4 : 1, SEEK_CUR); // Skipping unknown value which is always 1 + mpMREA->Seek(mVersion <= EGame::Prime ? 4 : 1, SEEK_CUR); // Skipping unknown value which is always 1 // Read layer sizes mNumLayers = mpMREA->ReadLong(); @@ -145,7 +145,7 @@ void CAreaLoader::ReadSCLYPrime() // SCGN CScriptLayer *pGenLayer = nullptr; - if (mVersion >= eEchoesDemo) + if (mVersion >= EGame::EchoesDemo) { mpSectionMgr->ToSection(mScriptGeneratorBlockNum); CFourCC SCGN = mpMREA->ReadFourCC(); @@ -252,7 +252,7 @@ void CAreaLoader::ReadHeaderEchoes() // This function reads the header for Echoes and the Echoes demo disc mpArea->mTransform = CTransform4f(*mpMREA); mNumMeshes = mpMREA->ReadLong(); - if (mVersion == eEchoes) mNumLayers = mpMREA->ReadLong(); + if (mVersion == EGame::Echoes) mNumLayers = mpMREA->ReadLong(); u32 numBlocks = mpMREA->ReadLong(); mGeometryBlockNum = mpMREA->ReadLong(); @@ -266,13 +266,13 @@ void CAreaLoader::ReadHeaderEchoes() mFFFFBlockNum = mpMREA->ReadLong(); mPTLABlockNum = mpMREA->ReadLong(); mEGMCBlockNum = mpMREA->ReadLong(); - if (mVersion == eEchoes) mClusters.resize(mpMREA->ReadLong()); + if (mVersion == EGame::Echoes) mClusters.resize(mpMREA->ReadLong()); mpMREA->SeekToBoundary(32); mpSectionMgr = new CSectionMgrIn(numBlocks, mpMREA); mpMREA->SeekToBoundary(32); - if (mVersion == eEchoes) + if (mVersion == EGame::Echoes) { ReadCompressedBlocks(); Decompress(); @@ -440,7 +440,7 @@ void CAreaLoader::ReadDependenciesCorruption() for (u32 DepIdx = 0; DepIdx < NumLayerDeps; DepIdx++) { - CAssetID AssetID(*mpMREA, eCorruption); + CAssetID AssetID(*mpMREA, EGame::Corruption); mpMREA->Skip(4); mpArea->mExtraLayerDeps[LayerIdx].push_back(AssetID); } @@ -452,7 +452,7 @@ void CAreaLoader::ReadDependenciesCorruption() for (u32 DepIdx = 0; DepIdx < NumAreaDeps; DepIdx++) { - CAssetID AssetID(*mpMREA, eCorruption); + CAssetID AssetID(*mpMREA, EGame::Corruption); mpMREA->Skip(4); mpArea->mExtraAreaDeps.push_back(AssetID); } @@ -562,7 +562,7 @@ void CAreaLoader::Decompress() { // This function decompresses compressed clusters into a buffer. // It should be called at the beginning of the first compressed cluster. - if (mVersion < eEchoes) return; + if (mVersion < EGame::Echoes) return; // Decompress clusters mpDecmpBuffer = new u8[mTotalDecmpSize]; @@ -699,7 +699,7 @@ void CAreaLoader::SetUpObjects(CScriptLayer *pGenLayer) } // Remove "-component" garbage from MP1 instance names - if (mVersion <= ePrime) + if (mVersion <= EGame::Prime) { TString InstanceName = pInst->InstanceName(); @@ -747,8 +747,8 @@ CGameArea* CAreaLoader::LoadMREA(IInputStream& MREA, CResourceEntry *pEntry) switch (Loader.mVersion) { - case ePrimeDemo: - case ePrime: + case EGame::PrimeDemo: + case EGame::Prime: Loader.ReadHeaderPrime(); Loader.ReadGeometryPrime(); Loader.ReadSCLYPrime(); @@ -756,7 +756,7 @@ CGameArea* CAreaLoader::LoadMREA(IInputStream& MREA, CResourceEntry *pEntry) Loader.ReadLightsPrime(); Loader.ReadPATH(); break; - case eEchoesDemo: + case EGame::EchoesDemo: Loader.ReadHeaderEchoes(); Loader.ReadGeometryPrime(); Loader.ReadSCLYPrime(); @@ -766,7 +766,7 @@ CGameArea* CAreaLoader::LoadMREA(IInputStream& MREA, CResourceEntry *pEntry) Loader.ReadPTLA(); Loader.ReadEGMC(); break; - case eEchoes: + case EGame::Echoes: Loader.ReadHeaderEchoes(); Loader.ReadGeometryPrime(); Loader.ReadSCLYEchoes(); @@ -776,7 +776,7 @@ CGameArea* CAreaLoader::LoadMREA(IInputStream& MREA, CResourceEntry *pEntry) Loader.ReadPTLA(); Loader.ReadEGMC(); break; - case eCorruptionProto: + case EGame::CorruptionProto: Loader.ReadHeaderCorruption(); Loader.ReadGeometryPrime(); Loader.ReadDependenciesCorruption(); @@ -787,14 +787,14 @@ CGameArea* CAreaLoader::LoadMREA(IInputStream& MREA, CResourceEntry *pEntry) Loader.ReadPTLA(); Loader.ReadEGMC(); break; - case eCorruption: - case eReturns: + case EGame::Corruption: + case EGame::DKCReturns: Loader.ReadHeaderCorruption(); Loader.ReadGeometryCorruption(); Loader.ReadDependenciesCorruption(); Loader.ReadSCLYEchoes(); Loader.ReadCollision(); - if (Loader.mVersion == eCorruption) + if (Loader.mVersion == EGame::Corruption) { Loader.ReadLightsCorruption(); Loader.ReadPATH(); @@ -817,13 +817,13 @@ EGame CAreaLoader::GetFormatVersion(u32 Version) { switch (Version) { - case 0xC: return ePrimeDemo; - case 0xF: return ePrime; - case 0x15: return eEchoesDemo; - case 0x19: return eEchoes; - case 0x1D: return eCorruptionProto; - case 0x1E: return eCorruption; - case 0x20: return eReturns; - default: return eUnknownGame; + case 0xC: return EGame::PrimeDemo; + case 0xF: return EGame::Prime; + case 0x15: return EGame::EchoesDemo; + case 0x19: return EGame::Echoes; + case 0x1D: return EGame::CorruptionProto; + case 0x1E: return EGame::Corruption; + case 0x20: return EGame::DKCReturns; + default: return EGame::Invalid; } } diff --git a/src/Core/Resource/Factory/CAudioGroupLoader.cpp b/src/Core/Resource/Factory/CAudioGroupLoader.cpp index 50888df7..3b1a038c 100644 --- a/src/Core/Resource/Factory/CAudioGroupLoader.cpp +++ b/src/Core/Resource/Factory/CAudioGroupLoader.cpp @@ -5,11 +5,11 @@ CAudioGroup* CAudioGroupLoader::LoadAGSC(IInputStream& rAGSC, CResourceEntry *pE // For now we only load sound define IDs and the group ID! // Version check u32 Check = rAGSC.PeekLong(); - EGame Game = (Check == 0x1 ? eEchoes : ePrime); + EGame Game = (Check == 0x1 ? EGame::Echoes : EGame::Prime); CAudioGroup *pOut = new CAudioGroup(pEntry); // Read header, navigate to Proj chunk - if (Game == ePrime) + if (Game == EGame::Prime) { rAGSC.ReadString(); pOut->mGroupName = rAGSC.ReadString(); @@ -38,7 +38,7 @@ CAudioGroup* CAudioGroupLoader::LoadAGSC(IInputStream& rAGSC, CResourceEntry *pE rAGSC.Seek(0x14, SEEK_CUR); u32 SfxTableStart = rAGSC.ReadLong(); - if (Game == ePrime) + if (Game == EGame::Prime) pOut->mGroupID = GroupID; else ASSERT(pOut->mGroupID == GroupID); diff --git a/src/Core/Resource/Factory/CCollisionLoader.cpp b/src/Core/Resource/Factory/CCollisionLoader.cpp index 20bf5952..ad045ca5 100644 --- a/src/Core/Resource/Factory/CCollisionLoader.cpp +++ b/src/Core/Resource/Factory/CCollisionLoader.cpp @@ -39,10 +39,10 @@ void CCollisionLoader::ParseOBBNode(IInputStream& rDCLN) void CCollisionLoader::ReadPropertyFlags(IInputStream& rSrc) { CCollisionMaterial Material; - u64 RawFlags = (mVersion <= ePrime ? rSrc.ReadLong() : rSrc.ReadLongLong()); + u64 RawFlags = (mVersion <= EGame::Prime ? rSrc.ReadLong() : rSrc.ReadLongLong()); Material.mRawFlags = RawFlags; - if (mVersion <= ePrime) + if (mVersion <= EGame::Prime) { if (RawFlags & 0x00000001) Material |= eCF_Unknown; if (RawFlags & 0x00000002) Material |= eCF_Stone; @@ -71,7 +71,7 @@ void CCollisionLoader::ReadPropertyFlags(IInputStream& rSrc) if (RawFlags & 0x80000000) Material |= eCF_Floor; } - else if (mVersion <= eCorruption) + else if (mVersion <= EGame::Corruption) { if (RawFlags & 0x00000001) Material |= eCF_Unknown; if (RawFlags & 0x00000002) Material |= eCF_Stone; @@ -105,7 +105,7 @@ void CCollisionLoader::ReadPropertyFlags(IInputStream& rSrc) if (RawFlags & 0x0400000000000000) Material |= eCF_JumpNotAllowed; } - else if (mVersion == eReturns) + else if (mVersion == EGame::DKCReturns) { if (RawFlags & 0x10000000) Material |= eCF_FlippedTri; } @@ -158,7 +158,7 @@ void CCollisionLoader::LoadCollisionIndices(IInputStream &rFile, bool BuildAABox } // Echoes introduces a new data chunk; don't know what it is yet, skipping for now - if (mVersion >= eEchoes) + if (mVersion >= EGame::Echoes) { u32 UnknownCount = rFile.ReadLong(); rFile.Seek(UnknownCount * 2, SEEK_CUR); @@ -236,12 +236,12 @@ CCollisionMeshGroup* CCollisionLoader::LoadDCLN(IInputStream& rDCLN, CResourceEn Loader.mpMesh = new CCollisionMesh; Loader.mpMesh->mOctreeLoaded = false; - if (Loader.mVersion == eReturns) + if (Loader.mVersion == EGame::DKCReturns) Loader.mpMesh->mAABox = CAABox(rDCLN); // Read indices and return rDCLN.Seek(0x4, SEEK_CUR); - Loader.LoadCollisionIndices(rDCLN, Loader.mVersion != eReturns); + Loader.LoadCollisionIndices(rDCLN, Loader.mVersion != EGame::DKCReturns); Loader.mpGroup->AddMesh(Loader.mpMesh); // Parse OBB tree @@ -254,10 +254,10 @@ EGame CCollisionLoader::GetFormatVersion(u32 Version) { switch (Version) { - case 0x2: return ePrime; - case 0x3: return ePrime; - case 0x4: return eEchoes; - case 0x5: return eReturns; - default: return eUnknownGame; + case 0x2: return EGame::Prime; + case 0x3: return EGame::Prime; + case 0x4: return EGame::Echoes; + case 0x5: return EGame::DKCReturns; + default: return EGame::Invalid; } } diff --git a/src/Core/Resource/Factory/CDependencyGroupLoader.cpp b/src/Core/Resource/Factory/CDependencyGroupLoader.cpp index 236ae9a1..94888b1d 100644 --- a/src/Core/Resource/Factory/CDependencyGroupLoader.cpp +++ b/src/Core/Resource/Factory/CDependencyGroupLoader.cpp @@ -8,7 +8,7 @@ EGame CDependencyGroupLoader::VersionTest(IInputStream& rDGRP, u32 DepCount) rDGRP.Seek(DepCount * 8, SEEK_CUR); u32 Remaining = rDGRP.Size() - rDGRP.Tell(); - EGame Game = eCorruptionProto; + EGame Game = EGame::CorruptionProto; if (Remaining < 32) { @@ -25,7 +25,7 @@ EGame CDependencyGroupLoader::VersionTest(IInputStream& rDGRP, u32 DepCount) } } - if (IsEOF) Game = ePrimeDemo; + if (IsEOF) Game = EGame::PrimeDemo; } rDGRP.Seek(Start, SEEK_SET); diff --git a/src/Core/Resource/Factory/CFontLoader.cpp b/src/Core/Resource/Factory/CFontLoader.cpp index 0309442c..a9ad91e0 100644 --- a/src/Core/Resource/Factory/CFontLoader.cpp +++ b/src/Core/Resource/Factory/CFontLoader.cpp @@ -13,12 +13,12 @@ CFont* CFontLoader::LoadFont(IInputStream& rFONT) mpFont->mLineHeight = rFONT.ReadLong(); mpFont->mVerticalOffset = rFONT.ReadLong(); mpFont->mLineMargin = rFONT.ReadLong(); - if (mVersion > ePrimeDemo) rFONT.Seek(0x4, SEEK_CUR); + if (mVersion > EGame::PrimeDemo) rFONT.Seek(0x4, SEEK_CUR); rFONT.Seek(0x2, SEEK_CUR); mpFont->mDefaultSize = rFONT.ReadLong(); mpFont->mFontName = rFONT.ReadString(); - if (mVersion <= eEchoes) mpFont->mpFontTexture = gpResourceStore->LoadResource(rFONT.ReadLong(), eTexture); + if (mVersion <= EGame::Echoes) mpFont->mpFontTexture = gpResourceStore->LoadResource(rFONT.ReadLong(), eTexture); else mpFont->mpFontTexture = gpResourceStore->LoadResource(rFONT.ReadLongLong(), eTexture); mpFont->mTextureFormat = rFONT.ReadLong(); @@ -39,7 +39,7 @@ CFont* CFontLoader::LoadFont(IInputStream& rFONT) Glyph.TexCoords[2] = CVector2f(TexCoordL, TexCoordD); // Lower-left Glyph.TexCoords[3] = CVector2f(TexCoordR, TexCoordD); // Lower-right - if (mVersion <= ePrime) + if (mVersion <= EGame::Prime) { Glyph.RGBAChannel = 0; Glyph.LeftPadding = rFONT.ReadLong(); @@ -50,7 +50,7 @@ CFont* CFontLoader::LoadFont(IInputStream& rFONT) Glyph.BaseOffset = rFONT.ReadLong(); Glyph.KerningIndex = rFONT.ReadLong(); } - else if (mVersion >= eEchoes) + else if (mVersion >= EGame::Echoes) { Glyph.RGBAChannel = rFONT.ReadByte(); Glyph.LeftPadding = rFONT.ReadByte(); @@ -92,7 +92,7 @@ CFont* CFontLoader::LoadFONT(IInputStream& rFONT, CResourceEntry *pEntry) u32 FileVersion = rFONT.ReadLong(); EGame Version = GetFormatVersion(FileVersion); - if (Version == eUnknownGame) + if (Version == EGame::Invalid) { Log::FileError(rFONT.GetSourceString(), "Unsupported FONT version: " + TString::HexString(FileVersion, 0)); return nullptr; @@ -108,10 +108,10 @@ EGame CFontLoader::GetFormatVersion(u32 Version) { switch (Version) { - case 1: return ePrimeDemo; - case 2: return ePrime; - case 4: return eEchoes; - case 5: return eCorruption; - default: return eUnknownGame; + case 1: return EGame::PrimeDemo; + case 2: return EGame::Prime; + case 4: return EGame::Echoes; + case 5: return EGame::Corruption; + default: return EGame::Invalid; } } diff --git a/src/Core/Resource/Factory/CMaterialLoader.cpp b/src/Core/Resource/Factory/CMaterialLoader.cpp index bf5fe2aa..e7cdb6e4 100644 --- a/src/Core/Resource/Factory/CMaterialLoader.cpp +++ b/src/Core/Resource/Factory/CMaterialLoader.cpp @@ -92,7 +92,7 @@ CMaterial* CMaterialLoader::ReadPrimeMaterial() pMat->mVtxDesc = ConvertToVertexDescription( mpFile->ReadLong() ); // Unknowns - if (mVersion >= eEchoesDemo) + if (mVersion >= EGame::EchoesDemo) { pMat->mEchoesUnknownA = mpFile->ReadLong(); pMat->mEchoesUnknownB = mpFile->ReadLong(); @@ -648,7 +648,7 @@ CMaterialSet* CMaterialLoader::LoadMaterialSet(IInputStream& rMat, EGame Version Loader.mpFile = &rMat; Loader.mVersion = Version; - if ((Version >= ePrimeDemo) && (Version <= eEchoes)) + if ((Version >= EGame::PrimeDemo) && (Version <= EGame::Echoes)) Loader.ReadPrimeMatSet(); else Loader.ReadCorruptionMatSet(); diff --git a/src/Core/Resource/Factory/CModelLoader.cpp b/src/Core/Resource/Factory/CModelLoader.cpp index b2246be2..0782db26 100644 --- a/src/Core/Resource/Factory/CModelLoader.cpp +++ b/src/Core/Resource/Factory/CModelLoader.cpp @@ -52,7 +52,7 @@ void CModelLoader::LoadAttribArrays(IInputStream& rModel) if (mFlags & eShortNormals) // Shorts { mNormals.resize(mpSectionMgr->CurrentSectionSize() / 0x6); - float Divisor = (mVersion < eReturns) ? 32768.f : 16384.f; + float Divisor = (mVersion < EGame::DKCReturns) ? 32768.f : 16384.f; for (u32 iVtx = 0; iVtx < mNormals.size(); iVtx++) { @@ -93,7 +93,7 @@ void CModelLoader::LoadAttribArrays(IInputStream& rModel) if (mFlags & eHasTex1) { mTex1.resize(mpSectionMgr->CurrentSectionSize() / 0x4); - float Divisor = (mVersion < eReturns) ? 32768.f : 8192.f; + float Divisor = (mVersion < EGame::DKCReturns) ? 32768.f : 8192.f; for (u32 iVtx = 0; iVtx < mTex1.size(); iVtx++) { @@ -122,7 +122,7 @@ SSurface* CModelLoader::LoadSurface(IInputStream& rModel) SSurface *pSurf = new SSurface; // Surface header - if (mVersion < eReturns) + if (mVersion < EGame::DKCReturns) LoadSurfaceHeaderPrime(rModel, pSurf); else LoadSurfaceHeaderDKCR(rModel, pSurf); @@ -172,7 +172,7 @@ SSurface* CModelLoader::LoadSurface(IInputStream& rModel) Vtx.Color[iClr] = mColors[rModel.ReadShort() & 0xFFFF]; // Tex Coords - these are done a bit differently in DKCR than in the Prime series - if (mVersion < eReturns) + if (mVersion < EGame::DKCReturns) { // Tex0 if (VtxDesc & eTex0) @@ -238,7 +238,7 @@ void CModelLoader::LoadSurfaceHeaderPrime(IInputStream& rModel, SSurface *pSurf) u32 ExtraSize = rModel.ReadLong(); pSurf->ReflectionDirection = CVector3f(rModel); - if (mVersion >= eEchoesDemo) + if (mVersion >= EGame::EchoesDemo) rModel.Seek(0x4, SEEK_CUR); // Skipping unknown values bool HasAABox = (ExtraSize >= 0x18); // MREAs have a set of bounding box coordinates here. @@ -446,7 +446,7 @@ CModel* CModelLoader::LoadCMDL(IInputStream& rCMDL, CResourceEntry *pEntry) // The rest is common to all CMDL versions Loader.mVersion = GetFormatVersion(Version); - if (Loader.mVersion == eUnknownGame) + if (Loader.mVersion == EGame::Invalid) { Log::FileError(rCMDL.GetSourceString(), "Unsupported CMDL version: " + TString::HexString(Magic, 0)); return nullptr; @@ -464,13 +464,13 @@ CModel* CModelLoader::LoadCMDL(IInputStream& rCMDL, CResourceEntry *pEntry) { Loader.mMaterials[iSet] = CMaterialLoader::LoadMaterialSet(rCMDL, Loader.mVersion); - if (Loader.mVersion < eCorruptionProto) + if (Loader.mVersion < EGame::CorruptionProto) Loader.mpSectionMgr->ToNextSection(); } pModel->mMaterialSets = Loader.mMaterials; pModel->mHasOwnMaterials = true; - if (Loader.mVersion >= eCorruptionProto) Loader.mpSectionMgr->ToNextSection(); + if (Loader.mVersion >= EGame::CorruptionProto) Loader.mpSectionMgr->ToNextSection(); // Mesh Loader.LoadAttribArrays(rCMDL); @@ -499,7 +499,7 @@ CModel* CModelLoader::LoadWorldModel(IInputStream& rMREA, CSectionMgrIn& rBlockM Loader.mpSectionMgr = &rBlockMgr; Loader.mVersion = Version; Loader.mFlags = eShortNormals; - if (Version != eCorruptionProto) Loader.mFlags |= eHasTex1; + if (Version != EGame::CorruptionProto) Loader.mFlags |= eHasTex1; Loader.mMaterials.resize(1); Loader.mMaterials[0] = &rMatSet; @@ -534,7 +534,7 @@ CModel* CModelLoader::LoadCorruptionWorldModel(IInputStream& rMREA, CSectionMgrI Loader.mFlags = eShortNormals; Loader.mMaterials.resize(1); Loader.mMaterials[0] = &rMatSet; - if (Version == eReturns) Loader.mFlags |= eHasTex1; + if (Version == EGame::DKCReturns) Loader.mFlags |= eHasTex1; // Corruption/DKCR MREAs split the mesh header and surface offsets away from the actual geometry data so I need two section numbers to read it rBlockMgr.ToSection(HeaderSecNum); @@ -638,11 +638,11 @@ EGame CModelLoader::GetFormatVersion(u32 Version) { switch (Version) { - case 0x2: return ePrime; - case 0x3: return eEchoesDemo; - case 0x4: return eEchoes; - case 0x5: return eCorruption; - case 0xA: return eReturns; - default: return eUnknownGame; + case 0x2: return EGame::Prime; + case 0x3: return EGame::EchoesDemo; + case 0x4: return EGame::Echoes; + case 0x5: return EGame::Corruption; + case 0xA: return EGame::DKCReturns; + default: return EGame::Invalid; } } diff --git a/src/Core/Resource/Factory/CResourceFactory.h b/src/Core/Resource/Factory/CResourceFactory.h index 61c6b0a1..be2a83ea 100644 --- a/src/Core/Resource/Factory/CResourceFactory.h +++ b/src/Core/Resource/Factory/CResourceFactory.h @@ -101,11 +101,11 @@ public: case eStateMachine: // AFSM currently unsupported - if (pEntry->Game() <= eEchoes) + if (pEntry->Game() <= EGame::Echoes) pRes = new CDependencyGroup(pEntry); - else if (pEntry->Game() <= eCorruption) + else if (pEntry->Game() <= EGame::Corruption) pRes = CUnsupportedFormatLoader::LoadFSM2(rInput, pEntry); - else if (pEntry->Game() == eReturns) + else if (pEntry->Game() == EGame::DKCReturns) pRes = CUnsupportedFormatLoader::LoadFSMC(rInput, pEntry); break; diff --git a/src/Core/Resource/Factory/CScanLoader.cpp b/src/Core/Resource/Factory/CScanLoader.cpp index 6326479c..c160eb40 100644 --- a/src/Core/Resource/Factory/CScanLoader.cpp +++ b/src/Core/Resource/Factory/CScanLoader.cpp @@ -82,7 +82,7 @@ CScan* CScanLoader::LoadScanMP2(IInputStream& rSCAN) } // Load MP3 dependency list - if (mpScan->Game() == eCorruption) + if (mpScan->Game() == EGame::Corruption) { rSCAN.GoTo(InstanceEnd); u32 NumDeps = rSCAN.ReadLong(); @@ -275,7 +275,7 @@ CScan* CScanLoader::LoadSCAN(IInputStream& rSCAN, CResourceEntry *pEntry) { // The MP2 load function will check for MP3 CScanLoader Loader; - Loader.mVersion = eEchoes; + Loader.mVersion = EGame::Echoes; Loader.mpEntry = pEntry; if (Magic == 0x01000000) rSCAN.Seek(-4, SEEK_CUR); // The version number isn't present in the Echoes demo return Loader.LoadScanMP2(rSCAN); @@ -295,7 +295,7 @@ CScan* CScanLoader::LoadSCAN(IInputStream& rSCAN, CResourceEntry *pEntry) // MP1 SCAN - read the file! CScanLoader Loader; - Loader.mVersion = ePrime; + Loader.mVersion = EGame::Prime; Loader.mpScan = new CScan(pEntry); Loader.mpEntry = pEntry; return Loader.LoadScanMP1(rSCAN); diff --git a/src/Core/Resource/Factory/CScriptLoader.cpp b/src/Core/Resource/Factory/CScriptLoader.cpp index b71e87ef..39cc8e09 100644 --- a/src/Core/Resource/Factory/CScriptLoader.cpp +++ b/src/Core/Resource/Factory/CScriptLoader.cpp @@ -1,257 +1,295 @@ #include "CScriptLoader.h" -#include "CTemplateLoader.h" #include "Core/GameProject/CResourceStore.h" -#include "Core/Resource/Script/CMasterTemplate.h" +#include "Core/Resource/Script/CGameTemplate.h" +#include "Core/Resource/Script/NGameList.h" +#include "Core/Resource/Script/Property/CArrayProperty.h" +#include "Core/Resource/Script/Property/CAssetProperty.h" +#include "Core/Resource/Script/Property/CEnumProperty.h" +#include "Core/Resource/Script/Property/CFlagsProperty.h" #include #include #include +// Whether to ensure the values of enum/flag properties are valid +#define VALIDATE_PROPERTY_VALUES 1 + CScriptLoader::CScriptLoader() : mpObj(nullptr) + , mpArrayItemData(nullptr) { } void CScriptLoader::ReadProperty(IProperty *pProp, u32 Size, IInputStream& rSCLY) { - IPropertyTemplate *pTemp = pProp->Template(); + void* pData = (mpArrayItemData ? mpArrayItemData : mpObj->mPropertyData.data()); - switch (pTemp->Type()) + switch (pProp->Type()) { - case eBoolProperty: + case EPropertyType::Bool: { - TBoolProperty *pBoolCast = static_cast(pProp); - pBoolCast->Set( (rSCLY.ReadByte() != 0) ); + CBoolProperty* pBool = TPropCast(pProp); + pBool->ValueRef(pData) = rSCLY.ReadBool(); break; } - case eByteProperty: + case EPropertyType::Byte: { - TByteProperty *pByteCast = static_cast(pProp); - pByteCast->Set(rSCLY.ReadByte()); + CByteProperty* pByte = TPropCast(pProp); + pByte->ValueRef(pData) = rSCLY.ReadByte(); break; } - case eShortProperty: + case EPropertyType::Short: { - TShortProperty *pShortCast = static_cast(pProp); - pShortCast->Set(rSCLY.ReadShort()); + CShortProperty* pShort = TPropCast(pProp); + pShort->ValueRef(pData) = rSCLY.ReadShort(); break; } - case eLongProperty: + case EPropertyType::Int: { - TLongProperty *pLongCast = static_cast(pProp); - pLongCast->Set(rSCLY.ReadLong()); + CIntProperty* pInt = TPropCast(pProp); + pInt->ValueRef(pData) = rSCLY.ReadLong(); break; } - case eBitfieldProperty: + case EPropertyType::Float: { - TBitfieldProperty *pBitfieldCast = static_cast(pProp); - pBitfieldCast->Set(rSCLY.ReadLong()); - - // Validate - u32 Mask = 0; - CBitfieldTemplate *pBitfieldTemp = static_cast(pTemp); - for (u32 iMask = 0; iMask < pBitfieldTemp->NumFlags(); iMask++) - Mask |= pBitfieldTemp->FlagMask(iMask); - - u32 Check = pBitfieldCast->Get() & ~Mask; - if (Check != 0) - Log::FileWarning(rSCLY.GetSourceString(), rSCLY.Tell() - 4, "Bitfield property \"" + pBitfieldTemp->FullName() + "\" + (" + pBitfieldTemp->IDString(true) + ") has flags set that aren't in the template: " + TString::HexString(Check)); - + CFloatProperty* pFloat = TPropCast(pProp); + pFloat->ValueRef(pData) = rSCLY.ReadFloat(); break; } - case eEnumProperty: + case EPropertyType::Choice: { - TEnumProperty *pEnumCast = static_cast(pProp); - CEnumTemplate *pEnumTemp = static_cast(pTemp); - u32 ID = rSCLY.ReadLong(); + CChoiceProperty* pChoice = TPropCast(pProp); + pChoice->ValueRef(pData) = rSCLY.ReadLong(); - // Validate - u32 Index = pEnumTemp->EnumeratorIndex(ID); - if (Index == -1) Log::FileError(rSCLY.GetSourceString(), rSCLY.Tell() - 4, "Enum property \"" + pEnumTemp->FullName() + "\" (" + pEnumTemp->IDString(true) + ") has invalid enumerator value: " + TString::HexString(ID)); - - pEnumCast->Set(ID); +#if VALIDATE_PROPERTY_VALUES + if (!pChoice->HasValidValue(pData)) + { + u32 Value = pChoice->ValueRef(pData); + Log::FileError(rSCLY.GetSourceString(), rSCLY.Tell() - 4, "Choice property \"" + pChoice->Name() + "\" (" + pChoice->IDString(true) + ") has unrecognized value: " + TString::HexString(Value)); + } +#endif break; } - case eFloatProperty: + case EPropertyType::Enum: { - TFloatProperty *pFloatCast = static_cast(pProp); - pFloatCast->Set(rSCLY.ReadFloat()); + CEnumProperty* pEnum = TPropCast(pProp); + pEnum->ValueRef(pData) = rSCLY.ReadLong(); + +#if VALIDATE_PROPERTY_VALUES + if (!pEnum->HasValidValue(pData)) + { + u32 Value = pEnum->ValueRef(pData); + Log::FileError(rSCLY.GetSourceString(), rSCLY.Tell() - 4, "Enum property \"" + pEnum->Name() + "\" (" + pEnum->IDString(true) + ") has unrecognized value: " + TString::HexString(Value)); + } +#endif break; } - case eStringProperty: + case EPropertyType::Flags: { - TStringProperty *pStringCast = static_cast(pProp); - pStringCast->Set(rSCLY.ReadString()); + CFlagsProperty* pFlags = TPropCast(pProp); + pFlags->ValueRef(pData) = rSCLY.ReadLong(); + +#if VALIDATE_PROPERTY_VALUES + u32 InvalidBits = pFlags->HasValidValue(pData); + + if (InvalidBits) + { + Log::FileWarning(rSCLY.GetSourceString(), rSCLY.Tell() - 4, "Flags property \"" + pFlags->Name() + "\" + (" + pFlags->IDString(true) + ") has unrecognized flags set: " + TString::HexString(InvalidBits)); + } +#endif break; } - case eVector3Property: + case EPropertyType::String: { - TVector3Property *pVector3Cast = static_cast(pProp); - pVector3Cast->Set(CVector3f(rSCLY)); + CStringProperty* pString = TPropCast(pProp); + pString->ValueRef(pData) = rSCLY.ReadString(); break; } - case eColorProperty: + case EPropertyType::Vector: { - TColorProperty *pColorCast = static_cast(pProp); - pColorCast->Set(CColor(rSCLY)); + CVectorProperty* pVector = TPropCast(pProp); + pVector->ValueRef(pData) = CVector3f(rSCLY); break; } - case eSoundProperty: + case EPropertyType::Color: { - TSoundProperty *pSoundCast = static_cast(pProp); - pSoundCast->Set(rSCLY.ReadLong()); + CColorProperty* pColor = TPropCast(pProp); + pColor->ValueRef(pData) = CColor(rSCLY); break; } - case eAssetProperty: + case EPropertyType::Asset: { - TAssetProperty *pAssetCast = static_cast(pProp); + CAssetProperty* pAsset = TPropCast(pProp); + pAsset->ValueRef(pData) = CAssetID(rSCLY, mpGameTemplate->Game()); - // quick hacky fix - all games set version to DKCR for copy/paste - CAssetID ID; - if (mVersion == eReturns) - ID = CAssetID(rSCLY, (EIDLength) Size); - else - ID = CAssetID(rSCLY, mVersion); +#if VALIDATE_PROPERTY_VALUES + CAssetID ID = pAsset->ValueRef(pData); - pAssetCast->Set(ID); - - // Verify this is a valid resource type for this property if (ID.IsValid()) { CResourceEntry *pEntry = gpResourceStore->FindEntry(ID); if (pEntry) { - const CResTypeFilter& rkFilter = static_cast(pTemp)->TypeFilter(); + const CResTypeFilter& rkFilter = pAsset->GetTypeFilter(); bool Valid = rkFilter.Accepts(pEntry->ResourceType()); if (!Valid) - Log::FileWarning(rSCLY.GetSourceString(), rSCLY.Tell() - ID.Length(), "Asset property \"" + pTemp->FullName() + "\" (" + pTemp->IDString(true) + ") has a reference to an illegal asset type: " + pEntry->CookedExtension()); + Log::FileWarning(rSCLY.GetSourceString(), rSCLY.Tell() - ID.Length(), "Asset property \"" + pAsset->Name() + "\" (" + pAsset->IDString(true) + ") has a reference to an illegal asset type: " + pEntry->CookedExtension()); } } - +#endif break; } - case eStructProperty: + case EPropertyType::Sound: { - CPropertyStruct *pStructCast = static_cast(pProp); + CSoundProperty* pSound = TPropCast(pProp); + pSound->ValueRef(pData) = rSCLY.ReadLong(); + break; + } - if (mVersion < eEchoesDemo) - LoadStructMP1(rSCLY, pStructCast, static_cast(pStructCast->Template())); + case EPropertyType::Animation: + { + CAnimationProperty* pAnim = TPropCast(pProp); + pAnim->ValueRef(pData) = rSCLY.ReadLong(); + break; + } + + case EPropertyType::AnimationSet: + { + CAnimationSetProperty* pAnimSet = TPropCast(pProp); + pAnimSet->ValueRef(pData) = CAnimationParameters(rSCLY, mpGameTemplate->Game()); + break; + } + + case EPropertyType::Sequence: + { + // TODO + break; + } + + case EPropertyType::Spline: + { + CSplineProperty* pSpline = TPropCast(pProp); + std::vector& Buffer = pSpline->ValueRef(pData); + Buffer.resize(Size); + rSCLY.ReadBytes(Buffer.data(), Buffer.size()); + break; + } + + case EPropertyType::Guid: + { + ASSERT(Size == 16); + CGuidProperty* pGuid = TPropCast(pProp); + pGuid->ValueRef(pData).resize(16); + rSCLY.ReadBytes(pGuid->ValueRef(pData).data(), 16); + break; + } + + case EPropertyType::Struct: + { + CStructProperty* pStruct = TPropCast(pProp); + + if (mVersion < EGame::EchoesDemo) + LoadStructMP1(rSCLY, pStruct); else - LoadStructMP2(rSCLY, pStructCast, static_cast(pTemp)); + LoadStructMP2(rSCLY, pStruct); break; } - case eArrayProperty: + case EPropertyType::Array: { - CArrayProperty *pArrayCast = static_cast(pProp); + CArrayProperty *pArray = TPropCast(pProp); int Count = rSCLY.ReadLong(); - pArrayCast->Resize(Count); + pArray->Resize(pData, Count); + void* pOldArrayItemData = mpArrayItemData; - for (int iElem = 0; iElem < Count; iElem++) + // Make sure the array archetype is atomic... non-atomic array archetypes is not supported + // because arrays can only have one possible archetype so having property IDs here wouldn't make sense + ASSERT(pArray->ItemArchetype()->IsAtomic()); + + for (int ElementIdx = 0; ElementIdx < Count; ElementIdx++) { - if (mVersion < eEchoesDemo) - LoadStructMP1(rSCLY, static_cast(pArrayCast->PropertyByIndex(iElem)), pArrayCast->SubStructTemplate()); - else - LoadStructMP2(rSCLY, static_cast(pArrayCast->PropertyByIndex(iElem)), pArrayCast->SubStructTemplate()); + /** + * so this is kind of annoying, there isn't really any good way to cleanly integrate arrays into the property system + * because calculating the pointer to an item requires knowing the array index, which the property itself can't store + * because the same property object is used for every array element; and we can't dynamically add children to the array + * based on its size either, because the same array property is shared between multiple script instances. so, instead, + * we determine the item pointer ourselves and the array archetype property will respect it. + * + * arrays are an edge case anyway - they only really appear in Prime 1 and there are only a couple array properties in + * the game. the only situation where an array property appears in other games is SequenceTimer, and that's going to be + * migrated to Sequence properties eventually, so there isn't really any good reason to spend a lot of effort refactoring + * things to make this cleaner + */ + mpArrayItemData = pArray->ItemPointer(pData, ElementIdx); + ReadProperty(pArray->ItemArchetype(), 0, rSCLY); } + + mpArrayItemData = pOldArrayItemData; break; } - case eCharacterProperty: - { - TCharacterProperty *pAnimCast = static_cast(pProp); - pAnimCast->Set(CAnimationParameters(rSCLY, mpMaster->Game())); - break; - } - - case eMayaSplineProperty: - { - TMayaSplineProperty *pSplineCast = static_cast(pProp); - std::vector Buffer(Size); - rSCLY.ReadBytes(Buffer.data(), Buffer.size()); - pSplineCast->Set(Buffer); - break; - } - - case eUnknownProperty: - { - TUnknownProperty *pUnknownCast = static_cast(pProp); - std::vector Buffer(Size); - rSCLY.ReadBytes(Buffer.data(), Buffer.size()); - pUnknownCast->Set(Buffer); - break; - } } } -void CScriptLoader::LoadStructMP1(IInputStream& rSCLY, CPropertyStruct *pStruct, CStructTemplate *pTemp) +void CScriptLoader::LoadStructMP1(IInputStream& rSCLY, CStructProperty* pStruct) { u32 StructStart = rSCLY.Tell(); // Verify property count - u32 PropCount = pTemp->Count(); + u32 PropertyCount = pStruct->NumChildren(); u32 Version = 0; - if (!pTemp->IsSingleProperty()) + if (!pStruct->IsAtomic()) { u32 FilePropCount = rSCLY.ReadLong(); - Version = pTemp->VersionForPropertyCount(FilePropCount); - - if (Version == -1) - { - TIDString IDString = pTemp->IDString(true); - if (!IDString.IsEmpty()) IDString = " (" + IDString + ")"; - - Log::FileWarning(rSCLY.GetSourceString(), StructStart, "Struct \"" + pTemp->FullName() + "\" (" + IDString + ") template prop count doesn't match file; template is " + TString::HexString(PropCount, 2) + ", file is " + TString::HexString(FilePropCount, 2)); - Version = 0; - } + //@todo version checking } // Parse properties - for (u32 iProp = 0; iProp < PropCount; iProp++) + for (u32 ChildIndex = 0; ChildIndex < PropertyCount; ChildIndex++) { - IPropertyTemplate *pPropTemp = pTemp->PropertyByIndex(iProp); - IProperty *pProp = pStruct->PropertyByIndex(iProp); + IProperty *pProperty = pStruct->ChildByIndex(ChildIndex); - if (pPropTemp->CookPreference() != eNeverCook && pPropTemp->IsInVersion(Version)) - ReadProperty(pProp, 0, rSCLY); + //@todo version check + if (pProperty->CookPreference() != ECookPreference::Never) + ReadProperty(pProperty, 0, rSCLY); } } CScriptObject* CScriptLoader::LoadObjectMP1(IInputStream& rSCLY) { - u32 ObjStart = rSCLY.Tell(); + u32 StartOffset = rSCLY.Tell(); u8 Type = rSCLY.ReadByte(); u32 Size = rSCLY.ReadLong(); u32 End = rSCLY.Tell() + Size; - CScriptTemplate *pTemp = mpMaster->TemplateByID((u32) Type); - if (!pTemp) + CScriptTemplate *pTemplate = mpGameTemplate->TemplateByID((u32) Type); + if (!pTemplate) { // No valid template for this object; can't load - Log::FileError(rSCLY.GetSourceString(), ObjStart, "Unknown object ID encountered: " + TString::HexString(Type, 2)); + Log::FileError(rSCLY.GetSourceString(), StartOffset, "Unknown object ID encountered: " + TString::HexString(Type, 2)); rSCLY.Seek(End, SEEK_SET); return nullptr; } u32 InstanceID = rSCLY.ReadLong() & 0x03FFFFFF; if (InstanceID == 0x03FFFFFF) InstanceID = mpArea->FindUnusedInstanceID(); - mpObj = new CScriptObject(InstanceID, mpArea, mpLayer, pTemp); + mpObj = new CScriptObject(InstanceID, mpArea, mpLayer, pTemplate); // Load connections u32 NumLinks = rSCLY.ReadLong(); @@ -268,8 +306,8 @@ CScriptObject* CScriptLoader::LoadObjectMP1(IInputStream& rSCLY) } // Load object... - CPropertyStruct *pBase = mpObj->mpProperties; - LoadStructMP1(rSCLY, pBase, static_cast(pBase->Template())); + CStructProperty* pProperties = pTemplate->Properties(); + LoadStructMP1(rSCLY, pProperties); // Cleanup and return rSCLY.Seek(End, SEEK_SET); @@ -288,11 +326,11 @@ CScriptLayer* CScriptLoader::LoadLayerMP1(IInputStream& rSCLY) mpLayer = new CScriptLayer(mpArea); mpLayer->Reserve(NumObjects); - for (u32 iObj = 0; iObj < NumObjects; iObj++) + for (u32 ObjectIndex = 0; ObjectIndex < NumObjects; ObjectIndex++) { - CScriptObject *pObj = LoadObjectMP1(rSCLY); - if (pObj) - mpLayer->AddInstance(pObj); + CScriptObject *pObject = LoadObjectMP1(rSCLY); + if (pObject) + mpLayer->AddInstance(pObject); } // Layer sizes are always a multiple of 32 - skip end padding before returning @@ -301,46 +339,39 @@ CScriptLayer* CScriptLoader::LoadLayerMP1(IInputStream& rSCLY) return mpLayer; } -void CScriptLoader::LoadStructMP2(IInputStream& rSCLY, CPropertyStruct *pStruct, CStructTemplate *pTemp) +void CScriptLoader::LoadStructMP2(IInputStream& rSCLY, CStructProperty* pStruct) { // Verify property count - u32 StructStart = rSCLY.Tell(); - StructStart += 0; - u32 PropCount = pTemp->Count(); + u32 ChildCount = pStruct->NumChildren(); - if (!pTemp->IsSingleProperty()) - PropCount = rSCLY.ReadShort(); + if (!pStruct->IsAtomic()) + ChildCount = rSCLY.ReadShort(); // Parse properties - for (u32 iProp = 0; iProp < PropCount; iProp++) + for (u32 ChildIdx = 0; ChildIdx < ChildCount; ChildIdx++) { - IProperty *pProp; - IPropertyTemplate *pPropTemp; + IProperty* pProperty = nullptr; u32 PropertyStart = rSCLY.Tell(); u32 PropertyID = -1; - u16 PropertyLength = 0; + u16 PropertySize = 0; u32 NextProperty = 0; - if (pTemp->IsSingleProperty()) + if (pStruct->IsAtomic()) { - pProp = pStruct->PropertyByIndex(iProp); - pPropTemp = pTemp->PropertyByIndex(iProp); + pProperty = pStruct->ChildByIndex(ChildIdx); } else { PropertyID = rSCLY.ReadLong(); - PropertyLength = rSCLY.ReadShort(); - NextProperty = rSCLY.Tell() + PropertyLength; - - pProp = pStruct->PropertyByID(PropertyID); - pPropTemp = pTemp->PropertyByID(PropertyID); + PropertySize = rSCLY.ReadShort(); + NextProperty = rSCLY.Tell() + PropertySize; + pProperty = pStruct->ChildByID(PropertyID); } - if (!pPropTemp) + if (!pProperty) Log::FileError(rSCLY.GetSourceString(), PropertyStart, "Can't find template for property " + TString::HexString(PropertyID) + " - skipping"); - else - ReadProperty(pProp, PropertyLength, rSCLY); + ReadProperty(pProperty, PropertySize, rSCLY); if (NextProperty > 0) rSCLY.Seek(NextProperty, SEEK_SET); @@ -354,7 +385,7 @@ CScriptObject* CScriptLoader::LoadObjectMP2(IInputStream& rSCLY) u16 ObjectSize = rSCLY.ReadShort(); u32 ObjEnd = rSCLY.Tell() + ObjectSize; - CScriptTemplate *pTemplate = mpMaster->TemplateByID(ObjectID); + CScriptTemplate* pTemplate = mpGameTemplate->TemplateByID(ObjectID); if (!pTemplate) { @@ -371,19 +402,19 @@ CScriptObject* CScriptLoader::LoadObjectMP2(IInputStream& rSCLY) u32 NumConnections = rSCLY.ReadShort(); mpObj->mOutLinks.reserve(NumConnections); - for (u32 iCon = 0; iCon < NumConnections; iCon++) + for (u32 LinkIdx = 0; LinkIdx < NumConnections; LinkIdx++) { u32 State = rSCLY.ReadLong(); u32 Message = rSCLY.ReadLong(); u32 ReceiverID = rSCLY.ReadLong() & 0x03FFFFFF; - CLink *pLink = new CLink(mpArea, State, Message, mpObj->mInstanceID, ReceiverID); + CLink* pLink = new CLink(mpArea, State, Message, mpObj->mInstanceID, ReceiverID); mpObj->mOutLinks.push_back(pLink); } // Load object rSCLY.Seek(0x6, SEEK_CUR); // Skip base struct ID + size - LoadStructMP2(rSCLY, mpObj->mpProperties, mpObj->mpTemplate->BaseStruct()); + LoadStructMP2(rSCLY, pTemplate->Properties()); // Cleanup and return rSCLY.Seek(ObjEnd, SEEK_SET); @@ -399,11 +430,11 @@ CScriptLayer* CScriptLoader::LoadLayerMP2(IInputStream& rSCLY) mpLayer = new CScriptLayer(mpArea); mpLayer->Reserve(NumObjects); - for (u32 iObj = 0; iObj < NumObjects; iObj++) + for (u32 ObjectIdx = 0; ObjectIdx < NumObjects; ObjectIdx++) { - CScriptObject *pObj = LoadObjectMP2(rSCLY); - if (pObj) - mpLayer->AddInstance(pObj); + CScriptObject* pObject = LoadObjectMP2(rSCLY); + if (pObject) + mpLayer->AddInstance(pObject); } return mpLayer; @@ -416,19 +447,16 @@ CScriptLayer* CScriptLoader::LoadLayer(IInputStream& rSCLY, CGameArea *pArea, EG CScriptLoader Loader; Loader.mVersion = Version; - Loader.mpMaster = CMasterTemplate::MasterForGame(Version); + Loader.mpGameTemplate = NGameList::GetGameTemplate(Version); Loader.mpArea = pArea; - if (!Loader.mpMaster) + if (!Loader.mpGameTemplate) { - Log::Write("This game doesn't have a master template; couldn't load script layer"); + Log::Write("This game doesn't have a game template; couldn't load script layer"); return nullptr; } - if (!Loader.mpMaster->IsLoadedSuccessfully()) - CTemplateLoader::LoadGameTemplates(Version); - - if (Version <= ePrime) + if (Version <= EGame::Prime) return Loader.LoadLayerMP1(rSCLY); else return Loader.LoadLayerMP2(rSCLY); @@ -439,21 +467,18 @@ CScriptObject* CScriptLoader::LoadInstance(IInputStream& rSCLY, CGameArea *pArea if (!rSCLY.IsValid()) return nullptr; CScriptLoader Loader; - Loader.mVersion = (ForceReturnsFormat ? eReturns : Version); - Loader.mpMaster = CMasterTemplate::MasterForGame(Version); + Loader.mVersion = (ForceReturnsFormat ? EGame::DKCReturns : Version); + Loader.mpGameTemplate = NGameList::GetGameTemplate(Version); Loader.mpArea = pArea; Loader.mpLayer = pLayer; - if (!Loader.mpMaster) + if (!Loader.mpGameTemplate) { - Log::Write("This game doesn't have a master template; couldn't load script instance"); + Log::Write("This game doesn't have a game template; couldn't load script instance"); return nullptr; } - if (!Loader.mpMaster->IsLoadedSuccessfully()) - CTemplateLoader::LoadGameTemplates(Version); - - if (Loader.mVersion <= ePrime) + if (Loader.mVersion <= EGame::Prime) return Loader.LoadObjectMP1(rSCLY); else return Loader.LoadObjectMP2(rSCLY); diff --git a/src/Core/Resource/Factory/CScriptLoader.h b/src/Core/Resource/Factory/CScriptLoader.h index c2c53d7a..26e94f94 100644 --- a/src/Core/Resource/Factory/CScriptLoader.h +++ b/src/Core/Resource/Factory/CScriptLoader.h @@ -5,24 +5,27 @@ #include "Core/Resource/Area/CGameArea.h" #include "Core/Resource/Script/CScriptObject.h" #include "Core/Resource/Script/CScriptLayer.h" -#include "Core/Resource/Script/CMasterTemplate.h" +#include "Core/Resource/Script/CGameTemplate.h" class CScriptLoader { EGame mVersion; - CScriptObject *mpObj; - CScriptLayer *mpLayer; - CGameArea *mpArea; - CMasterTemplate *mpMaster; + CScriptObject* mpObj; + CScriptLayer* mpLayer; + CGameArea* mpArea; + CGameTemplate *mpGameTemplate; + + // Current array item pointer + void* mpArrayItemData; CScriptLoader(); - void ReadProperty(IProperty *pProp, u32 Size, IInputStream& rSCLY); + void ReadProperty(IProperty* pProp, u32 Size, IInputStream& rSCLY); - void LoadStructMP1(IInputStream& rSCLY, CPropertyStruct *pStruct, CStructTemplate *pTemp); + void LoadStructMP1(IInputStream& rSCLY, CStructProperty* pStruct); CScriptObject* LoadObjectMP1(IInputStream& rSCLY); CScriptLayer* LoadLayerMP1(IInputStream& rSCLY); - void LoadStructMP2(IInputStream& rSCLY, CPropertyStruct *pStruct, CStructTemplate *pTemp); + void LoadStructMP2(IInputStream& rSCLY, CStructProperty* pStruct); CScriptObject* LoadObjectMP2(IInputStream& rSCLY); CScriptLayer* LoadLayerMP2(IInputStream& rSCLY); diff --git a/src/Core/Resource/Factory/CSkeletonLoader.cpp b/src/Core/Resource/Factory/CSkeletonLoader.cpp index 24599778..ed7c1b27 100644 --- a/src/Core/Resource/Factory/CSkeletonLoader.cpp +++ b/src/Core/Resource/Factory/CSkeletonLoader.cpp @@ -60,12 +60,12 @@ CSkeleton* CSkeletonLoader::LoadCINF(IInputStream& rCINF, CResourceEntry *pEntry // rotation value in MP2. The max bone count is 100 so the linked bone count will not be higher // than that. Additionally, every bone links to its parent at least and every skeleton (as far as I // know) has at least two bones so the linked bone count will never be 0. - if (Game == eUnknownGame) + if (Game == EGame::Invalid) { u32 Check = rCINF.PeekLong(); - Game = ((Check > 100 || Check == 0) ? eEchoes : ePrime); + Game = ((Check > 100 || Check == 0) ? EGame::Echoes : EGame::Prime); } - if (Game >= eEchoes) + if (Game >= EGame::Echoes) { pBone->mRotation = CQuaternion(rCINF); pBone->mLocalRotation = CQuaternion(rCINF); diff --git a/src/Core/Resource/Factory/CStringLoader.cpp b/src/Core/Resource/Factory/CStringLoader.cpp index c881c49e..63453681 100644 --- a/src/Core/Resource/Factory/CStringLoader.cpp +++ b/src/Core/Resource/Factory/CStringLoader.cpp @@ -44,11 +44,11 @@ void CStringLoader::LoadPrimeSTRG(IInputStream& rSTRG) { mpStringTable->mLangTables[iLang].Language = CFourCC(rSTRG); LangOffsets[iLang] = rSTRG.ReadLong(); - if (mVersion == eEchoes) rSTRG.Seek(0x4, SEEK_CUR); // Skipping strings size + if (mVersion == EGame::Echoes) rSTRG.Seek(0x4, SEEK_CUR); // Skipping strings size } // String names - if (mVersion == eEchoes) + if (mVersion == EGame::Echoes) LoadNameTable(rSTRG); // Strings @@ -56,7 +56,7 @@ void CStringLoader::LoadPrimeSTRG(IInputStream& rSTRG) for (u32 iLang = 0; iLang < NumLanguages; iLang++) { rSTRG.Seek(StringsStart + LangOffsets[iLang], SEEK_SET); - if (mVersion == ePrime) rSTRG.Seek(0x4, SEEK_CUR); // Skipping strings size + if (mVersion == EGame::Prime) rSTRG.Seek(0x4, SEEK_CUR); // Skipping strings size u32 LangStart = rSTRG.Tell(); CStringTable::SLangTable* pLang = &mpStringTable->mLangTables[iLang]; @@ -160,7 +160,7 @@ CStringTable* CStringLoader::LoadSTRG(IInputStream& rSTRG, CResourceEntry *pEntr if (!rSTRG.IsValid()) return nullptr; u32 Magic = rSTRG.ReadLong(); - EGame Version = eUnknownGame; + EGame Version = EGame::Invalid; if (Magic != 0x87654321) { @@ -170,10 +170,10 @@ CStringTable* CStringLoader::LoadSTRG(IInputStream& rSTRG, CResourceEntry *pEntr { rSTRG.Seek(Magic, SEEK_SET); if ((rSTRG.EoF()) || (rSTRG.ReadShort() == 0xFFFF)) - Version = ePrimeDemo; + Version = EGame::PrimeDemo; } - if (Version != ePrimeDemo) + if (Version != EGame::PrimeDemo) { Log::FileError(rSTRG.GetSourceString(), "Invalid STRG magic: " + TString::HexString(Magic)); return nullptr; @@ -185,7 +185,7 @@ CStringTable* CStringLoader::LoadSTRG(IInputStream& rSTRG, CResourceEntry *pEntr u32 FileVersion = rSTRG.ReadLong(); Version = GetFormatVersion(FileVersion); - if (FileVersion == eUnknownGame) + if (Version == EGame::Invalid) { Log::FileError(rSTRG.GetSourceString(), "Unsupported STRG version: " + TString::HexString(FileVersion, 0)); return nullptr; @@ -197,8 +197,8 @@ CStringTable* CStringLoader::LoadSTRG(IInputStream& rSTRG, CResourceEntry *pEntr Loader.mpStringTable = new CStringTable(pEntry); Loader.mVersion = Version; - if (Version == ePrimeDemo) Loader.LoadPrimeDemoSTRG(rSTRG); - else if (Version < eCorruption) Loader.LoadPrimeSTRG(rSTRG); + if (Version == EGame::PrimeDemo) Loader.LoadPrimeDemoSTRG(rSTRG); + else if (Version < EGame::Corruption) Loader.LoadPrimeSTRG(rSTRG); else Loader.LoadCorruptionSTRG(rSTRG); return Loader.mpStringTable; @@ -208,9 +208,9 @@ EGame CStringLoader::GetFormatVersion(u32 Version) { switch (Version) { - case 0x0: return ePrime; - case 0x1: return eEchoes; - case 0x3: return eCorruption; - default: return eUnknownGame; + case 0x0: return EGame::Prime; + case 0x1: return EGame::Echoes; + case 0x3: return EGame::Corruption; + default: return EGame::Invalid; } } diff --git a/src/Core/Resource/Factory/CTemplateLoader.cpp b/src/Core/Resource/Factory/CTemplateLoader.cpp deleted file mode 100644 index 4eebdae2..00000000 --- a/src/Core/Resource/Factory/CTemplateLoader.cpp +++ /dev/null @@ -1,1044 +0,0 @@ -#include "CTemplateLoader.h" -#include "CAreaLoader.h" -#include "Core/Resource/Script/IPropertyTemplate.h" -#include -#include - -const TString CTemplateLoader::mskTemplatesDir = "../templates/"; -const TString CTemplateLoader::mskGameListPath = CTemplateLoader::mskTemplatesDir + "GameList.xml"; - -using namespace tinyxml2; - -IPropertyTemplate* CTemplateLoader::LoadProperty(XMLElement *pElem, CScriptTemplate *pScript, CStructTemplate *pStruct, const TString& rkTemplateName) -{ - TString NodeType = TString(pElem->Name()).ToLower(); - TString IDAttr = TString(pElem->Attribute("ID")).ToLower(); - TString TypeAttr = TString(pElem->Attribute("type")).ToLower(); - TString NameAttr = pElem->Attribute("name"); - TString TemplateAttr = pElem->Attribute("template"); - - // Get ID + name - if (IDAttr.IsEmpty()) - { - Log::Error(rkTemplateName + ": ran into a property with no ID"); - return nullptr; - } - - u32 ID = IDAttr.ToInt32(); - TString Name; - - if (!NameAttr.IsEmpty()) - Name = NameAttr; - else if (mGame >= eEchoesDemo) - Name = CMasterTemplate::PropertyName(ID); - else - { - Log::Error(rkTemplateName + ": Property " + TString::HexString(ID) + " doesn't have a name either in the template itself nor in the master list"); - return nullptr; - } - - // Does the property already exist (eg is this an override)? - IPropertyTemplate *pProp = pStruct->PropertyByID(ID); - EPropertyType Type; - bool IsNewProperty = false; - - // If it doesn't, then we'll need to create it. - if (!pProp) - { - // Determine type - TString TypeStr = (NodeType == "property" ? TypeAttr : NodeType); - Type = PropStringToPropEnum(TypeStr); - IsNewProperty = true; - - if (Type == eInvalidProperty) - { - if (TypeStr.IsEmpty()) - Log::Error(rkTemplateName + ": Property " + TString::HexString(ID) + " doesn't have a type set"); - else - Log::Error(rkTemplateName + ": Property " + TString::HexString(ID) + " has an invalid type set: " + TypeStr); - - return nullptr; - } - - pProp = CreateProperty(ID, Type, Name, pScript, pStruct); - - if (!pProp) - { - Log::Error(rkTemplateName + ": Property " + TString::HexString(ID) + " seems to be using a valid but unsupported property type? (" + TypeStr + ")"); - return nullptr; - } - } - else - Type = pProp->Type(); - - // Common parameters - XMLElement *pParams = pElem->FirstChildElement(); - - while (pParams) - { - TString ParamName = TString(pParams->Name()).ToLower(); - TString ParamVal = TString(pParams->GetText()); - - // Load versions - if (ParamName == "versions") - { - XMLElement *pVersion = pParams->FirstChildElement("version"); - - while (pVersion) - { - TString VerName = pVersion->GetText(); - u32 VerIdx = mpMaster->GameVersion(VerName); - - if (VerIdx == -1) - Log::Error(rkTemplateName + ": Property " + TString::HexString(ID) + " has invalid version \"" + VerName + "\""); - else - pProp->mAllowedVersions.push_back(VerIdx); - - pVersion = pVersion->NextSiblingElement("version"); - } - } - - // Otherwise, delegate it to the template to parse the parameter. - // (This is done because there's no common base class for typed properties, so it's tough to handle this in the template loader.) - else pProp->SetParam(ParamName, ParamVal); - - pParams = pParams->NextSiblingElement(); - } - - // Asset-specific parameters - if (Type == eAssetProperty) - { - TString ExtensionsAttr = pElem->Attribute("extensions"); - - if (!ExtensionsAttr.IsEmpty()) - { - TStringList ExtensionsList = ExtensionsAttr.Split(", "); - CAssetTemplate *pAsset = static_cast(pProp); - pAsset->SetTypeFilter(ExtensionsList); - } - } - - // Enum-specific parameters - else if (Type == eEnumProperty) - { - CEnumTemplate *pEnum = static_cast(pProp); - - // Load template - if (!TemplateAttr.IsEmpty()) - LoadEnumTemplate(TemplateAttr, pEnum); - - // Load embedded enumerators - XMLElement *pEnumerators = pElem->FirstChildElement("enumerators"); - - if (pEnumerators) - LoadEnumerators(pEnumerators, pEnum, rkTemplateName); - } - - // Bitfield-specific parameters - else if (Type == eBitfieldProperty) - { - CBitfieldTemplate *pBitfield = static_cast(pProp); - - // Load template - if (!TemplateAttr.IsEmpty()) - LoadBitfieldTemplate(TemplateAttr, pBitfield); - - // Load embedded flags - XMLElement *pFlags = pElem->FirstChildElement("flags"); - - if (pFlags) - LoadBitFlags(pFlags, pBitfield, rkTemplateName); - } - - // Struct-specific parameters - else if ( (Type == eStructProperty) || (Type == eArrayProperty) ) - { - CStructTemplate *pStruct = static_cast(pProp); - - // Load template or struct type - if (!TemplateAttr.IsEmpty()) - LoadStructTemplate(TemplateAttr, pStruct); - - if (IsNewProperty && TemplateAttr.IsEmpty() && Type == eStructProperty) - pStruct->mIsSingleProperty = (TypeAttr == "single"); - - // Load sub-properties and parameter overrides - XMLElement *pProperties = pElem->FirstChildElement("properties"); - - if (pProperties) - LoadProperties(pProperties, pScript, pStruct, rkTemplateName); - } - - if (IsNewProperty) - CMasterTemplate::AddProperty(pProp, mMasterDir + rkTemplateName); - - return pProp; -} - -#define CREATE_PROP_TEMP(Class) new Class(ID, rkName, eNoCookPreference, pScript, mpMaster, pStruct) -IPropertyTemplate* CTemplateLoader::CreateProperty(u32 ID, EPropertyType Type, const TString& rkName, CScriptTemplate *pScript, CStructTemplate *pStruct) -{ - IPropertyTemplate *pOut = pStruct->PropertyByID(ID); - - switch (Type) - { - case eBoolProperty: pOut = CREATE_PROP_TEMP(TBoolTemplate); break; - case eByteProperty: pOut = CREATE_PROP_TEMP(TByteTemplate); break; - case eShortProperty: pOut = CREATE_PROP_TEMP(TShortTemplate); break; - case eLongProperty: pOut = CREATE_PROP_TEMP(TLongTemplate); break; - case eFloatProperty: pOut = CREATE_PROP_TEMP(TFloatTemplate); break; - case eStringProperty: pOut = CREATE_PROP_TEMP(TStringTemplate); break; - case eVector3Property: pOut = CREATE_PROP_TEMP(TVector3Template); break; - case eColorProperty: pOut = CREATE_PROP_TEMP(TColorTemplate); break; - case eSoundProperty: pOut = CREATE_PROP_TEMP(TSoundTemplate); break; - case eAssetProperty: pOut = CREATE_PROP_TEMP(CAssetTemplate); break; - case eCharacterProperty: pOut = CREATE_PROP_TEMP(TCharacterTemplate); break; - case eMayaSplineProperty: pOut = CREATE_PROP_TEMP(TMayaSplineTemplate); break; - case eEnumProperty: pOut = CREATE_PROP_TEMP(CEnumTemplate); break; - case eBitfieldProperty: pOut = CREATE_PROP_TEMP(CBitfieldTemplate); break; - case eArrayProperty: pOut = CREATE_PROP_TEMP(CArrayTemplate); break; - case eStructProperty: pOut = CREATE_PROP_TEMP(CStructTemplate); break; - } - - if (pOut) - pStruct->mSubProperties.push_back(pOut); - - return pOut; -} - -void CTemplateLoader::LoadStructTemplate(const TString& rkTemplateFileName, CStructTemplate *pStruct) -{ - // Check whether this struct has already been read - auto it = mpMaster->mStructTemplates.find(rkTemplateFileName); - CStructTemplate *pSource = (it == mpMaster->mStructTemplates.end() ? nullptr : it->second); - - // If the source hasn't been read yet, then we read it and add it to master's list - if (!pSource) - { - XMLDocument Doc; - OpenXML(mskTemplatesDir + mMasterDir + rkTemplateFileName, Doc); - - if (!Doc.Error()) - { - XMLElement *pRootElem; - - if (pStruct->Type() == eStructProperty) - { - pSource = new CStructTemplate(-1, nullptr, mpMaster); - pRootElem = Doc.FirstChildElement("struct"); - - if (!pRootElem) - { - Log::Error(rkTemplateFileName + ": There is no root \"struct\" element"); - return; - } - - TString TypeAttr = TString(pRootElem->Attribute("type")).ToLower(); - - if (TypeAttr.IsEmpty()) - { - Log::Error(rkTemplateFileName + ": There is no struct type specified"); - return; - } - - pSource->mIsSingleProperty = (TypeAttr == "single" ? true : false); - } - - else if (pStruct->Type() == eArrayProperty) - { - pSource = new CArrayTemplate(-1, nullptr, mpMaster); - pRootElem = Doc.FirstChildElement("array"); - - if (!pRootElem) - { - Log::Error(rkTemplateFileName + ": There is no root \"array\" element"); - return; - } - } - pSource->mSourceFile = rkTemplateFileName; - - TString NameAttr = TString(pRootElem->Attribute("name")); - if (!NameAttr.IsEmpty()) - pSource->mName = NameAttr; - - // Read sub-properties - XMLElement *pSubPropsElem = pRootElem->FirstChildElement("properties"); - - if (pSubPropsElem) - { - LoadProperties(pSubPropsElem, nullptr, pSource, rkTemplateFileName); - mpMaster->mStructTemplates[rkTemplateFileName] = pSource; - } - - else - { - Log::Error(rkTemplateFileName + ": There is no \"properties\" block element"); - delete pSource; - pSource = nullptr; - } - } - } - - // Copy source to the new struct template - if (pSource) - pStruct->CopyStructData(pSource); -} - -void CTemplateLoader::LoadEnumTemplate(const TString& rkTemplateFileName, CEnumTemplate *pEnum) -{ - XMLDocument Doc; - OpenXML(mskTemplatesDir + mMasterDir + rkTemplateFileName, Doc); - - if (!Doc.Error()) - { - pEnum->mSourceFile = rkTemplateFileName; - XMLElement *pRootElem = Doc.FirstChildElement("enum"); - - if (!pRootElem) - { - Log::Error(rkTemplateFileName + ": There is no root \"enum\" element"); - return; - } - - XMLElement *pEnumers = pRootElem->FirstChildElement("enumerators"); - - if (pEnumers) - LoadEnumerators(pEnumers, pEnum, rkTemplateFileName); - - else - Log::Error(rkTemplateFileName + ": There is no \"enumerators\" block element"); - - } -} - -void CTemplateLoader::LoadBitfieldTemplate(const TString& rkTemplateFileName, CBitfieldTemplate *pBitfield) -{ - XMLDocument Doc; - OpenXML(mskTemplatesDir + mMasterDir + rkTemplateFileName, Doc); - - if (!Doc.Error()) - { - pBitfield->mSourceFile = rkTemplateFileName; - XMLElement *pRootElem = Doc.FirstChildElement("bitfield"); - - if (!pRootElem) - { - Log::Error(rkTemplateFileName + ": There is no root \"bitfield\" element"); - return; - } - - XMLElement *pFlags = pRootElem->FirstChildElement("flags"); - - if (pFlags) - LoadBitFlags(pFlags, pBitfield, rkTemplateFileName); - - else - Log::Error(rkTemplateFileName + ": There is no \"flags\" block element"); - } -} - -void CTemplateLoader::LoadProperties(XMLElement *pPropertiesElem, CScriptTemplate *pScript, CStructTemplate *pStruct, const TString& rkTemplateName) -{ - XMLElement *pChild = pPropertiesElem->FirstChildElement(); - - while (pChild) - { - TString NodeType = TString(pChild->Name()).ToLower(); - - if ( (NodeType != "property") && (NodeType != "struct") && (NodeType != "enum") && (NodeType != "bitfield") && (NodeType != "array") ) - { - Log::Error(rkTemplateName + ": A node in a properties block has an invalid name: " + NodeType); - } - - // LoadProperty adds newly created properties to the struct, so we don't need to do anything other than call it for each sub-element. - else - { - LoadProperty(pChild, pScript, pStruct, rkTemplateName); - } - - pChild = pChild->NextSiblingElement(); - } - - pStruct->mVersionPropertyCounts.resize(mpMaster->NumGameVersions()); - pStruct->DetermineVersionPropertyCounts(); -} - -void CTemplateLoader::LoadEnumerators(XMLElement *pEnumeratorsElem, CEnumTemplate *pTemp, const TString& rkTemplateName) -{ - XMLElement *pChild = pEnumeratorsElem->FirstChildElement("enumerator"); - - while (pChild) - { - const char *pkID = pChild->Attribute("ID"); - const char *pkName = pChild->Attribute("name"); - - if (pkID && pkName) - pTemp->mEnumerators.push_back(CEnumTemplate::SEnumerator(pkName, TString(pkID).ToInt32())); - - else - { - TString LogErrorBase = rkTemplateName + ": Couldn't parse enumerator; "; - - if (!pkID && pkName) Log::Error(LogErrorBase + "no valid ID (" + pkName + ")"); - else if (pkID && !pkName) Log::Error(LogErrorBase + "no valid name (ID " + pkID + ")"); - else Log::Error(LogErrorBase + "no valid ID or name"); - } - - pChild = pChild->NextSiblingElement("enumerator"); - } -} - -void CTemplateLoader::LoadBitFlags(XMLElement *pFlagsElem, CBitfieldTemplate *pTemp, const TString& templateName) -{ - XMLElement *pChild = pFlagsElem->FirstChildElement("flag"); - - while (pChild) - { - const char *pkMask = pChild->Attribute("mask"); - const char *pkName = pChild->Attribute("name"); - - if (pkMask && pkName) - pTemp->mBitFlags.push_back(CBitfieldTemplate::SBitFlag(pkName, TString(pkMask).ToInt32())); - - else - { - TString LogErrorBase = templateName + ": Couldn't parse bit flag; "; - - if (!pkMask && pkName) Log::Error(LogErrorBase + "no mask (" + pkName + ")"); - else if (pkMask && !pkName) Log::Error(LogErrorBase + "no name (mask " + pkMask + ")"); - else Log::Error(LogErrorBase + "no valid ID or name"); - } - - pChild = pChild->NextSiblingElement("flag"); - } -} - -// ************ SCRIPT OBJECT ************ -CScriptTemplate* CTemplateLoader::LoadScriptTemplate(XMLDocument *pDoc, const TString& rkTemplateName, u32 ObjectID) -{ - CScriptTemplate *pScript = new CScriptTemplate(mpMaster); - pScript->mObjectID = ObjectID; - pScript->mpBaseStruct = new CStructTemplate(-1, pScript, mpMaster); - pScript->mSourceFile = rkTemplateName; - - XMLElement *pRoot = pDoc->FirstChildElement("ScriptTemplate"); - - // Name - XMLElement *pNameElem = pRoot->FirstChildElement("name"); - - if (pNameElem) - { - pScript->mTemplateName = pNameElem->GetText(); - pScript->mpBaseStruct->SetName(pScript->mTemplateName); - } - - // Modules - XMLElement *pModulesElem = pRoot->FirstChildElement("modules"); - - if (pModulesElem) - { - XMLElement *pModuleElem = pModulesElem->FirstChildElement("module"); - - while (pModuleElem) - { - pScript->mModules.push_back(pModuleElem->GetText()); - pModuleElem = pModuleElem->NextSiblingElement("module"); - } - } - - // Properties - XMLElement *pPropsElem = pRoot->FirstChildElement("properties"); - - if (pPropsElem) - LoadProperties(pPropsElem, pScript, pScript->mpBaseStruct, rkTemplateName); - else - Log::Error(rkTemplateName + ": There is no \"properties\" block element"); - - // Editor Parameters - XMLElement *pEditor = pRoot->FirstChildElement("editor"); - - if (pEditor) - { - // Editor Properties - XMLElement *pEdProperties = pEditor->FirstChildElement("properties"); - XMLElement *pEdProp = pEdProperties->FirstChildElement("property"); - - while (pEdProp) - { - TString Name = TString(pEdProp->Attribute("name")).ToLower(); - TString ID = TString(pEdProp->Attribute("ID")); - - if (!Name.IsEmpty() && !ID.IsEmpty()) - { - if (Name == "instancename") - pScript->mNameIDString = ID; - else if (Name == "position") - pScript->mPositionIDString = ID; - else if (Name == "rotation") - pScript->mRotationIDString = ID; - else if (Name == "scale") - pScript->mScaleIDString = ID; - else if (Name == "active") - pScript->mActiveIDString = ID; - else if (Name == "lightparameters") - pScript->mLightParametersIDString = ID; - } - - pEdProp = pEdProp->NextSiblingElement("property"); - } - - // Editor Assets - XMLElement *pEdAssets = pEditor->FirstChildElement("assets"); - - if (pEdAssets) - { - XMLElement *pAsset = pEdAssets->FirstChildElement(); - - while (pAsset) - { - TString Type = TString(pAsset->Name()).ToLower(); - TString Source = TString(pAsset->Attribute("source")).ToLower(); - TString ID = pAsset->GetText(); - - if (!Source.IsEmpty() && !ID.IsEmpty()) - { - CScriptTemplate::SEditorAsset Asset; - TStringList AcceptedExtensions; - - if (Type == "animparams") - { - Asset.AssetType = CScriptTemplate::SEditorAsset::eAnimParams; - AcceptedExtensions.push_back("ANCS"); - AcceptedExtensions.push_back("CHAR"); - } - - else if (Type == "model") - { - Asset.AssetType = CScriptTemplate::SEditorAsset::eModel; - AcceptedExtensions.push_back("CMDL"); - } - - else if (Type == "billboard") - { - Asset.AssetType = CScriptTemplate::SEditorAsset::eBillboard; - AcceptedExtensions.push_back("TXTR"); - } - - else if (Type == "collision") - { - Asset.AssetType = CScriptTemplate::SEditorAsset::eCollision; - AcceptedExtensions.push_back("DCLN"); - } - - else - { - pAsset = pAsset->NextSiblingElement(); - continue; - } - - if (Source == "property") - Asset.AssetSource = CScriptTemplate::SEditorAsset::eProperty; - else if (Source == "file") - Asset.AssetSource = CScriptTemplate::SEditorAsset::eFile; - else - { - pAsset = pAsset->NextSiblingElement(); - continue; - } - - TString Force = pAsset->Attribute("force"); - - if (!Force.IsEmpty()) - Asset.ForceNodeIndex = Force.ToInt32(); - else - Asset.ForceNodeIndex = -1; - - Asset.AssetLocation = ID; - - // Validate property asset - if (Asset.AssetSource == CScriptTemplate::SEditorAsset::eProperty) - { - if (!pScript->mpBaseStruct->HasProperty(Asset.AssetLocation)) - { - Log::Error(rkTemplateName + ": Invalid property for " + Type + " asset: " + ID); - pAsset = pAsset->NextSiblingElement(); - continue; - } - } - - // Validate file asset - else - { - CResourceEntry *pEntry = gpEditorStore->FindEntry(ID); - - if (!pEntry) - { - Log::Error(rkTemplateName + ": Invalid file for " + Type + " asset: " + ID); - pAsset = pAsset->NextSiblingElement(); - continue; - } - } - - pScript->mAssets.push_back(Asset); - } - - pAsset = pAsset->NextSiblingElement(); - } - } - - // Attachments - XMLElement *pAttachments = pEditor->FirstChildElement("attachments"); - - if (pAttachments) - { - XMLElement *pAttachment = pAttachments->FirstChildElement("attachment"); - u32 AttachIdx = 0; - - while (pAttachment) - { - SAttachment Attachment; - Attachment.AttachProperty = pAttachment->Attribute("propertyID"); - Attachment.LocatorName = pAttachment->Attribute("locator"); - Attachment.AttachType = eAttach; - - // Validate property - IPropertyTemplate *pProp = pScript->mpBaseStruct->PropertyByIDString(Attachment.AttachProperty); - - if (!pProp) - Log::Error(rkTemplateName + ": Invalid property for attachment " + TString::FromInt32(AttachIdx) + ": " + Attachment.AttachProperty); - else if (pProp->Type() != eCharacterProperty && (pProp->Type() != eAssetProperty || !static_cast(pProp)->TypeFilter().Accepts(eModel))) - Log::Error(rkTemplateName + ": Property referred to by attachment " + TString::FromInt32(AttachIdx) + " is not an attachable asset! Must be a file property that accepts CMDLs, or a character property."); - - else - { - // Check sub-elements - XMLElement *pParams = pAttachment->FirstChildElement(); - - while (pParams) - { - TString ParamName = pParams->Name(); - - if (ParamName == "attach_type") - { - TString Type = TString(pParams->GetText()).ToLower(); - if (Type == "follow") Attachment.AttachType = eFollow; - else if (Type != "attach") Log::Error(rkTemplateName + ": Attachment " + TString::FromInt32(AttachIdx) + " has invalid attach type specified: " + Type); - } - - pParams = pParams->NextSiblingElement(); - } - - pScript->mAttachments.push_back(Attachment); - } - - pAttachment = pAttachment->NextSiblingElement("attachment"); - } - } - - // Preview Scale - XMLElement *pPreviewScale = pEditor->FirstChildElement("preview_scale"); - - if (pPreviewScale) - pScript->mPreviewScale = TString(pPreviewScale->GetText()).ToFloat(); - - // Rotation - XMLElement *pRotType = pEditor->FirstChildElement("rotation_type"); - - if (pRotType) - { - TString RotType = TString(pRotType->GetText()).ToLower(); - - if (!RotType.IsEmpty()) - { - if (RotType == "disabled") pScript->mRotationType = CScriptTemplate::eRotationDisabled; - else pScript->mRotationType = CScriptTemplate::eRotationEnabled; - } - } - - // Scale - XMLElement *pScaleType = pEditor->FirstChildElement("scale_type"); - - if (pScaleType) - { - TString ScaleType = TString(pScaleType->GetText()).ToLower(); - - if (!ScaleType.IsEmpty()) - { - if (ScaleType == "disabled") pScript->mScaleType = CScriptTemplate::eScaleDisabled; - else if (ScaleType == "volume") pScript->mScaleType = CScriptTemplate::eScaleVolume; - else pScript->mScaleType = CScriptTemplate::eScaleEnabled; - } - } - - // Preview Volume - if (pScript->mScaleType == CScriptTemplate::eScaleVolume) - { - XMLElement *pVolume = pEditor->FirstChildElement("preview_volume"); - - // Lambda to avoid duplicating volume shape code - auto GetVolumeType = [](const TString& rkType) -> EVolumeShape { - if (rkType == "none") return eNoShape; - if (rkType == "box") return eBoxShape; - if (rkType == "axisalignedbox") return eAxisAlignedBoxShape; - if (rkType == "ellipsoid") return eEllipsoidShape; - if (rkType == "cylinder") return eCylinderShape; - if (rkType == "conditional") return eConditionalShape; - return eInvalidShape; - }; - - TString VolShape = TString(pVolume->Attribute("shape")).ToLower(); - - if (!VolShape.IsEmpty()) - pScript->mVolumeShape = GetVolumeType(VolShape); - - TString VolScale = TString(pVolume->Attribute("scale")).ToLower(); - - if (!VolScale.IsEmpty()) - pScript->mVolumeScale = VolScale.ToFloat(); - - // Conditional - if (pScript->mVolumeShape == eConditionalShape) - { - TString ConditionID = pVolume->Attribute("propertyID"); - - if (!ConditionID.IsEmpty()) - { - pScript->mVolumeConditionIDString = ConditionID; - XMLElement *pCondition = pVolume->FirstChildElement("condition"); - - while (pCondition) - { - TString ConditionValue = TString(pCondition->Attribute("value")).ToLower(); - TString ConditionShape = TString(pCondition->Attribute("shape")).ToLower(); - - if (!ConditionValue.IsEmpty() && !ConditionShape.IsEmpty()) - { - CScriptTemplate::SVolumeCondition Condition; - Condition.Shape = GetVolumeType(ConditionShape); - - if (ConditionValue == "true") - Condition.Value = 1; - else if (ConditionValue == "false") - Condition.Value = 0; - else - Condition.Value = ConditionValue.ToInt32(16); - - TString ConditionScale = pCondition->Attribute("scale"); - if (!ConditionScale.IsEmpty()) - Condition.Scale = ConditionScale.ToFloat(); - else - Condition.Scale = 1.f; - - pScript->mVolumeConditions.push_back(Condition); - } - - pCondition = pCondition->NextSiblingElement("condition"); - } - } - } - } - } - - return pScript; -} - -// ************ MASTER ************ -void CTemplateLoader::LoadMasterTemplate(XMLDocument *pDoc, CMasterTemplate *pMaster) -{ - mpMaster = pMaster; - mMasterDir = pMaster->mSourceFile.GetFileDirectory(); - - XMLElement *pRoot = pDoc->FirstChildElement("MasterTemplate"); - mpMaster->mVersion = TString(pRoot->Attribute("version")).ToInt32(); - - XMLElement *pElem = pRoot->FirstChildElement(); - - while (pElem) - { - TString NodeName = pElem->Name(); - - // Versions - if (NodeName == "versions") - { - XMLElement *pVersion = pElem->FirstChildElement("version"); - - while (pVersion) - { - mpMaster->mGameVersions.push_back(pVersion->GetText()); - pVersion = pVersion->NextSiblingElement("version"); - } - } - - // Objects - else if (NodeName == "objects") - { - XMLElement *pObj = pElem->FirstChildElement("object"); - - while (pObj) - { - // ID can either be a hex number or an ASCII fourCC - TString StrID = pObj->Attribute("ID"); - u32 ID; - - if (StrID.IsHexString(true)) - ID = StrID.ToInt32(); - else - ID = CFourCC(StrID).ToLong(); - - // Load up the object - TString TemplateName = pObj->Attribute("template"); - - XMLDocument ScriptXML; - OpenXML(mskTemplatesDir + mMasterDir + TemplateName, ScriptXML); - - if (!ScriptXML.Error()) - { - CScriptTemplate *pTemp = LoadScriptTemplate(&ScriptXML, TemplateName, ID); - - if (pTemp) - mpMaster->mTemplates[ID] = pTemp; - } - - pObj = pObj->NextSiblingElement("object"); - } - } - - // States - else if (NodeName == "states") - { - XMLElement *pState = pElem->FirstChildElement("state"); - - while (pState) - { - TString StrID = pState->Attribute("ID"); - u32 StateID; - - if (StrID.IsHexString(true)) - StateID = StrID.ToInt32(); - else - StateID = CFourCC(StrID).ToLong(); - - TString StateName = pState->Attribute("name"); - mpMaster->mStates[StateID] = SState(StateID, StateName); - pState = pState->NextSiblingElement("state"); - } - } - - // Messages - else if (NodeName == "messages") - { - XMLElement *pMessage = pElem->FirstChildElement("message"); - - while (pMessage) - { - TString StrID = pMessage->Attribute("ID"); - u32 MessageID; - - if (StrID.IsHexString(true)) - MessageID = StrID.ToInt32(); - else - MessageID = CFourCC(StrID).ToLong(); - - TString MessageName = pMessage->Attribute("name"); - mpMaster->mMessages[MessageID] = SMessage(MessageID, MessageName); - pMessage = pMessage->NextSiblingElement("message"); - } - } - - pElem = pElem->NextSiblingElement(); - } - - pMaster->mFullyLoaded = true; -} - -CMasterTemplate* CTemplateLoader::LoadGameInfo(XMLNode *pNode) -{ - CMasterTemplate *pMaster = new CMasterTemplate(); - XMLElement *pGameElem = pNode->FirstChildElement(); - - // Parse game parameters - while (pGameElem) - { - TString NodeName = TString(pGameElem->Name()).ToLower(); - - if (NodeName == "name") - pMaster->mGameName = pGameElem->GetText(); - - else if (NodeName == "mrea") - { - u32 VersionNum = std::stoul(pGameElem->GetText(), 0, 16); - pMaster->mGame = CAreaLoader::GetFormatVersion(VersionNum); - } - - else if (NodeName == "master") - { - TString MasterPath = pGameElem->GetText(); - pMaster->mSourceFile = MasterPath; - } - - pGameElem = pGameElem->NextSiblingElement(); - } - - return pMaster; -} - -// ************ UTILITY ************ -void CTemplateLoader::OpenXML(const TString& rkPath, XMLDocument& rDoc) -{ - TString AbsPath = rkPath; - rDoc.LoadFile(*AbsPath); - - if (rDoc.Error()) - { - TString Name = AbsPath.GetFileName(); - Log::Error("Error opening " + Name + ": " + ErrorName(rDoc.ErrorID())); - } -} - -TString CTemplateLoader::ErrorName(XMLError Error) -{ - switch (Error) - { - case XML_SUCCESS: return "Success"; - case XML_NO_ATTRIBUTE: return "No attribute"; - case XML_WRONG_ATTRIBUTE_TYPE: return "Wrong attribute type"; - case XML_ERROR_FILE_NOT_FOUND: return "File not found"; - case XML_ERROR_FILE_COULD_NOT_BE_OPENED: return "File could not be opened"; - case XML_ERROR_FILE_READ_ERROR: return "File read error"; - case XML_ERROR_ELEMENT_MISMATCH: return "Element mismatch"; - case XML_ERROR_PARSING_ELEMENT: return "Parsing element"; - case XML_ERROR_PARSING_ATTRIBUTE: return "Parsing attribute"; - case XML_ERROR_IDENTIFYING_TAG: return "Identifying tag"; - case XML_ERROR_PARSING_TEXT: return "Parsing text"; - case XML_ERROR_PARSING_CDATA: return "Parsing CData"; - case XML_ERROR_PARSING_COMMENT: return "Parsing comment"; - case XML_ERROR_PARSING_DECLARATION: return "Parsing declaration"; - case XML_ERROR_PARSING_UNKNOWN: return "Parsing unknown"; - case XML_ERROR_EMPTY_DOCUMENT: return "Empty document"; - case XML_ERROR_MISMATCHED_ELEMENT: return "Mismatched element"; - case XML_ERROR_PARSING: return "Parsing"; - case XML_CAN_NOT_CONVERT_TEXT: return "Cannot convert text"; - case XML_NO_TEXT_NODE: return "No text node"; - default: return "Unknown error"; - } -} - -// ************ PUBLIC ************ -void CTemplateLoader::LoadGameList() -{ - Log::Write("Loading game list"); - - // Load Game List XML - XMLDocument GameListXML; - OpenXML(mskGameListPath, GameListXML); - - if (GameListXML.Error()) - return; - - // Parse - XMLElement *pRoot = GameListXML.FirstChildElement("GameList"); - const char *pkGameListVersion = pRoot->Attribute("version"); - - if (pkGameListVersion) - CMasterTemplate::smGameListVersion = TString(pkGameListVersion).ToInt32(10); - - XMLElement *pElem = pRoot->FirstChildElement(); - - while (pElem) - { - TString NodeName = TString(pElem->Name()).ToLower(); - - // Properties - if (NodeName == "properties") - { - TString PropListPath = pElem->GetText(); - XMLDocument PropListXML; - OpenXML(mskTemplatesDir + PropListPath, PropListXML); - - if (!PropListXML.Error()) - LoadPropertyList(&PropListXML, PropListPath); - } - - // Games - else if (NodeName == "game") - { - CTemplateLoader Loader(mskTemplatesDir); - CMasterTemplate *pMaster = Loader.LoadGameInfo(pElem); - CMasterTemplate::smMasterMap[pMaster->mGame] = pMaster; - } - - pElem = pElem->NextSiblingElement(); - } -} - -void CTemplateLoader::LoadGameTemplates(EGame Game) -{ - std::list MasterList = CMasterTemplate::MasterList(); - - for (auto it = MasterList.begin(); it != MasterList.end(); it++) - { - CMasterTemplate *pMaster = *it; - - if (pMaster->Game() == Game && !pMaster->IsLoadedSuccessfully()) - { - XMLDocument MasterXML; - OpenXML(mskTemplatesDir + pMaster->mSourceFile, MasterXML); - - if (!MasterXML.Error()) - { - CTemplateLoader Loader(mskTemplatesDir); - Loader.mGame = Game; - Loader.LoadMasterTemplate(&MasterXML, pMaster); - } - - break; - } - } -} - -void CTemplateLoader::LoadAllGames() -{ - std::list MasterList = CMasterTemplate::MasterList(); - - for (auto it = MasterList.begin(); it != MasterList.end(); it++) - { - CMasterTemplate *pMaster = *it; - - if (!pMaster->IsLoadedSuccessfully()) - { - XMLDocument MasterXML; - OpenXML(mskTemplatesDir + pMaster->mSourceFile, MasterXML); - - if (!MasterXML.Error()) - { - CTemplateLoader Loader(mskTemplatesDir); - Loader.mGame = pMaster->Game(); - Loader.LoadMasterTemplate(&MasterXML, pMaster); - } - } - } -} - -void CTemplateLoader::LoadPropertyList(XMLDocument *pDoc, const TString& ListName) -{ - XMLElement *pRootElem = pDoc->FirstChildElement("Properties"); - - if (!pRootElem) - Log::Error(ListName + ": There is no root \"Properties\" block element"); - - else - { - XMLElement *pElem = pRootElem->FirstChildElement("property"); - - while (pElem) - { - TString ID = pElem->Attribute("ID"); - TString Name = pElem->Attribute("name"); - - if (!ID.IsEmpty() && !Name.IsEmpty()) - CMasterTemplate::smPropertyNames[ID.ToInt32()] = Name; - - pElem = pElem->NextSiblingElement(); - } - } -} diff --git a/src/Core/Resource/Factory/CTemplateLoader.h b/src/Core/Resource/Factory/CTemplateLoader.h deleted file mode 100644 index 848b1782..00000000 --- a/src/Core/Resource/Factory/CTemplateLoader.h +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef CTEMPLATELOADER_H -#define CTEMPLATELOADER_H - -#include "Core/Resource/Script/CMasterTemplate.h" -#include "Core/Resource/Script/CScriptTemplate.h" -#include - -class CTemplateLoader -{ - static const TString mskTemplatesDir; - static const TString mskGameListPath; - - CMasterTemplate *mpMaster; - EGame mGame; - TString mTemplatesDir; - TString mMasterDir; - - // Constructor - CTemplateLoader(const TString& rkTemplatesDir) - : mTemplatesDir(rkTemplatesDir) {} - - // Load Property - IPropertyTemplate* LoadProperty(tinyxml2::XMLElement *pElem, CScriptTemplate *pScript, CStructTemplate *pParentStruct, const TString& rkTemplateName); - IPropertyTemplate* CreateProperty(u32 ID, EPropertyType Type, const TString& rkName, CScriptTemplate *pScript, CStructTemplate *pStruct); - - void LoadStructTemplate(const TString& rkTemplateFileName, CStructTemplate *pStruct); - void LoadEnumTemplate(const TString& rkTemplateFileName, CEnumTemplate *pEnum); - void LoadBitfieldTemplate(const TString& rkTemplateFileName, CBitfieldTemplate *pBitfield); - - void LoadProperties(tinyxml2::XMLElement *pPropertiesElem, CScriptTemplate *pScript, CStructTemplate *pStruct, const TString& rkTemplateName); - void LoadEnumerators(tinyxml2::XMLElement *pEnumeratorsElem, CEnumTemplate *pEnum, const TString& rkTemplateName); - void LoadBitFlags(tinyxml2::XMLElement *pFlagsElem, CBitfieldTemplate *pBitfield, const TString& rkTemplateName); - - // Load Script Object - CScriptTemplate* LoadScriptTemplate(tinyxml2::XMLDocument *pDoc, const TString& rkTemplateName, u32 ObjectID); - - // Load Master - CMasterTemplate* LoadGameInfo(tinyxml2::XMLNode *pNode); - void LoadMasterTemplate(tinyxml2::XMLDocument *pDoc, CMasterTemplate *pMaster); - - // Utility - static void OpenXML(const TString& rkPath, tinyxml2::XMLDocument& rDoc); - static TString ErrorName(tinyxml2::XMLError Error); - -public: - static void LoadGameList(); - static void LoadGameTemplates(EGame Game); - static void LoadAllGames(); - static void LoadPropertyList(tinyxml2::XMLDocument *pDoc, const TString& rkListName); -}; - -#endif // CTEMPLATELOADER_H diff --git a/src/Core/Resource/Factory/CUnsupportedFormatLoader.cpp b/src/Core/Resource/Factory/CUnsupportedFormatLoader.cpp index 6218f15c..63cc2a31 100644 --- a/src/Core/Resource/Factory/CUnsupportedFormatLoader.cpp +++ b/src/Core/Resource/Factory/CUnsupportedFormatLoader.cpp @@ -9,12 +9,12 @@ void CUnsupportedFormatLoader::PerformCheating(IInputStream& rFile, EGame Game, std::vector Data(rFile.Size() - rFile.Tell()); rFile.ReadBytes(Data.data(), Data.size()); - u32 MaxIndex = (Game <= eEchoes ? Data.size() - 3 : Data.size() - 7); + u32 MaxIndex = (Game <= EGame::Echoes ? Data.size() - 3 : Data.size() - 7); CAssetID ID; for (u32 iByte = 0; iByte < MaxIndex; iByte++) { - if (Game <= eEchoes) + if (Game <= EGame::Echoes) { ID = ( (Data[iByte+0] << 24) | (Data[iByte+1] << 16) | @@ -44,17 +44,17 @@ CAudioMacro* CUnsupportedFormatLoader::LoadCAUD(IInputStream& rCAUD, CResourceEn ASSERT(Magic == FOURCC('CAUD')); u32 Version = rCAUD.ReadLong(); - EGame Game = (Version == 0x2 ? eCorruptionProto : - Version == 0x9 ? eCorruption : - Version == 0xE ? eReturns : - eUnknownGame); - ASSERT(Game != eUnknownGame && Game == pEntry->Game()); + EGame Game = (Version == 0x2 ? EGame::CorruptionProto : + Version == 0x9 ? EGame::Corruption : + Version == 0xE ? EGame::DKCReturns : + EGame::Invalid); + ASSERT(Game != EGame::Invalid && Game == pEntry->Game()); CAudioMacro *pMacro = new CAudioMacro(pEntry); pMacro->mMacroName = rCAUD.ReadString(); // DKCR is missing the sample data size value, and the bulk of the format isn't well understood, unfortunately - if (Game == eReturns) + if (Game == EGame::DKCReturns) { std::list AssetList; PerformCheating(rCAUD, pEntry->Game(), AssetList); @@ -71,7 +71,7 @@ CAudioMacro* CUnsupportedFormatLoader::LoadCAUD(IInputStream& rCAUD, CResourceEn for (u32 iVol = 0; iVol < NumVolGroups; iVol++) rCAUD.ReadString(); - u32 SkipAmt = (Game == eCorruptionProto ? 0x10 : 0x14); + u32 SkipAmt = (Game == EGame::CorruptionProto ? 0x10 : 0x14); rCAUD.Seek(SkipAmt, SEEK_CUR); u32 NumSamples = rCAUD.ReadLong(); @@ -237,9 +237,9 @@ CDependencyGroup* CUnsupportedFormatLoader::LoadFRME(IInputStream& rFRME, CResou else if (Version == 4 || Version == 5 || Version == 0xD || Version == 0xE || Version == 0x10) { EGame Game; - if (Version == 4) Game = eEchoes; - else if (Version == 0x10) Game = eReturns; - else Game = eCorruption; + if (Version == 4) Game = EGame::Echoes; + else if (Version == 0x10) Game = EGame::DKCReturns; + else Game = EGame::Corruption; u32 NumDependencies = rFRME.ReadLong(); @@ -359,7 +359,7 @@ CDependencyGroup* CUnsupportedFormatLoader::LoadHIER(IInputStream& rHIER, CResou // Note: For some reason this file still exists in MP3 and it's identical to MP2, including with 32-bit asset IDs. // Obviously we can't read 32-bit asset IDs in MP3, so this file should just be ignored. - if (pEntry->Game() > eEchoes) + if (pEntry->Game() > EGame::Echoes) return pOut; for (u32 iNode = 0; iNode < NumNodes; iNode++) @@ -382,8 +382,8 @@ CDependencyGroup* CUnsupportedFormatLoader::LoadHINT(IInputStream& rHINT, CResou u32 Version = rHINT.ReadLong(); EGame Game; - if (Version == 0x1) Game = ePrime; - else if (Version == 0x3) Game = eCorruption; + if (Version == 0x1) Game = EGame::Prime; + else if (Version == 0x3) Game = EGame::Corruption; else { @@ -402,7 +402,7 @@ CDependencyGroup* CUnsupportedFormatLoader::LoadHINT(IInputStream& rHINT, CResou pGroup->AddDependency( CAssetID(rHINT, Game) ); // Pop-up STRG rHINT.Seek(0x4, SEEK_CUR); // Skip unknowns - if (Game <= eEchoes) + if (Game <= EGame::Echoes) { rHINT.Seek(0x4, SEEK_CUR); pGroup->AddDependency( CAssetID(rHINT, Game) ); // Target MLVL diff --git a/src/Core/Resource/Factory/CUnsupportedParticleLoader.cpp b/src/Core/Resource/Factory/CUnsupportedParticleLoader.cpp index 60eaaf97..7501f603 100644 --- a/src/Core/Resource/Factory/CUnsupportedParticleLoader.cpp +++ b/src/Core/Resource/Factory/CUnsupportedParticleLoader.cpp @@ -1226,7 +1226,7 @@ void CUnsupportedParticleLoader::ParseFloatFunction(IInputStream& rFile) case FOURCC('CEXT'): ParseIntFunction(rFile); - if (mpGroup->Game() >= eReturns) ParseFloatFunction(rFile); + if (mpGroup->Game() >= EGame::DKCReturns) ParseFloatFunction(rFile); break; default: @@ -1791,7 +1791,7 @@ CDependencyGroup* CUnsupportedParticleLoader::LoadParticle(IInputStream& rFile, Loader.mpGroup = new CDependencyGroup(pEntry); // Validate DKCR asset header - if (pEntry->Game() == eReturns) + if (pEntry->Game() == EGame::DKCReturns) { u32 AssetHeader = rFile.ReadLong(); diff --git a/src/Core/Resource/Factory/CWorldLoader.cpp b/src/Core/Resource/Factory/CWorldLoader.cpp index fcac5205..90015c92 100644 --- a/src/Core/Resource/Factory/CWorldLoader.cpp +++ b/src/Core/Resource/Factory/CWorldLoader.cpp @@ -14,12 +14,12 @@ void CWorldLoader::LoadPrimeMLVL(IInputStream& rMLVL) * We start immediately after the "version" value (0x8 in the file) */ // Header - if (mVersion < eCorruptionProto) + if (mVersion < EGame::CorruptionProto) { mpWorld->mpWorldName = gpResourceStore->LoadResource(rMLVL.ReadLong(), eStringTable); - if (mVersion == eEchoes) mpWorld->mpDarkWorldName = gpResourceStore->LoadResource(rMLVL.ReadLong(), eStringTable); - if (mVersion >= eEchoes) mpWorld->mTempleKeyWorldIndex = rMLVL.ReadLong(); - if (mVersion >= ePrime) mpWorld->mpSaveWorld = gpResourceStore->LoadResource(rMLVL.ReadLong(), eSaveWorld); + if (mVersion == EGame::Echoes) mpWorld->mpDarkWorldName = gpResourceStore->LoadResource(rMLVL.ReadLong(), eStringTable); + if (mVersion >= EGame::Echoes) mpWorld->mTempleKeyWorldIndex = rMLVL.ReadLong(); + if (mVersion >= EGame::Prime) mpWorld->mpSaveWorld = gpResourceStore->LoadResource(rMLVL.ReadLong(), eSaveWorld); mpWorld->mpDefaultSkybox = gpResourceStore->LoadResource(rMLVL.ReadLong(), eModel); } @@ -32,7 +32,7 @@ void CWorldLoader::LoadPrimeMLVL(IInputStream& rMLVL) } // Memory relays - only in MP1 - if (mVersion == ePrime) + if (mVersion == EGame::Prime) { u32 NumMemoryRelays = rMLVL.ReadLong(); mpWorld->mMemoryRelays.reserve(NumMemoryRelays); @@ -50,7 +50,7 @@ void CWorldLoader::LoadPrimeMLVL(IInputStream& rMLVL) // Areas - here's the real meat of the file u32 NumAreas = rMLVL.ReadLong(); - if (mVersion == ePrime) rMLVL.Seek(0x4, SEEK_CUR); + if (mVersion == EGame::Prime) rMLVL.Seek(0x4, SEEK_CUR); mpWorld->mAreas.resize(NumAreas); for (u32 iArea = 0; iArea < NumAreas; iArea++) @@ -70,7 +70,7 @@ void CWorldLoader::LoadPrimeMLVL(IInputStream& rMLVL) pArea->AttachedAreaIDs.push_back( rMLVL.ReadShort() ); // Skip dependency list - this is very fast to regenerate so there's no use in caching it - if (mVersion < eCorruptionProto) + if (mVersion < EGame::CorruptionProto) { rMLVL.Seek(0x4, SEEK_CUR); u32 NumDependencies = rMLVL.ReadLong(); @@ -108,7 +108,7 @@ void CWorldLoader::LoadPrimeMLVL(IInputStream& rMLVL) } // Rels - if ( (mVersion == eEchoesDemo) || (mVersion == eEchoes) ) + if ( (mVersion == EGame::EchoesDemo) || (mVersion == EGame::Echoes) ) { u32 NumRels = rMLVL.ReadLong(); pArea->RelFilenames.resize(NumRels); @@ -116,7 +116,7 @@ void CWorldLoader::LoadPrimeMLVL(IInputStream& rMLVL) for (u32 iRel = 0; iRel < NumRels; iRel++) pArea->RelFilenames[iRel] = rMLVL.ReadString(); - if (mVersion == eEchoes) + if (mVersion == EGame::Echoes) { u32 NumRelOffsets = rMLVL.ReadLong(); // Don't know what these offsets correspond to pArea->RelOffsets.resize(NumRelOffsets); @@ -127,7 +127,7 @@ void CWorldLoader::LoadPrimeMLVL(IInputStream& rMLVL) } // Internal name - MP1 doesn't have this, we'll get it from the GameInfo file later - if (mVersion >= eEchoesDemo) + if (mVersion >= EGame::EchoesDemo) pArea->InternalName = rMLVL.ReadString(); } @@ -136,7 +136,7 @@ void CWorldLoader::LoadPrimeMLVL(IInputStream& rMLVL) rMLVL.Seek(0x5, SEEK_CUR); // Unknown values which are always 0 // Audio Groups - we don't need this info as we regenerate it on cook - if (mVersion == ePrime) + if (mVersion == EGame::Prime) { u32 NumAudioGrps = rMLVL.ReadLong(); rMLVL.Seek(0x8 * NumAudioGrps, SEEK_CUR); @@ -168,7 +168,7 @@ void CWorldLoader::LoadPrimeMLVL(IInputStream& rMLVL) } // Layer state IDs - if (mVersion >= eCorruption) + if (mVersion >= EGame::Corruption) { rMLVL.Seek(0x4, SEEK_CUR); // Skipping redundant layer count for (u32 iArea = 0; iArea < NumAreas; iArea++) @@ -265,7 +265,7 @@ void CWorldLoader::GenerateEditorData() { CGameInfo *pGameInfo = mpWorld->Entry()->ResourceStore()->Project()->GameInfo(); - if (mVersion <= ePrime) + if (mVersion <= EGame::Prime) { for (u32 iArea = 0; iArea < mpWorld->NumAreas(); iArea++) { @@ -289,7 +289,7 @@ CWorld* CWorldLoader::LoadMLVL(IInputStream& rMLVL, CResourceEntry *pEntry) u32 FileVersion = rMLVL.ReadLong(); EGame Version = GetFormatVersion(FileVersion); - if (Version == eUnknownGame) + if (Version == EGame::Invalid) { Log::FileError(rMLVL.GetSourceString(), "Unsupported MLVL version: " + TString::HexString(FileVersion, 2)); return nullptr; @@ -300,7 +300,7 @@ CWorld* CWorldLoader::LoadMLVL(IInputStream& rMLVL, CResourceEntry *pEntry) Loader.mpWorld = new CWorld(pEntry); Loader.mVersion = Version; - if (Version != eReturns) + if (Version != EGame::DKCReturns) Loader.LoadPrimeMLVL(rMLVL); else Loader.LoadReturnsMLVL(rMLVL); @@ -313,12 +313,12 @@ EGame CWorldLoader::GetFormatVersion(u32 Version) { switch (Version) { - case 0xD: return ePrimeDemo; - case 0x11: return ePrime; - case 0x14: return eEchoesDemo; - case 0x17: return eEchoes; - case 0x19: return eCorruption; - case 0x1B: return eReturns; - default: return eUnknownGame; + case 0xD: return EGame::PrimeDemo; + case 0x11: return EGame::Prime; + case 0x14: return EGame::EchoesDemo; + case 0x17: return EGame::Echoes; + case 0x19: return EGame::Corruption; + case 0x1B: return EGame::DKCReturns; + default: return EGame::Invalid; } } diff --git a/src/Core/Resource/Model/CVertex.h b/src/Core/Resource/Model/CVertex.h index ee221828..041061b1 100644 --- a/src/Core/Resource/Model/CVertex.h +++ b/src/Core/Resource/Model/CVertex.h @@ -24,7 +24,7 @@ public: CVertex() {} - CVertex(CVector3f& rPos) + CVertex(const CVector3f& rPos) { Position = rPos; } diff --git a/src/Core/Resource/Script/CGameTemplate.cpp b/src/Core/Resource/Script/CGameTemplate.cpp new file mode 100644 index 00000000..01d0ef18 --- /dev/null +++ b/src/Core/Resource/Script/CGameTemplate.cpp @@ -0,0 +1,292 @@ +#include "CGameTemplate.h" +#include "NPropertyMap.h" +#include "Core/Resource/Factory/CWorldLoader.h" +#include + +CGameTemplate::CGameTemplate() + : mFullyLoaded(false) + , mDirty(false) +{ +} + +void CGameTemplate::Serialize(IArchive& Arc) +{ + Arc << SerialParameter("ScriptObjects", mScriptTemplates) + << SerialParameter("PropertyArchetypes", mPropertyTemplates) + << SerialParameter("States", mStates) + << SerialParameter("Messages", mMessages); +} + +void CGameTemplate::Load(const TString& kFilePath) +{ + CXMLReader Reader(kFilePath); + ASSERT(Reader.IsValid()); + + mGame = Reader.Game(); + Serialize(Reader); + + mSourceFile = kFilePath; + mFullyLoaded = true; + + // Load all sub-templates + const TString gkGameRoot = GetGameDirectory(); + + for (auto Iter = mScriptTemplates.begin(); Iter != mScriptTemplates.end(); Iter++) + { + SScriptTemplatePath& ScriptPath = Iter->second; + TString AbsPath = gkGameRoot + ScriptPath.Path; + ScriptPath.pTemplate = std::make_shared(this, Iter->first, AbsPath); + } + + for (auto Iter = mPropertyTemplates.begin(); Iter != mPropertyTemplates.end(); Iter++) + { + // For properties, remember that property archetypes can reference other archetypes which + // may not be loaded yet.. so if this happens, the referenced property will be loaded, + // meaning property templates can be loaded out of order, so we need to make sure + // that we don't load any template more than once. + SPropertyTemplatePath& PropertyPath = Iter->second; + + if (!PropertyPath.pTemplate) + { + Internal_LoadPropertyTemplate(Iter->second); + } + } +} + +void CGameTemplate::Save() +{ + Log::Write("Saving game template: " + mSourceFile); + CXMLWriter Writer(mSourceFile, "Game", 0, mGame); + ASSERT(Writer.IsValid()); + Serialize(Writer); + mDirty = false; +} + +/** Internal function for loading a property template from a file. */ +void CGameTemplate::Internal_LoadPropertyTemplate(SPropertyTemplatePath& Path) +{ + if (Path.pTemplate != nullptr) // don't load twice + return; + + const TString kGameDir = GetGameDirectory(); + const TString kTemplateFilePath = kGameDir + Path.Path; + CXMLReader Reader(kTemplateFilePath); + ASSERT(Reader.IsValid()); + + Reader << SerialParameter("PropertyArchetype", Path.pTemplate); + ASSERT(Path.pTemplate != nullptr); + + Path.pTemplate->Initialize(nullptr, nullptr, 0); +} + +void CGameTemplate::SaveGameTemplates(bool ForceAll /*= false*/) +{ + const TString kGameDir = GetGameDirectory(); + + if (mDirty || ForceAll) + { + Save(); + } + + for (auto Iter = mScriptTemplates.begin(); Iter != mScriptTemplates.end(); Iter++) + { + SScriptTemplatePath& Path = Iter->second; + + if( Path.pTemplate ) + { + Path.pTemplate->Save(ForceAll); + } + } + + for (auto Iter = mPropertyTemplates.begin(); Iter != mPropertyTemplates.end(); Iter++) + { + SPropertyTemplatePath& Path = Iter->second; + + if( Path.pTemplate ) + { + if( ForceAll || Path.pTemplate->IsDirty() ) + { + const TString kOutPath = kGameDir + Path.Path; + FileUtil::MakeDirectory( kOutPath.GetFileDirectory() ); + + Log::Write("Saving property template: " + kOutPath); + CXMLWriter Writer(kOutPath, "PropertyTemplate", 0, Game()); + ASSERT(Writer.IsValid()); + + Writer << SerialParameter("PropertyArchetype", Path.pTemplate); + Path.pTemplate->ClearDirtyFlag(); + } + } + } +} + +u32 CGameTemplate::GameVersion(TString VersionName) +{ + return -1; +} + +CScriptTemplate* CGameTemplate::TemplateByID(u32 ObjectID) +{ + auto it = mScriptTemplates.find(ObjectID); + + if (it != mScriptTemplates.end()) + return it->second.pTemplate.get(); + else + return nullptr; +} + +CScriptTemplate* CGameTemplate::TemplateByID(const CFourCC& ObjectID) +{ + return TemplateByID(ObjectID.ToLong()); +} + +CScriptTemplate* CGameTemplate::TemplateByIndex(u32 Index) +{ + auto it = mScriptTemplates.begin(); + return (std::next(it, Index))->second.pTemplate.get(); +} + +SState CGameTemplate::StateByID(u32 StateID) +{ + auto Iter = mStates.find(StateID); + + if (Iter != mStates.end()) + return SState(Iter->first, Iter->second); + else + return SState(-1, "Invalid"); +} + +SState CGameTemplate::StateByID(const CFourCC& State) +{ + return StateByID(State.ToLong()); +} + +SState CGameTemplate::StateByIndex(u32 Index) +{ + auto Iter = mStates.begin(); + Iter = std::next(Iter, Index); + return SState(Iter->first, Iter->second); +} + +SMessage CGameTemplate::MessageByID(u32 MessageID) +{ + auto Iter = mMessages.find(MessageID); + + if (Iter != mMessages.end()) + return SMessage(Iter->first, Iter->second); + else + return SMessage(-1, "Invalid"); +} + +SMessage CGameTemplate::MessageByID(const CFourCC& MessageID) +{ + return MessageByID(MessageID.ToLong()); +} + +SMessage CGameTemplate::MessageByIndex(u32 Index) +{ + auto Iter = mMessages.begin(); + Iter = std::next(Iter, Index); + return SMessage(Iter->first, Iter->second); +} + +IProperty* CGameTemplate::FindPropertyArchetype(const TString& kTypeName) +{ + auto Iter = mPropertyTemplates.find(kTypeName); + + if (Iter == mPropertyTemplates.end()) + { + return nullptr; + } + + // If the template isn't loaded yet, then load it. + // This has to be done here to allow recursion while loading other property archetypes, because some properties may + // request archetypes of other properties that haven't been loaded yet during their load. + SPropertyTemplatePath& Path = Iter->second; + if (!Path.pTemplate) + { + Internal_LoadPropertyTemplate(Path); + ASSERT(Path.pTemplate != nullptr); // Load failed; missing or malformed template + } + + return Path.pTemplate.get(); +} + +TString CGameTemplate::GetPropertyArchetypeFilePath(const TString& kTypeName) +{ + auto Iter = mPropertyTemplates.find(kTypeName); + ASSERT(Iter != mPropertyTemplates.end()); + return GetGameDirectory() + Iter->second.Path; +} + +bool CGameTemplate::RenamePropertyArchetype(const TString& kTypeName, const TString& kNewTypeName) +{ + if( kTypeName != kNewTypeName ) + { + // Fetch the property that we are going to be renaming. + // Validate type, too, because we only support renaming struct archetypes at the moment + auto Iter = mPropertyTemplates.find(kTypeName); + + if( Iter != mPropertyTemplates.end() ) + { + SPropertyTemplatePath& Path = Iter->second; + IProperty* pArchetype = Path.pTemplate.get(); + + if( pArchetype ) + { + // Attempt to move the XML to the new location. + TString OldPath = GetGameDirectory() + Path.Path; + TString NewPath = OldPath.GetFileDirectory() + kNewTypeName + ".xml"; + + if( FileUtil::MoveFile(OldPath, NewPath) ) + { + // Update the name in the game template's internal mapping + TString RelativePath = FileUtil::MakeRelative( NewPath, GetGameDirectory() ); + auto MapNode = mPropertyTemplates.extract(Iter); + MapNode.key() = kNewTypeName; + MapNode.mapped().Path = RelativePath; + mPropertyTemplates.insert( std::move(MapNode) ); + mDirty = true; + + // Renaming the archetype will handle updating the actual type name, and + // dirtying/invalidating property sub-instances. + TString OldTypeName = pArchetype->HashableTypeName(); + pArchetype->SetName(kNewTypeName); + + // For MP2 and up, we also need to update the type names stored in the property map. + if (pArchetype->Game() >= EGame::EchoesDemo) + { + NPropertyMap::ChangeTypeName(pArchetype, *OldTypeName, *kNewTypeName); + } + + // MP1 has a lot of unnamed properties that just use the type name as their name. + // Update these properties so their name now refers to the updated type name. + else + { + std::list SubInstances; + pArchetype->GatherAllSubInstances(SubInstances, true); + + for (auto Iter = SubInstances.begin(); Iter != SubInstances.end(); Iter++) + { + IProperty* pProperty = *Iter; + + if (pProperty->Name() == kTypeName) + { + pProperty->SetName(kNewTypeName); + } + } + } + + return true; + } + } + } + } + + return false; +} + +TString CGameTemplate::GetGameDirectory() const +{ + return mSourceFile.GetFileDirectory(); +} diff --git a/src/Core/Resource/Script/CGameTemplate.h b/src/Core/Resource/Script/CGameTemplate.h new file mode 100644 index 00000000..49789187 --- /dev/null +++ b/src/Core/Resource/Script/CGameTemplate.h @@ -0,0 +1,143 @@ +#ifndef CGAMETEMPLATE_H +#define CGAMETEMPLATE_H + +#include "CLink.h" +#include "CScriptTemplate.h" +#include "Core/Resource/Script/Property/Properties.h" +#include +#include +#include + +/** Serialization aid + * Retro switched from using integers to fourCCs to represent IDs in several cases (states/messages, object IDs). + * This struct is functionally an integer but it serializes as an int for MP1 and a fourCC for MP2 and on. + */ +struct SObjId +{ + union { + u32 ID; + CFourCC ID_4CC; + }; + + inline SObjId() {} + inline SObjId(u32 InID) : ID(InID) {} + inline SObjId(CFourCC InID) : ID_4CC(InID) {} + + inline operator u32() const { return ID; } + inline operator CFourCC() const { return ID_4CC; } + + void Serialize(IArchive& Arc) + { + if (Arc.Game() <= EGame::Prime) + Arc.SerializePrimitive(ID, SH_HexDisplay); + else + Arc.SerializePrimitive(ID_4CC, 0); + } +}; + +/** Struct holding a reference to a script object template */ +struct SScriptTemplatePath +{ + /** File path to the template file, relative to the game directory */ + TString Path; + + /** Template in memory */ + std::shared_ptr pTemplate; + + /** Constructor */ + SScriptTemplatePath() + {} + + SScriptTemplatePath(const TString& kInPath, CScriptTemplate* pInTemplate) + : Path(kInPath) + , pTemplate( std::shared_ptr(pInTemplate) ) + {} + + /** Serializer */ + void Serialize(IArchive& Arc) + { + if (Arc.FileVersion() == 0) + { + Arc << SerialParameter("Path", Path, SH_Attribute); + } + else + { + Arc.SerializePrimitive(Path, 0); + } + } +}; + +/** Struct holding a reference to a property template */ +struct SPropertyTemplatePath +{ + /** File path to the template file, relative to the game directory */ + TString Path; + + /** Template in memory */ + std::shared_ptr pTemplate; + + /** Constructor */ + SPropertyTemplatePath() + {} + + SPropertyTemplatePath(const TString& kInPath, IProperty* pInTemplate) + : Path(kInPath) + , pTemplate( std::shared_ptr(pInTemplate) ) + {} + + /** Serializer */ + void Serialize(IArchive& Arc) + { + Arc << SerialParameter("Path", Path, SH_Attribute); + } +}; + +/** CGameTemplate - Per-game template data */ +class CGameTemplate +{ + EGame mGame; + TString mSourceFile; + bool mFullyLoaded; + bool mDirty; + + /** Template arrays */ + std::map mScriptTemplates; + std::map mPropertyTemplates; + + std::map mStates; + std::map mMessages; + + /** Internal function for loading a property template from a file. */ + void Internal_LoadPropertyTemplate(SPropertyTemplatePath& Path); + +public: + CGameTemplate(); + void Serialize(IArchive& Arc); + void Load(const TString& kFilePath); + void Save(); + void SaveGameTemplates(bool ForceAll = false); + + u32 GameVersion(TString VersionName); + CScriptTemplate* TemplateByID(u32 ObjectID); + CScriptTemplate* TemplateByID(const CFourCC& ObjectID); + CScriptTemplate* TemplateByIndex(u32 Index); + SState StateByID(u32 StateID); + SState StateByID(const CFourCC& StateID); + SState StateByIndex(u32 Index); + SMessage MessageByID(u32 MessageID); + SMessage MessageByID(const CFourCC& MessageID); + SMessage MessageByIndex(u32 Index); + IProperty* FindPropertyArchetype(const TString& kTypeName); + TString GetPropertyArchetypeFilePath(const TString& kTypeName); + bool RenamePropertyArchetype(const TString& kTypeName, const TString& kNewTypeName); + TString GetGameDirectory() const; + + // Inline Accessors + inline EGame Game() const { return mGame; } + inline u32 NumScriptTemplates() const { return mScriptTemplates.size(); } + inline u32 NumStates() const { return mStates.size(); } + inline u32 NumMessages() const { return mMessages.size(); } + inline bool IsLoadedSuccessfully() { return mFullyLoaded; } +}; + +#endif // CGAMETEMPLATE_H diff --git a/src/Core/Resource/Script/CLink.h b/src/Core/Resource/Script/CLink.h index c2bd538f..8dbaec96 100644 --- a/src/Core/Resource/Script/CLink.h +++ b/src/Core/Resource/Script/CLink.h @@ -8,20 +8,56 @@ struct SState { - u32 ID; + union { + u32 ID; + CFourCC ID_4CC; + }; TString Name; - SState() {} - SState(u32 _ID, const TString& rkName) : ID(_ID), Name(rkName) {} + SState() + {} + + SState(u32 InID, const TString& kInName) + : ID(InID) + , Name(kInName) + {} + + void Serialize(IArchive& Arc) + { + if (Arc.Game() <= EGame::Prime) + Arc << SerialParameter("ID", ID, SH_Attribute | SH_HexDisplay); + else + Arc << SerialParameter("ID", ID_4CC, SH_Attribute); + + Arc << SerialParameter("Name", Name, SH_Attribute); + } }; struct SMessage { - u32 ID; + union { + u32 ID; + CFourCC ID_4CC; + }; TString Name; - SMessage() {} - SMessage(u32 _ID, const TString& rkName) : ID(_ID), Name(rkName) {} + SMessage() + {} + + SMessage(u32 InID, const TString& kInName) + : ID(InID) + , Name(kInName) + {} + + void Serialize(IArchive& Arc) + { + if (Arc.Game() <= EGame::Prime) + Arc << SerialParameter("ID", ID, SH_Attribute | SH_HexDisplay); + else + Arc << SerialParameter("ID", ID_4CC, SH_Attribute); + + Arc << SerialParameter("Name", Name, SH_Attribute); + } }; class CLink diff --git a/src/Core/Resource/Script/CMasterTemplate.cpp b/src/Core/Resource/Script/CMasterTemplate.cpp deleted file mode 100644 index 3795eb23..00000000 --- a/src/Core/Resource/Script/CMasterTemplate.cpp +++ /dev/null @@ -1,283 +0,0 @@ -#include "CMasterTemplate.h" -#include "Core/Resource/Factory/CWorldLoader.h" -#include - -CMasterTemplate::CMasterTemplate() - : mVersion(0) - , mFullyLoaded(false) -{ -} - -CMasterTemplate::~CMasterTemplate() -{ - for (auto it = mTemplates.begin(); it != mTemplates.end(); it++) - delete it->second; -} - -u32 CMasterTemplate::GameVersion(TString VersionName) -{ - VersionName = VersionName.ToLower(); - - for (u32 iVer = 0; iVer < mGameVersions.size(); iVer++) - if (mGameVersions[iVer].ToLower() == VersionName) - return iVer; - - return -1; -} - -CScriptTemplate* CMasterTemplate::TemplateByID(u32 ObjectID) -{ - auto it = mTemplates.find(ObjectID); - - if (it != mTemplates.end()) - return it->second; - else - return nullptr; -} - -CScriptTemplate* CMasterTemplate::TemplateByID(const CFourCC& ObjectID) -{ - return TemplateByID(ObjectID.ToLong()); -} - -CScriptTemplate* CMasterTemplate::TemplateByIndex(u32 Index) -{ - auto it = mTemplates.begin(); - return (std::next(it, Index))->second; -} - -SState CMasterTemplate::StateByID(u32 StateID) -{ - auto it = mStates.find(StateID); - - if (it != mStates.end()) - return it->second; - else - return SState(-1, "Invalid"); -} - -SState CMasterTemplate::StateByID(const CFourCC& State) -{ - return StateByID(State.ToLong()); -} - -SState CMasterTemplate::StateByIndex(u32 Index) -{ - auto it = mStates.begin(); - return (std::next(it, Index))->second; -} - -SMessage CMasterTemplate::MessageByID(u32 MessageID) -{ - auto it = mMessages.find(MessageID); - - if (it != mMessages.end()) - return it->second; - else - return SMessage(-1, "Invalid"); -} - -SMessage CMasterTemplate::MessageByID(const CFourCC& MessageID) -{ - return MessageByID(MessageID.ToLong()); -} - -SMessage CMasterTemplate::MessageByIndex(u32 Index) -{ - auto it = mMessages.begin(); - return (std::next(it, Index))->second; -} - -CStructTemplate* CMasterTemplate::StructAtSource(const TString& rkSource) -{ - auto InfoIt = mStructTemplates.find(rkSource); - - if (InfoIt != mStructTemplates.end()) - return InfoIt->second; - - else return nullptr; -} - -// ************ STATIC ************ -CMasterTemplate* CMasterTemplate::MasterForGame(EGame Game) -{ - auto it = smMasterMap.find(Game); - - if (it != smMasterMap.end()) - return it->second; - else - return nullptr; -} - -std::list CMasterTemplate::MasterList() -{ - std::list list; - - for (auto it = smMasterMap.begin(); it != smMasterMap.end(); it++) - list.push_back(it->second); - - return list; -} - -TString CMasterTemplate::FindGameName(EGame Game) -{ - CMasterTemplate *pMaster = MasterForGame(Game); - return pMaster ? pMaster->GameName() : "Unknown Game"; -} - -EGame CMasterTemplate::FindGameForName(const TString& rkName) -{ - std::list Masters = MasterList(); - - for (auto It = Masters.begin(); It != Masters.end(); It++) - { - CMasterTemplate *pMaster = *It; - if (pMaster->GameName() == rkName) - return pMaster->Game(); - } - - return eUnknownGame; -} - -TString CMasterTemplate::PropertyName(u32 PropertyID) -{ - auto it = smPropertyNames.find(PropertyID); - - if (it != smPropertyNames.end()) - return it->second; - else - return "Unknown"; -} - -u32 CMasterTemplate::CreatePropertyID(IPropertyTemplate *pTemp) -{ - // MP1 properties don't have IDs so we can use this function to create one to track instances of a particular property. - // To ensure the IDs are unique we'll create a hash using two things: the struct source file and the ID string (relative to the struct). - TString IDString = pTemp->IDString(false); - TString Source; - CStructTemplate *pStruct = pTemp->Parent(); - - while (pStruct) - { - Source = pStruct->SourceFile(); - if (!Source.IsEmpty()) break; - IDString.Prepend(pStruct->IDString(false) + ":"); - pStruct = pStruct->Parent(); - } - - return IDString.Hash32() * Source.Hash32(); -} - -void CMasterTemplate::AddProperty(IPropertyTemplate *pTemp, const TString& rkTemplateName /*= ""*/) -{ - u32 ID; - - if (pTemp->Game() >= eEchoesDemo) - ID = pTemp->PropertyID(); - - // Use a different ID for MP1 - else - { - // For MP1 we only really need to track properties that come from struct templates. - if (!pTemp->IsFromStructTemplate()) return; - else ID = CreatePropertyID(pTemp); - } - - auto it = smIDMap.find(ID); - - // Add this property/template to existing ID info - if (it != smIDMap.end()) - { - SPropIDInfo& rInfo = it->second; - rInfo.PropertyList.push_back(pTemp); - - if (!rkTemplateName.IsEmpty()) - { - bool NewTemplate = true; - - for (u32 iTemp = 0; iTemp < rInfo.XMLList.size(); iTemp++) - { - if (rInfo.XMLList[iTemp] == rkTemplateName) - { - NewTemplate = false; - break; - } - } - - if (NewTemplate) - rInfo.XMLList.push_back(rkTemplateName); - } - } - - // Create new ID info - else - { - SPropIDInfo Info; - if (!rkTemplateName.IsEmpty()) Info.XMLList.push_back(rkTemplateName); - Info.PropertyList.push_back(pTemp); - smIDMap[ID] = Info; - } -} - -void CMasterTemplate::RenameProperty(IPropertyTemplate *pTemp, const TString& rkNewName) -{ - u32 ID = pTemp->PropertyID(); - if (ID <= 0xFF) ID = CreatePropertyID(pTemp); - - // Master name list - auto NameIt = smPropertyNames.find(ID); - TString Original; - - if (NameIt != smPropertyNames.end()) - { - Original = NameIt->second; - smPropertyNames[ID] = rkNewName; - } - - // Properties - auto InfoIt = smIDMap.find(ID); - - if (InfoIt != smIDMap.end()) - { - const SPropIDInfo& rkInfo = InfoIt->second; - - for (u32 iTemp = 0; iTemp < rkInfo.PropertyList.size(); iTemp++) - { - if (Original.IsEmpty() || rkInfo.PropertyList[iTemp]->Name() == Original) - rkInfo.PropertyList[iTemp]->SetName(rkNewName); - } - } -} - -std::vector CMasterTemplate::XMLsUsingID(u32 ID) -{ - auto InfoIt = smIDMap.find(ID); - - if (InfoIt != smIDMap.end()) - { - const SPropIDInfo& rkInfo = InfoIt->second; - return rkInfo.XMLList; - } - else - return std::vector(); -} - -const std::vector* CMasterTemplate::TemplatesWithMatchingID(IPropertyTemplate *pTemp) -{ - u32 ID = pTemp->PropertyID(); - if (ID <= 0xFF) ID = CreatePropertyID(pTemp); - - auto InfoIt = smIDMap.find(ID); - - if (InfoIt != smIDMap.end()) - { - const SPropIDInfo& rkInfo = InfoIt->second; - return &rkInfo.PropertyList; - } - return nullptr; -} - -std::map CMasterTemplate::smIDMap; -std::map CMasterTemplate::smMasterMap; -std::map CMasterTemplate::smPropertyNames; -u32 CMasterTemplate::smGameListVersion; diff --git a/src/Core/Resource/Script/CMasterTemplate.h b/src/Core/Resource/Script/CMasterTemplate.h deleted file mode 100644 index c764f673..00000000 --- a/src/Core/Resource/Script/CMasterTemplate.h +++ /dev/null @@ -1,76 +0,0 @@ -#ifndef CMASTERTEMPLATE_H -#define CMASTERTEMPLATE_H - -#include "CLink.h" -#include "CScriptTemplate.h" -#include -#include -#include - -class CMasterTemplate -{ - friend class CTemplateLoader; - friend class CTemplateWriter; - - EGame mGame; - TString mGameName; - TString mSourceFile; - u32 mVersion; - bool mFullyLoaded; - - std::vector mGameVersions; - std::map mStructTemplates; - - std::map mTemplates; - std::map mStates; - std::map mMessages; - - struct SPropIDInfo - { - std::vector XMLList; // List of script/struct templates that use this ID - std::vector PropertyList; // List of all properties that use this ID - }; - static std::map smIDMap; - static std::map smMasterMap; - static std::map smPropertyNames; - static u32 smGameListVersion; - -public: - CMasterTemplate(); - ~CMasterTemplate(); - u32 GameVersion(TString VersionName); - CScriptTemplate* TemplateByID(u32 ObjectID); - CScriptTemplate* TemplateByID(const CFourCC& ObjectID); - CScriptTemplate* TemplateByIndex(u32 Index); - SState StateByID(u32 StateID); - SState StateByID(const CFourCC& StateID); - SState StateByIndex(u32 Index); - SMessage MessageByID(u32 MessageID); - SMessage MessageByID(const CFourCC& MessageID); - SMessage MessageByIndex(u32 Index); - CStructTemplate* StructAtSource(const TString& rkSource); - - // Inline Accessors - inline EGame Game() const { return mGame; } - inline TString GameName() const { return mGameName; } - inline u32 NumGameVersions() const { return mGameVersions.empty() ? 1 : mGameVersions.size(); } - inline u32 NumScriptTemplates() const { return mTemplates.size(); } - inline u32 NumStates() const { return mStates.size(); } - inline u32 NumMessages() const { return mMessages.size(); } - inline bool IsLoadedSuccessfully() { return mFullyLoaded; } - inline TString GetDirectory() const { return mSourceFile.GetFileDirectory(); } - - // Static - static CMasterTemplate* MasterForGame(EGame Game); - static std::list MasterList(); - static TString FindGameName(EGame Game); - static EGame FindGameForName(const TString& rkName); - static TString PropertyName(u32 PropertyID); - static u32 CreatePropertyID(IPropertyTemplate *pTemp); - static void AddProperty(IPropertyTemplate *pTemp, const TString& rkTemplateName = ""); - static void RenameProperty(IPropertyTemplate *pTemp, const TString& rkNewName); - static std::vector XMLsUsingID(u32 ID); - static const std::vector* TemplatesWithMatchingID(IPropertyTemplate *pTemp); -}; - -#endif // CMASTERTEMPLATE_H diff --git a/src/Core/Resource/Script/CScriptObject.cpp b/src/Core/Resource/Script/CScriptObject.cpp index d1c5f01a..e2af2012 100644 --- a/src/Core/Resource/Script/CScriptObject.cpp +++ b/src/Core/Resource/Script/CScriptObject.cpp @@ -1,6 +1,6 @@ #include "CScriptObject.h" #include "CScriptLayer.h" -#include "CMasterTemplate.h" +#include "CGameTemplate.h" #include "Core/Resource/Animation/CAnimSet.h" CScriptObject::CScriptObject(u32 InstanceID, CGameArea *pArea, CScriptLayer *pLayer, CScriptTemplate *pTemplate) @@ -13,19 +13,31 @@ CScriptObject::CScriptObject(u32 InstanceID, CGameArea *pArea, CScriptLayer *pLa , mIsCheckingNearVisibleActivation(false) { mpTemplate->AddObject(this); - mpProperties = (CPropertyStruct*) pTemplate->BaseStruct()->InstantiateProperty(this, nullptr); - mpInstanceName = mpTemplate->FindInstanceName(mpProperties); - mpPosition = mpTemplate->FindPosition(mpProperties); - mpRotation = mpTemplate->FindRotation(mpProperties); - mpScale = mpTemplate->FindScale(mpProperties); - mpActive = mpTemplate->FindActive(mpProperties); - mpLightParameters = mpTemplate->FindLightParameters(mpProperties); + // Init properties + CStructProperty* pProperties = pTemplate->Properties(); + u32 PropertiesSize = pProperties->DataSize(); + + mPropertyData.resize( PropertiesSize ); + void* pData = mPropertyData.data(); + pProperties->Construct( pData ); + + mInstanceName = CStringRef(pData, pTemplate->NameProperty()); + mPosition = CVectorRef(pData, pTemplate->PositionProperty()); + mRotation = CVectorRef(pData, pTemplate->RotationProperty()); + mScale = CVectorRef(pData, pTemplate->ScaleProperty()); + mActive = CBoolRef(pData, pTemplate->ActiveProperty()); + mLightParameters = CStructRef(pData, pTemplate->LightParametersProperty()); } CScriptObject::~CScriptObject() { - if (mpProperties) delete mpProperties; + if (!mPropertyData.empty()) + { + mpTemplate->Properties()->Destruct( mPropertyData.data() ); + mPropertyData.clear(); + } + mpTemplate->RemoveObject(this); // Note: Incoming links will be deleted by the sender. @@ -34,6 +46,19 @@ CScriptObject::~CScriptObject() } // ************ DATA MANIPULATION ************ +void CScriptObject::CopyProperties(CScriptObject* pObject) +{ + ASSERT(pObject->Template() == Template()); + CSerialVersion Version(0, IArchive::skCurrentArchiveVersion, Template()->Game()); + + CVectorOutStream DataStream; + CBasicBinaryWriter DataWriter(&DataStream, Version); + Template()->Properties()->SerializeValue( pObject->PropertyData(), DataWriter ); + + CBasicBinaryReader DataReader(DataStream.Data(), DataStream.Size(), Version); + Template()->Properties()->SerializeValue( PropertyData(), DataReader ); +} + void CScriptObject::EvaluateProperties() { EvaluateDisplayAsset(); @@ -43,12 +68,12 @@ CScriptObject::~CScriptObject() void CScriptObject::EvaluateDisplayAsset() { - mpDisplayAsset = mpTemplate->FindDisplayAsset(mpProperties, mActiveCharIndex, mActiveAnimIndex, mHasInGameModel); + mpDisplayAsset = mpTemplate->FindDisplayAsset(PropertyData(), mActiveCharIndex, mActiveAnimIndex, mHasInGameModel); } void CScriptObject::EvaluateCollisionModel() { - mpCollision = mpTemplate->FindCollision(mpProperties); + mpCollision = mpTemplate->FindCollision(PropertyData()); } void CScriptObject::EvaluateVolume() @@ -59,13 +84,16 @@ void CScriptObject::EvaluateVolume() bool CScriptObject::IsEditorProperty(IProperty *pProp) { - return ( (pProp == mpInstanceName) || - (pProp == mpPosition) || - (pProp == mpRotation) || - (pProp == mpScale) || - (pProp == mpActive) || - (pProp == mpLightParameters) || - (pProp->Parent() == mpLightParameters) + return ( (pProp == mInstanceName.Property()) || + (pProp == mPosition.Property()) || + (pProp == mRotation.Property()) || + (pProp == mScale.Property()) || + (pProp == mActive.Property()) || + (pProp == mLightParameters.Property()) || + (pProp->Parent() == mPosition.Property()) || + (pProp->Parent() == mRotation.Property()) || + (pProp->Parent() == mScale.Property()) || + (pProp->Parent() == mLightParameters.Property()) ); } diff --git a/src/Core/Resource/Script/CScriptObject.h b/src/Core/Resource/Script/CScriptObject.h index fe5b57be..d8870cff 100644 --- a/src/Core/Resource/Script/CScriptObject.h +++ b/src/Core/Resource/Script/CScriptObject.h @@ -1,12 +1,11 @@ #ifndef CSCRIPTOBJECT_H #define CSCRIPTOBJECT_H -#include "IProperty.h" -#include "IPropertyTemplate.h" #include "CScriptTemplate.h" #include "Core/Resource/Area/CGameArea.h" #include "Core/Resource/Model/CModel.h" #include "Core/Resource/CCollisionMeshGroup.h" +#include "Core/Resource/Script/Property/Properties.h" class CScriptLayer; class CLink; @@ -30,14 +29,15 @@ class CScriptObject u32 mInstanceID; std::vector mOutLinks; std::vector mInLinks; - CPropertyStruct *mpProperties; + std::vector mPropertyData; + + CStringRef mInstanceName; + CVectorRef mPosition; + CVectorRef mRotation; + CVectorRef mScale; + CBoolRef mActive; + CStructRef mLightParameters; - TStringProperty *mpInstanceName; - TVector3Property *mpPosition; - TVector3Property *mpRotation; - TVector3Property *mpScale; - TBoolProperty *mpActive; - CPropertyStruct *mpLightParameters; TResPtr mpDisplayAsset; TResPtr mpCollision; u32 mActiveCharIndex; @@ -54,6 +54,7 @@ public: CScriptObject(u32 InstanceID, CGameArea *pArea, CScriptLayer *pLayer, CScriptTemplate *pTemplate); ~CScriptObject(); + void CopyProperties(CScriptObject* pObject); void EvaluateProperties(); void EvaluateDisplayAsset(); void EvaluateCollisionModel(); @@ -69,43 +70,41 @@ public: // Accessors CScriptTemplate* Template() const { return mpTemplate; } - CMasterTemplate* MasterTemplate() const { return mpTemplate->MasterTemplate(); } + CGameTemplate* GameTemplate() const { return mpTemplate->GameTemplate(); } CGameArea* Area() const { return mpArea; } CScriptLayer* Layer() const { return mpLayer; } u32 Version() const { return mVersion; } - CPropertyStruct* Properties() const { return mpProperties; } - u32 NumProperties() const { return mpProperties->Count(); } - IProperty* PropertyByIndex(u32 Index) const { return mpProperties->PropertyByIndex(Index); } - IProperty* PropertyByIDString(const TIDString& rkStr) const { return mpProperties->PropertyByIDString(rkStr); } u32 ObjectTypeID() const { return mpTemplate->ObjectID(); } u32 InstanceID() const { return mInstanceID; } u32 NumLinks(ELinkType Type) const { return (Type == eIncoming ? mInLinks.size() : mOutLinks.size()); } CLink* Link(ELinkType Type, u32 Index) const { return (Type == eIncoming ? mInLinks[Index] : mOutLinks[Index]); } + void* PropertyData() const { return (void*) mPropertyData.data(); } - CVector3f Position() const { return mpPosition ? mpPosition->Get() : CVector3f::skZero; } - CVector3f Rotation() const { return mpRotation ? mpRotation->Get() : CVector3f::skZero; } - CVector3f Scale() const { return mpScale ? mpScale->Get() : CVector3f::skOne; } - TString InstanceName() const { return mpInstanceName ? mpInstanceName->Get() : ""; } - bool IsActive() const { return mpActive ? mpActive->Get() : false; } + CVector3f Position() const { return mPosition.IsValid() ? mPosition.Get() : CVector3f::skZero; } + CVector3f Rotation() const { return mRotation.IsValid() ? mRotation.Get() : CVector3f::skZero; } + CVector3f Scale() const { return mScale.IsValid() ? mScale.Get() : CVector3f::skOne; } + TString InstanceName() const { return mInstanceName.IsValid() ? mInstanceName.Get() : ""; } + bool IsActive() const { return mActive.IsValid() ? mActive.Get() : false; } bool HasInGameModel() const { return mHasInGameModel; } - CPropertyStruct* LightParameters() const { return mpLightParameters; } + CStructRef LightParameters() const { return mLightParameters; } CResource* DisplayAsset() const { return mpDisplayAsset; } u32 ActiveCharIndex() const { return mActiveCharIndex; } u32 ActiveAnimIndex() const { return mActiveAnimIndex; } CCollisionMeshGroup* Collision() const { return mpCollision; } EVolumeShape VolumeShape() const { return mVolumeShape; } float VolumeScale() const { return mVolumeScale; } - void SetPosition(const CVector3f& rkNewPos) { if (mpPosition) mpPosition->Set(rkNewPos); } - void SetRotation(const CVector3f& rkNewRot) { if (mpRotation) mpRotation->Set(rkNewRot); } - void SetScale(const CVector3f& rkNewScale) { if (mpScale) mpScale->Set(rkNewScale); } - void SetName(const TString& rkNewName) { if (mpInstanceName) mpInstanceName->Set(rkNewName); } - void SetActive(bool Active) { if (mpActive) mpActive->Set(Active); } + void SetPosition(const CVector3f& rkNewPos) { mPosition.Set(rkNewPos); } + void SetRotation(const CVector3f& rkNewRot) { mRotation.Set(rkNewRot); } + void SetScale(const CVector3f& rkNewScale) { mScale.Set(rkNewScale); } + void SetName(const TString& rkNewName) { mInstanceName.Set(rkNewName); } + void SetActive(bool Active) { mActive.Set(Active); } - TVector3Property* PositionProperty() const { return mpPosition; } - TVector3Property* RotationProperty() const { return mpRotation; } - TVector3Property* ScaleProperty() const { return mpScale; } - TStringProperty* InstanceNameProperty() const { return mpInstanceName; } - TBoolProperty* ActiveProperty() const { return mpActive; } + bool HasPosition() const { return mPosition.IsValid(); } + bool HasRotation() const { return mRotation.IsValid(); } + bool HasScale() const { return mScale.IsValid(); } + bool HasInstanceName() const { return mInstanceName.IsValid(); } + bool HasActive() const { return mActive.IsValid(); } + bool HasLightParameters() const { return mLightParameters.IsValid(); } }; #endif // CSCRIPTOBJECT_H diff --git a/src/Core/Resource/Script/CScriptTemplate.cpp b/src/Core/Resource/Script/CScriptTemplate.cpp index 99d8160f..186e8435 100644 --- a/src/Core/Resource/Script/CScriptTemplate.cpp +++ b/src/Core/Resource/Script/CScriptTemplate.cpp @@ -1,6 +1,6 @@ #include "CScriptTemplate.h" #include "CScriptObject.h" -#include "CMasterTemplate.h" +#include "CGameTemplate.h" #include "Core/GameProject/CResourceStore.h" #include "Core/Resource/Animation/CAnimSet.h" #include @@ -8,35 +8,118 @@ #include #include -CScriptTemplate::CScriptTemplate(CMasterTemplate *pMaster) - : mpMaster(pMaster) - , mpBaseStruct(nullptr) +// Old constructor +CScriptTemplate::CScriptTemplate(CGameTemplate *pGame) + : mpGame(pGame) + , mpProperties(nullptr) , mVisible(true) + , mDirty(false) + , mpNameProperty(nullptr) + , mpPositionProperty(nullptr) + , mpRotationProperty(nullptr) + , mpScaleProperty(nullptr) + , mpActiveProperty(nullptr) + , mpLightParametersProperty(nullptr) , mPreviewScale(1.f) , mVolumeShape(eNoShape) , mVolumeScale(1.f) { } +// New constructor +CScriptTemplate::CScriptTemplate(CGameTemplate* pInGame, u32 InObjectID, const TString& kInFilePath) + : mRotationType(eRotationEnabled) + , mScaleType(eScaleEnabled) + , mPreviewScale(1.f) + , mVolumeShape(eNoShape) + , mVolumeScale(1.f) + , mSourceFile(kInFilePath) + , mObjectID(InObjectID) + , mpGame(pInGame) + , mpNameProperty(nullptr) + , mpPositionProperty(nullptr) + , mpRotationProperty(nullptr) + , mpScaleProperty(nullptr) + , mpActiveProperty(nullptr) + , mpLightParametersProperty(nullptr) + , mVisible(true) + , mDirty(false) +{ + // Load + CXMLReader Reader(kInFilePath); + ASSERT(Reader.IsValid()); + Serialize(Reader); + + // Post load initialization + mSourceFile = kInFilePath; + mpProperties->Initialize(nullptr, this, 0); + + if (!mNameIDString.IsEmpty()) mpNameProperty = TPropCast( mpProperties->ChildByIDString(mNameIDString) ); + if (!mPositionIDString.IsEmpty()) mpPositionProperty = TPropCast( mpProperties->ChildByIDString(mPositionIDString) ); + if (!mRotationIDString.IsEmpty()) mpRotationProperty = TPropCast( mpProperties->ChildByIDString(mRotationIDString) ); + if (!mScaleIDString.IsEmpty()) mpScaleProperty = TPropCast( mpProperties->ChildByIDString(mScaleIDString) ); + if (!mActiveIDString.IsEmpty()) mpActiveProperty = TPropCast( mpProperties->ChildByIDString(mActiveIDString) ); + if (!mLightParametersIDString.IsEmpty()) mpLightParametersProperty = TPropCast( mpProperties->ChildByIDString(mLightParametersIDString) ); +} + CScriptTemplate::~CScriptTemplate() { - delete mpBaseStruct; +} + +void CScriptTemplate::Serialize(IArchive& Arc) +{ + Arc << SerialParameter("Modules", mModules, SH_Optional) + << SerialParameter("Properties", mpProperties); + + if (Arc.ParamBegin("EditorProperties", 0)) + { + Arc << SerialParameter("NameProperty", mNameIDString, SH_Optional) + << SerialParameter("PositionProperty", mPositionIDString, SH_Optional) + << SerialParameter("RotationProperty", mRotationIDString, SH_Optional) + << SerialParameter("ScaleProperty", mScaleIDString, SH_Optional) + << SerialParameter("ActiveProperty", mActiveIDString, SH_Optional) + << SerialParameter("LightParametersProperty", mLightParametersIDString, SH_Optional); + + Arc.ParamEnd(); + } + + Arc << SerialParameter("Assets", mAssets, SH_Optional) + << SerialParameter("Attachments", mAttachments, SH_Optional) + << SerialParameter("RotationType", mRotationType, SH_Optional, eRotationEnabled) + << SerialParameter("ScaleType", mScaleType, SH_Optional, eScaleEnabled) + << SerialParameter("PreviewScale", mPreviewScale, SH_Optional, 1.0f) + << SerialParameter("VolumeShape", mVolumeShape, SH_Optional, eNoShape) + << SerialParameter("VolumeScale", mVolumeScale, SH_Optional, 1.0f) + << SerialParameter("VolumeConditionProperty", mVolumeConditionIDString, SH_Optional) + << SerialParameter("VolumeConditions", mVolumeConditions, SH_Optional); +} + +void CScriptTemplate::Save(bool Force) +{ + if (IsDirty() || Force) + { + Log::Write("Saving script template: " + mSourceFile); + CXMLWriter Writer(mSourceFile, "ScriptObject", 0, mpGame->Game()); + ASSERT(Writer.IsValid()); + Serialize(Writer); + mDirty = false; + } } EGame CScriptTemplate::Game() const { - return mpMaster->Game(); + return mpGame->Game(); } // ************ PROPERTY FETCHING ************ -template -PropType TFetchProperty(CPropertyStruct *pProperties, const TIDString& rkID) +template +PropType* TFetchProperty(CStructProperty* pProperties, const TIDString& rkID) { if (rkID.IsEmpty()) return nullptr; - IProperty *pProp = pProperties->PropertyByIDString(rkID); + IProperty *pProp = pProperties->ChildByIDString(rkID); if (pProp && (pProp->Type() == PropEnum)) - return static_cast(pProp); + return static_cast(pProp)->ValuePtr(); else return nullptr; } @@ -80,39 +163,42 @@ s32 CScriptTemplate::CheckVolumeConditions(CScriptObject *pObj, bool LogErrors) // Private function if (mVolumeShape == eConditionalShape) { - IProperty *pProp = pObj->Properties()->PropertyByIDString(mVolumeConditionIDString); + TIDString PropID = mVolumeConditionIDString; + IProperty* pProp = pObj->Template()->Properties()->ChildByIDString( PropID ); // Get value of the condition test property (only boolean, integral, and enum types supported) + void* pData = pObj->PropertyData(); int Val; switch (pProp->Type()) { - case eBoolProperty: - Val = (static_cast(pProp)->Get() ? 1 : 0); + case EPropertyType::Bool: + Val = TPropCast(pProp)->Value(pData) ? 1 : 0; break; - case eByteProperty: - Val = (int) static_cast(pProp)->Get(); + case EPropertyType::Byte: + Val = (int) TPropCast(pProp)->Value(pData); break; - case eShortProperty: - Val = (int) static_cast(pProp)->Get(); + case EPropertyType::Short: + Val = (int) TPropCast(pProp)->Value(pData); break; - case eLongProperty: - Val = (int) static_cast(pProp)->Get(); + case EPropertyType::Int: + Val = TPropCast(pProp)->Value(pData); break; - case eEnumProperty: - Val = (int) static_cast(pProp)->Get(); + case EPropertyType::Enum: + case EPropertyType::Choice: + Val = TPropCast(pProp)->Value(pData); break; } // Test and check whether any of the conditions are true - for (u32 iCon = 0; iCon < mVolumeConditions.size(); iCon++) + for (u32 LinkIdx = 0; LinkIdx < mVolumeConditions.size(); LinkIdx++) { - if (mVolumeConditions[iCon].Value == Val) - return iCon; + if (mVolumeConditions[LinkIdx].Value == Val) + return LinkIdx; } if (LogErrors) @@ -122,37 +208,7 @@ s32 CScriptTemplate::CheckVolumeConditions(CScriptObject *pObj, bool LogErrors) return -1; } -TStringProperty* CScriptTemplate::FindInstanceName(CPropertyStruct *pProperties) -{ - return TFetchProperty(pProperties, mNameIDString); -} - -TVector3Property* CScriptTemplate::FindPosition(CPropertyStruct *pProperties) -{ - return TFetchProperty(pProperties, mPositionIDString); -} - -TVector3Property* CScriptTemplate::FindRotation(CPropertyStruct *pProperties) -{ - return TFetchProperty(pProperties, mRotationIDString); -} - -TVector3Property* CScriptTemplate::FindScale(CPropertyStruct *pProperties) -{ - return TFetchProperty(pProperties, mScaleIDString); -} - -TBoolProperty* CScriptTemplate::FindActive(CPropertyStruct *pProperties) -{ - return TFetchProperty(pProperties, mActiveIDString); -} - -CPropertyStruct* CScriptTemplate::FindLightParameters(CPropertyStruct *pProperties) -{ - return TFetchProperty(pProperties, mLightParametersIDString); -} - -CResource* CScriptTemplate::FindDisplayAsset(CPropertyStruct *pProperties, u32& rOutCharIndex, u32& rOutAnimIndex, bool& rOutIsInGame) +CResource* CScriptTemplate::FindDisplayAsset(void* pPropertyData, u32& rOutCharIndex, u32& rOutAnimIndex, bool& rOutIsInGame) { rOutCharIndex = -1; rOutAnimIndex = -1; @@ -170,25 +226,28 @@ CResource* CScriptTemplate::FindDisplayAsset(CPropertyStruct *pProperties, u32& // Property else { - IProperty *pProp = pProperties->PropertyByIDString(it->AssetLocation); + IProperty* pProp = mpProperties->ChildByIDString(it->AssetLocation); - if (it->AssetType == SEditorAsset::eAnimParams && pProp->Type() == eCharacterProperty) + if (it->AssetType == SEditorAsset::eAnimParams && pProp->Type() == EPropertyType::AnimationSet) { - TCharacterProperty *pChar = static_cast(pProp); - pRes = pChar->Get().AnimSet(); + CAnimationSetProperty* pAnimSet = TPropCast(pProp); + CAnimationParameters Params = pAnimSet->Value(pPropertyData); + pRes = Params.AnimSet(); if (pRes) { u32 MaxNumChars = static_cast(pRes)->NumCharacters(); - rOutCharIndex = (it->ForceNodeIndex >= 0 && it->ForceNodeIndex < (s32) MaxNumChars ? it->ForceNodeIndex : pChar->Get().CharacterIndex()); - rOutAnimIndex = pChar->Get().AnimIndex(); + rOutCharIndex = (it->ForceNodeIndex >= 0 && it->ForceNodeIndex < (s32) MaxNumChars ? it->ForceNodeIndex : Params.CharacterIndex()); + rOutAnimIndex = Params.AnimIndex(); } } else { - TAssetProperty *pAsset = static_cast(pProp); - CResourceEntry *pEntry = gpResourceStore->FindEntry(pAsset->Get()); + ASSERT(pProp->Type() == EPropertyType::Asset); + CAssetProperty* pAsset = TPropCast(pProp); + CAssetID ID = pAsset->Value(pPropertyData); + CResourceEntry *pEntry = gpResourceStore->FindEntry( ID ); if (pEntry) pRes = pEntry->Load(); } } @@ -205,7 +264,7 @@ CResource* CScriptTemplate::FindDisplayAsset(CPropertyStruct *pProperties, u32& return nullptr; } -CCollisionMeshGroup* CScriptTemplate::FindCollision(CPropertyStruct *pProperties) +CCollisionMeshGroup* CScriptTemplate::FindCollision(void* pPropertyData) { for (auto it = mAssets.begin(); it != mAssets.end(); it++) { @@ -219,12 +278,12 @@ CCollisionMeshGroup* CScriptTemplate::FindCollision(CPropertyStruct *pProperties // Property else { - IProperty *pProp = pProperties->PropertyByIDString(it->AssetLocation); + IProperty* pProp = mpProperties->ChildByIDString(it->AssetLocation); - if (pProp->Type() == eAssetProperty) + if (pProp->Type() == EPropertyType::Asset) { - TAssetProperty *pAsset = static_cast(pProp); - pRes = gpResourceStore->LoadResource( pAsset->Get(), eDynamicCollision ); + CAssetProperty* pAsset = TPropCast(pProp); + pRes = gpResourceStore->LoadResource( pAsset->Value(pPropertyData), eDynamicCollision ); } } diff --git a/src/Core/Resource/Script/CScriptTemplate.h b/src/Core/Resource/Script/CScriptTemplate.h index 72e28789..62f35422 100644 --- a/src/Core/Resource/Script/CScriptTemplate.h +++ b/src/Core/Resource/Script/CScriptTemplate.h @@ -1,9 +1,7 @@ #ifndef CSCRIPTTEMPLATE_H #define CSCRIPTTEMPLATE_H -#include "IPropertyTemplate.h" -#include "IProperty.h" -#include "EPropertyType.h" +#include "Core/Resource/Script/Property/Properties.h" #include "EVolumeShape.h" #include "Core/Resource/Model/CModel.h" #include "Core/Resource/CCollisionMeshGroup.h" @@ -12,6 +10,7 @@ #include #include +class CGameTemplate; class CScriptObject; typedef TString TIDString; @@ -26,6 +25,13 @@ struct SAttachment TIDString AttachProperty; // Must point to a CMDL! TString LocatorName; EAttachType AttachType; + + void Serialize(IArchive& Arc) + { + Arc << SerialParameter("AttachProperty", AttachProperty, SH_Attribute) + << SerialParameter("LocatorName", LocatorName, SH_Attribute) + << SerialParameter("AttachType", AttachType, SH_Attribute); + } }; /* @@ -37,9 +43,6 @@ struct SAttachment */ class CScriptTemplate { - friend class CTemplateLoader; - friend class CTemplateWriter; - public: enum ERotationType { eRotationEnabled, eRotationDisabled @@ -52,34 +55,28 @@ public: private: struct SEditorAsset { - enum { + enum EAssetType { eModel, eAnimParams, eBillboard, eCollision } AssetType; - enum { + enum EAssetSource { eProperty, eFile } AssetSource; TIDString AssetLocation; s32 ForceNodeIndex; // Force animsets to use specific node instead of one from property + + void Serialize(IArchive& Arc) + { + Arc << SerialParameter("Type", AssetType, SH_Attribute) + << SerialParameter("Source", AssetSource, SH_Attribute) + << SerialParameter("Location", AssetLocation, SH_Attribute) + << SerialParameter("ForceCharacterIndex", ForceNodeIndex, SH_Attribute | SH_Optional, (s32) -1); + } }; - CMasterTemplate *mpMaster; - CStructTemplate *mpBaseStruct; - std::list mObjectList; - TString mTemplateName; std::vector mModules; - TString mSourceFile; - u32 mObjectID; - bool mVisible; - - // Editor Properties - TIDString mNameIDString; - TIDString mPositionIDString; - TIDString mRotationIDString; - TIDString mScaleIDString; - TIDString mActiveIDString; - TIDString mLightParametersIDString; + std::unique_ptr mpProperties; std::vector mAssets; std::vector mAttachments; @@ -92,53 +89,85 @@ private: float mVolumeScale; TIDString mVolumeConditionIDString; + TString mSourceFile; + u32 mObjectID; + + // Editor Properties + TIDString mNameIDString; + TIDString mPositionIDString; + TIDString mRotationIDString; + TIDString mScaleIDString; + TIDString mActiveIDString; + TIDString mLightParametersIDString; + + CGameTemplate* mpGame; + std::list mObjectList; + + CStringProperty* mpNameProperty; + CVectorProperty* mpPositionProperty; + CVectorProperty* mpRotationProperty; + CVectorProperty* mpScaleProperty; + CBoolProperty* mpActiveProperty; + CStructProperty* mpLightParametersProperty; + struct SVolumeCondition { - int Value; + u32 Value; EVolumeShape Shape; float Scale; + + void Serialize(IArchive& Arc) + { + Arc << SerialParameter("Value", Value) + << SerialParameter("Shape", Shape) + << SerialParameter("Scale", Scale, SH_Optional, 1.0f); + } }; std::vector mVolumeConditions; + bool mVisible; + bool mDirty; public: - CScriptTemplate(CMasterTemplate *pMaster); + // Default constructor. Don't use. This is only here so the serializer doesn't complain + CScriptTemplate() { ASSERT(false); } + // Old constructor + CScriptTemplate(CGameTemplate *pGame); + // New constructor + CScriptTemplate(CGameTemplate* pGame, u32 ObjectID, const TString& kFilePath); ~CScriptTemplate(); + void Serialize(IArchive& rArc); + void Save(bool Force = false); EGame Game() const; // Property Fetching EVolumeShape VolumeShape(CScriptObject *pObj); float VolumeScale(CScriptObject *pObj); - TStringProperty* FindInstanceName(CPropertyStruct *pProperties); - TVector3Property* FindPosition(CPropertyStruct *pProperties); - TVector3Property* FindRotation(CPropertyStruct *pProperties); - TVector3Property* FindScale(CPropertyStruct *pProperties); - TBoolProperty* FindActive(CPropertyStruct *pProperties); - CPropertyStruct* FindLightParameters(CPropertyStruct *pProperties); - CResource* FindDisplayAsset(CPropertyStruct *pProperties, u32& rOutCharIndex, u32& rOutAnimIndex, bool& rOutIsInGame); - CCollisionMeshGroup* FindCollision(CPropertyStruct *pProperties); + CResource* FindDisplayAsset(void* pPropertyData, u32& rOutCharIndex, u32& rOutAnimIndex, bool& rOutIsInGame); + CCollisionMeshGroup* FindCollision(void* pPropertyData); // Accessors - inline CMasterTemplate* MasterTemplate() const { return mpMaster; } - inline TString Name() const { return mTemplateName; } + inline CGameTemplate* GameTemplate() const { return mpGame; } + inline TString Name() const { return mpProperties->Name(); } inline ERotationType RotationType() const { return mRotationType; } inline EScaleType ScaleType() const { return mScaleType; } inline float PreviewScale() const { return mPreviewScale; } inline u32 ObjectID() const { return mObjectID; } inline bool IsVisible() const { return mVisible; } inline TString SourceFile() const { return mSourceFile; } - inline CStructTemplate* BaseStruct() const { return mpBaseStruct; } + inline CStructProperty* Properties() const { return mpProperties.get(); } inline u32 NumAttachments() const { return mAttachments.size(); } const SAttachment& Attachment(u32 Index) const { return mAttachments[Index]; } const std::vector& RequiredModules() const { return mModules; } - inline bool HasName() const { return !mNameIDString.IsEmpty(); } - inline bool HasPosition() const { return !mPositionIDString.IsEmpty(); } - inline bool HasRotation() const { return !mRotationIDString.IsEmpty(); } - inline bool HasScale() const { return !mScaleIDString.IsEmpty(); } - inline bool HasActive() const { return !mActiveIDString.IsEmpty(); } + inline CStringProperty* NameProperty() const { return mpNameProperty; } + inline CVectorProperty* PositionProperty() const { return mpPositionProperty; } + inline CVectorProperty* RotationProperty() const { return mpRotationProperty; } + inline CVectorProperty* ScaleProperty() const { return mpScaleProperty; } + inline CBoolProperty* ActiveProperty() const { return mpActiveProperty; } + inline CStructProperty* LightParametersProperty() const { return mpLightParametersProperty; } inline void SetVisible(bool Visible) { mVisible = Visible; } - - inline void DebugPrintProperties() { mpBaseStruct->DebugPrintProperties(""); } + inline void MarkDirty() { mDirty = true; } + inline bool IsDirty() const { return mDirty || mpProperties->IsDirty(); } // Object Tracking u32 NumObjects() const; diff --git a/src/Core/Resource/Script/EPropertyType.h b/src/Core/Resource/Script/EPropertyType.h deleted file mode 100644 index 0cfad3e1..00000000 --- a/src/Core/Resource/Script/EPropertyType.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef EPROPERTYTYPE -#define EPROPERTYTYPE - -#include - -enum EPropertyType -{ - eBoolProperty, - eByteProperty, - eShortProperty, - eLongProperty, - eEnumProperty, - eBitfieldProperty, - eFloatProperty, - eStringProperty, - eVector3Property, - eColorProperty, - eSoundProperty, - eAssetProperty, - eStructProperty, - eArrayProperty, - eCharacterProperty, - eMayaSplineProperty, - eUnknownProperty, - eInvalidProperty -}; - -// functions defined in IPropertyTemplate.cpp -EPropertyType PropStringToPropEnum(TString Prop); -TString PropEnumToPropString(EPropertyType Prop); - -#endif // EPROPERTYTYPE - diff --git a/src/Core/Resource/Script/IProperty.cpp b/src/Core/Resource/Script/IProperty.cpp deleted file mode 100644 index 0fca29de..00000000 --- a/src/Core/Resource/Script/IProperty.cpp +++ /dev/null @@ -1,243 +0,0 @@ -#include "IProperty.h" -#include "IPropertyTemplate.h" - -// ************ IProperty ************ -bool IProperty::IsInArray() const -{ - CPropertyStruct *pParent = mpParent; - - while (pParent) - { - if (pParent->Type() == eArrayProperty) return true; - pParent = pParent->Parent(); - } - - return false; -} - -CPropertyStruct* IProperty::RootStruct() -{ - return (mpParent ? mpParent->RootStruct() : Type() == eStructProperty ? static_cast(this) : nullptr); -} - -IPropertyTemplate* IProperty::Template() const -{ - return mpTemplate; -} - -TString IProperty::Name() const -{ - return mpTemplate->Name(); -} - -u32 IProperty::ID() const -{ - if (mpParent && mpParent->Type() == eArrayProperty) - return ArrayIndex(); - else - return mpTemplate->PropertyID(); -} - -TIDString IProperty::IDString(bool FullPath) const -{ - TIDString Out; - - if (ID() != 0xFFFFFFFF) - { - if (mpParent && FullPath) - { - Out = mpParent->IDString(true); - if (!Out.IsEmpty()) Out += ":"; - } - - Out += TString::HexString(ID()); - } - - return Out; -} - -u32 IProperty::ArrayIndex() const -{ - CArrayProperty *pArray = TPropCast(mpParent); - - if (pArray) - { - for (u32 iSub = 0; iSub < pArray->Count(); iSub++) - { - if (pArray->PropertyByIndex(iSub) == this) - return iSub; - } - } - - return -1; -} - -bool IProperty::ShouldCook() -{ - if (mpTemplate->CookPreference() == eNeverCook) return false; - else if (mpTemplate->CookPreference() == eAlwaysCook) return true; - - else - { - if (mpTemplate->Game() == eReturns) - return !MatchesDefault(); - else - return true; - } -} - -bool IProperty::MatchesDefault() -{ - const IPropertyValue *pkValue = RawValue(); - const IPropertyValue *pkDefault = mpTemplate->RawDefaultValue(); - if (!pkValue || !pkDefault) return false; - else return pkValue->Matches(pkDefault); -} - -// ************ TAssetProperty ************ -TAssetProperty::TAssetProperty(IPropertyTemplate *pTemp, CScriptObject *pInstance, CPropertyStruct *pParent) - : TTypedProperty(pTemp, pInstance, pParent, CAssetID::InvalidID( pTemp->Game() )) -{ -} - -// ************ CPropertyStruct ************ -void CPropertyStruct::Copy(const IProperty *pkProp) -{ - const CPropertyStruct *pkSource = static_cast(pkProp); - - for (u32 iSub = 0; iSub < mProperties.size(); iSub++) - mProperties[iSub]->Copy(pkSource->mProperties[iSub]); -} - -bool CPropertyStruct::ShouldCook() -{ - if (mpTemplate->CookPreference() == eNeverCook) return false; - - for (u32 iProp = 0; iProp < mProperties.size(); iProp++) - { - if (mProperties[iProp]->ShouldCook()) - return true; - } - - return false; -} - -IProperty* CPropertyStruct::PropertyByIndex(u32 index) const -{ - return mProperties[index]; -} - -IProperty* CPropertyStruct::PropertyByID(u32 ID) const -{ - for (auto it = mProperties.begin(); it != mProperties.end(); it++) - { - if ((*it)->ID() == ID) - return *it; - } - return nullptr; -} - -IProperty* CPropertyStruct::PropertyByIDString(const TIDString& rkStr) const -{ - // Resolve namespace - u32 NSStart = rkStr.IndexOf(":"); - - // String has namespace; the requested property is within a struct - if (NSStart != -1) - { - TString StrStructID = rkStr.Truncate(NSStart); - if (!StrStructID.IsHexString()) return nullptr; - - u32 StructID = StrStructID.ToInt32(); - TString PropName = rkStr.ChopFront(NSStart + 1); - - CPropertyStruct *pStruct = StructByID(StructID); - if (!pStruct) return nullptr; - else return pStruct->PropertyByIDString(PropName); - } - - // No namespace; fetch the property from this struct - else - { - if (rkStr.IsHexString()) - return PropertyByID(rkStr.ToInt32()); - else - return nullptr; - } -} - -CPropertyStruct* CPropertyStruct::StructByIndex(u32 index) const -{ - IProperty *pProp = PropertyByIndex(index); - - if (pProp->Type() == eStructProperty || pProp->Type() == eArrayProperty) - return static_cast(pProp); - else - return nullptr; -} - -CPropertyStruct* CPropertyStruct::StructByID(u32 ID) const -{ - IProperty *pProp = PropertyByID(ID); - - if (pProp->Type() == eStructProperty || pProp->Type() == eArrayProperty) - return static_cast(pProp); - else - return nullptr; -} - -CPropertyStruct* CPropertyStruct::StructByIDString(const TIDString& rkStr) const -{ - IProperty *pProp = PropertyByIDString(rkStr); - - if (pProp->Type() == eStructProperty || pProp->Type() == eArrayProperty) - return static_cast(pProp); - else - return nullptr; -} - -// ************ CArrayProperty ************ -void CArrayProperty::Copy(const IProperty *pkProp) -{ - const CArrayProperty *pkSource = static_cast(pkProp); - Resize(pkSource->Count()); - - for (u32 iSub = 0; iSub < mProperties.size(); iSub++) - mProperties[iSub]->Copy(pkSource->mProperties[iSub]); -} - -bool CArrayProperty::ShouldCook() -{ - return (mpTemplate->CookPreference() == eNeverCook ? false : true); -} - -void CArrayProperty::Resize(int Size) -{ - int OldSize = mProperties.size(); - if (OldSize == Size) return; - - if (Size < OldSize) - { - for (int iProp = mProperties.size() - 1; iProp >= Size; iProp--) - delete mProperties[iProp]; - } - - mProperties.resize(Size); - - if (Size > OldSize) - { - for (int iProp = OldSize; iProp < Size; iProp++) - mProperties[iProp] = static_cast(mpTemplate)->CreateSubStruct(Instance(), this); - } -} - -CStructTemplate* CArrayProperty::SubStructTemplate() const -{ - // CArrayTemplate inherits from CStructTemplate. The template defines the substruct structure. - return static_cast(Template()); -} - -TString CArrayProperty::ElementName() const -{ - return static_cast(Template())->ElementName(); -} diff --git a/src/Core/Resource/Script/IProperty.h b/src/Core/Resource/Script/IProperty.h deleted file mode 100644 index 1756d726..00000000 --- a/src/Core/Resource/Script/IProperty.h +++ /dev/null @@ -1,302 +0,0 @@ -#ifndef IPROPERTY -#define IPROPERTY - -#include "EPropertyType.h" -#include "IPropertyValue.h" -#include "Core/Resource/CResource.h" -#include "Core/Resource/TResPtr.h" -#include "Core/Resource/Animation/CAnimationParameters.h" -#include -#include -#include -#include - -class CScriptObject; -class CScriptTemplate; -class CStructTemplate; -class IPropertyTemplate; -typedef TString TIDString; - -/* - * IProperty is the base class, containing just some virtual function definitions - */ -class IProperty -{ -protected: - class CPropertyStruct *mpParent; - CScriptObject *mpInstance; - IPropertyTemplate *mpTemplate; - -public: - IProperty(IPropertyTemplate *pTemp, CScriptObject *pInstance, CPropertyStruct *pParent) - : mpParent(pParent) - , mpInstance(pInstance) - , mpTemplate(pTemp) - { - } - - virtual ~IProperty() {} - virtual EPropertyType Type() const = 0; - virtual TString ToString() const { return ""; } - virtual IPropertyValue* RawValue() { return nullptr; } - virtual void Copy(const IProperty *pkProp) = 0; - virtual IProperty* Clone(CScriptObject *pInstance, CPropertyStruct *pParent = 0) const = 0; - virtual bool Matches(const IProperty *pkProp) const = 0; - - virtual bool ShouldCook(); // Can't be const because it calls MatchesDefault() - virtual bool MatchesDefault(); // Can't be const because RawValue() isn't const - - inline CScriptObject* Instance() const { return mpInstance; } - inline CPropertyStruct* Parent() const { return mpParent; } - inline void SetParent(CPropertyStruct *pParent) { mpParent = pParent; } - - bool IsInArray() const; - CPropertyStruct* RootStruct(); - - // These functions can't be in the header to avoid circular includes with IPropertyTemplate.h - IPropertyTemplate* Template() const; - TString Name() const; - u32 ID() const; - TIDString IDString(bool FullPath) const; - u32 ArrayIndex() const; -}; - -/* - * TTypedProperty is a template subclass for actual properties. - */ -#define IMPLEMENT_PROPERTY_CLONE(ClassName) \ - virtual IProperty* Clone(CScriptObject *pInstance, CPropertyStruct *pParent) const \ - { \ - if (!pParent) pParent = mpParent; \ - ClassName *pOut = new ClassName(mpTemplate, pInstance, pParent); \ - pOut->Copy(this); \ - return pOut; \ - } - -template -class TTypedProperty : public IProperty -{ - ValueClass mValue; -public: - TTypedProperty(IPropertyTemplate *pTemp, CScriptObject *pInstance, CPropertyStruct *pParent) - : IProperty(pTemp, pInstance, pParent) {} - - TTypedProperty(IPropertyTemplate *pTemp, CScriptObject *pInstance, CPropertyStruct *pParent, ValueType v) - : IProperty(pTemp, pInstance, pParent), mValue(v) {} - - ~TTypedProperty() {} - virtual EPropertyType Type() const { return TypeEnum; } - static inline EPropertyType StaticType() { return TypeEnum; } - - virtual TString ToString() const { return mValue.ToString(); } - virtual IPropertyValue* RawValue() { return &mValue; } - - virtual void Copy(const IProperty *pkProp) - { - const TTypedProperty *pkCast = static_cast(pkProp); - mValue.Set(pkCast->mValue.Get()); - } - - IMPLEMENT_PROPERTY_CLONE(TTypedProperty) - - virtual bool Matches(const IProperty *pkProp) const - { - const TTypedProperty *pkTyped = static_cast(pkProp); - return ( (Type() == pkTyped->Type()) && - mValue.Matches(&pkTyped->mValue) ); - } - - inline ValueType Get() const { return mValue.Get(); } - inline void Set(ValueType v) { mValue.Set(v); } -}; -typedef TTypedProperty TBoolProperty; -typedef TTypedProperty TByteProperty; -typedef TTypedProperty TShortProperty; -typedef TTypedProperty TLongProperty; -typedef TTypedProperty TEnumProperty; -typedef TTypedProperty TBitfieldProperty; -typedef TTypedProperty TFloatProperty; -typedef TTypedProperty TVector3Property; -typedef TTypedProperty TColorProperty; -typedef TTypedProperty, eUnknownProperty, CUnknownValue> TUnknownProperty; - -/* - * TStringProperty, TSoundProperty, TAssetProperty, and TCharacterProperty get little subclasses in order to override some virtual functions. - */ -#define IMPLEMENT_PROPERTY_CTORS(ClassName, ValueType) \ - ClassName(IPropertyTemplate *pTemp, CScriptObject *pInstance, CPropertyStruct *pParent) \ - : TTypedProperty(pTemp, pInstance, pParent) {} \ - \ - ClassName(IPropertyTemplate *pTemp, CScriptObject *pInstance, CPropertyStruct *pParent, ValueType v) \ - : TTypedProperty(pTemp, pInstance, pParent, v) {} - -class TStringProperty : public TTypedProperty -{ -public: - IMPLEMENT_PROPERTY_CTORS(TStringProperty, TString) - IMPLEMENT_PROPERTY_CLONE(TStringProperty) - virtual bool MatchesDefault() { return Get().IsEmpty(); } - virtual bool ShouldCook() { return true; } -}; - -class TSoundProperty : public TTypedProperty -{ -public: - IMPLEMENT_PROPERTY_CTORS(TSoundProperty, u32) - IMPLEMENT_PROPERTY_CLONE(TSoundProperty) - virtual bool MatchesDefault() { return Get() == 0xFFFFFFFF; } -}; - -class TAssetProperty : public TTypedProperty -{ -public: - TAssetProperty(IPropertyTemplate *pTemp, CScriptObject *pInstance, CPropertyStruct *pParent); // Can't be in the header because needs to check the template to set the correct ID length - TAssetProperty(IPropertyTemplate *pTemp, CScriptObject *pInstance, CPropertyStruct *pParent, CAssetID v) - : TTypedProperty(pTemp, pInstance, pParent, v) {} - - IMPLEMENT_PROPERTY_CLONE(TAssetProperty) - virtual bool MatchesDefault() { return !Get().IsValid(); } - virtual bool ShouldCook() { return true; } -}; - -class TCharacterProperty : public TTypedProperty -{ -public: - IMPLEMENT_PROPERTY_CTORS(TCharacterProperty, CAnimationParameters) - IMPLEMENT_PROPERTY_CLONE(TCharacterProperty) - virtual bool MatchesDefault() { return Get().AnimSet() == nullptr; } - virtual bool ShouldCook() { return true; } -}; - -class TMayaSplineProperty : public TTypedProperty, eMayaSplineProperty, CMayaSplineValue> -{ -public: - IMPLEMENT_PROPERTY_CTORS(TMayaSplineProperty, std::vector) - IMPLEMENT_PROPERTY_CLONE(TMayaSplineProperty) - virtual bool MatchesDefault() { return Get().empty(); } -}; - -/* - * CPropertyStruct is for defining structs of properties. - */ -class CPropertyStruct : public IProperty -{ - friend class CScriptLoader; -protected: - std::vector mProperties; -public: - CPropertyStruct(IPropertyTemplate *pTemp, CScriptObject *pInstance, CPropertyStruct *pParent) - : IProperty(pTemp, pInstance, pParent) {} - - ~CPropertyStruct() - { - for (auto it = mProperties.begin(); it != mProperties.end(); it++) - delete *it; - } - - EPropertyType Type() const { return eStructProperty; } - static inline EPropertyType StaticType() { return eStructProperty; } - - virtual void Copy(const IProperty *pkProp); - - virtual IProperty* Clone(CScriptObject *pInstance, CPropertyStruct *pParent) const - { - if (!pParent) pParent = mpParent; - CPropertyStruct *pOut = new CPropertyStruct(mpTemplate, pInstance, pParent); - pOut->Copy(this); - return pOut; - } - - virtual bool Matches(const IProperty *pkProp) const - { - const CPropertyStruct *pkStruct = static_cast(pkProp); - - if ( (Type() == pkStruct->Type()) && - (mProperties.size() == pkStruct->mProperties.size()) ) - { - for (u32 iProp = 0; iProp < mProperties.size(); iProp++) - { - if (!mProperties[iProp]->Matches(pkStruct->mProperties[iProp])) - return false; - } - - return true; - } - - return false; - } - - virtual bool MatchesDefault() - { - for (u32 iProp = 0; iProp < mProperties.size(); iProp++) - { - if (!mProperties[iProp]->MatchesDefault()) - return false; - } - - return true; - } - - virtual bool ShouldCook(); - - // Inline - inline u32 Count() const { return mProperties.size(); } - inline void AddSubProperty(IProperty *pProp) { mProperties.push_back(pProp); } - inline IProperty* operator[](u32 index) { return mProperties[index]; } - - // Functions - IProperty* PropertyByIndex(u32 index) const; - IProperty* PropertyByID(u32 ID) const; - IProperty* PropertyByIDString(const TIDString& rkStr) const; - CPropertyStruct* StructByIndex(u32 index) const; - CPropertyStruct* StructByID(u32 ID) const; - CPropertyStruct* StructByIDString(const TIDString& rkStr) const; -}; - -/* - * CArrayProperty stores a repeated property struct. - */ -class CArrayProperty : public CPropertyStruct -{ - friend class CScriptLoader; - -public: - CArrayProperty(IPropertyTemplate *pTemp, CScriptObject *pInstance, CPropertyStruct *pParent) - : CPropertyStruct(pTemp, pInstance, pParent) {} - - EPropertyType Type() const { return eArrayProperty; } - static inline EPropertyType StaticType() { return eArrayProperty; } - - virtual void Copy(const IProperty *pkProp); - - virtual IProperty* Clone(CScriptObject *pInstance, CPropertyStruct *pParent) const - { - if (!pParent) pParent = mpParent; - CArrayProperty *pOut = new CArrayProperty(mpTemplate, pInstance, pParent); - pOut->Copy(this); - return pOut; - } - - virtual bool MatchesDefault() { return mProperties.empty(); } - virtual bool ShouldCook(); - - // Inline - inline void Reserve(u32 amount) { mProperties.reserve(amount); } - - // Functions - void Resize(int Size); - CStructTemplate* SubStructTemplate() const; - TString ElementName() const; -}; - -/* - * Function for casting properties. Returns null if the property is not actually the requested type. - */ -template -PropertyClass* TPropCast(IProperty *pProp) -{ - return (pProp && pProp->Type() == PropertyClass::StaticType() ? static_cast(pProp) : nullptr); -} - -#endif // IPROPERTY - diff --git a/src/Core/Resource/Script/IPropertyTemplate.cpp b/src/Core/Resource/Script/IPropertyTemplate.cpp deleted file mode 100644 index b90cb189..00000000 --- a/src/Core/Resource/Script/IPropertyTemplate.cpp +++ /dev/null @@ -1,289 +0,0 @@ -#include "IPropertyTemplate.h" -#include "CMasterTemplate.h" -#include - -// ************ IPropertyTemplate ************ -EGame IPropertyTemplate::Game() const -{ - return (mpMasterTemplate ? mpMasterTemplate->Game() : eUnknownGame); -} - -bool IPropertyTemplate::IsInVersion(u32 Version) const -{ - if (mAllowedVersions.empty()) - return true; - - for (u32 iVer = 0; iVer < mAllowedVersions.size(); iVer++) - if (mAllowedVersions[iVer] == Version) - return true; - - return false; -} - -TString IPropertyTemplate::FullName() const -{ - return mpParent ? mpParent->FullName() + "::" + Name() : Name(); -} - -TIDString IPropertyTemplate::IDString(bool FullPath) const -{ - if (mID != 0xFFFFFFFF) - { - TIDString Out; - - if (mpParent && FullPath) - { - Out = mpParent->IDString(true); - if (!Out.IsEmpty()) Out += ":"; - } - - Out += TIDString::HexString(mID); - return Out; - } - else return ""; -} - -bool IPropertyTemplate::IsDescendantOf(const CStructTemplate *pStruct) const -{ - CStructTemplate *pParent = mpParent; - - while (pParent) - { - if (pParent == pStruct) return true; - pParent = pParent->Parent(); - } - - return false; -} - -bool IPropertyTemplate::IsFromStructTemplate() const -{ - const CStructTemplate *pParent = Parent(); - - while (pParent) - { - if (!pParent->SourceFile().IsEmpty()) return true; - pParent = pParent->Parent(); - } - - return false; -} - -TString IPropertyTemplate::FindStructSource() const -{ - const CStructTemplate *pkStruct = mpParent; - - while (pkStruct) - { - if (!pkStruct->SourceFile().IsEmpty()) return pkStruct->SourceFile(); - pkStruct = pkStruct->Parent(); - } - - return ""; -} - -CStructTemplate* IPropertyTemplate::RootStruct() -{ - if (mpParent) return mpParent->RootStruct(); - else if (Type() == eStructProperty) return static_cast(this); - else return nullptr; -} - -// ************ CStructTemplate ************ -void CStructTemplate::CopyStructData(const CStructTemplate *pkStruct) -{ - mVersionPropertyCounts = pkStruct->mVersionPropertyCounts; - mIsSingleProperty = pkStruct->mIsSingleProperty; - mSourceFile = pkStruct->mSourceFile; - - mSubProperties.resize(pkStruct->mSubProperties.size()); - - for (u32 iSub = 0; iSub < pkStruct->mSubProperties.size(); iSub++) - { - mSubProperties[iSub] = pkStruct->mSubProperties[iSub]->Clone(mpScriptTemplate, this); - CMasterTemplate::AddProperty(mSubProperties[iSub]); - } -} - -u32 CStructTemplate::PropertyCountForVersion(u32 Version) -{ - if (Version == -1) Version = 0; - return mVersionPropertyCounts[Version]; -} - -u32 CStructTemplate::VersionForPropertyCount(u32 PropCount) -{ - for (u32 iVer = 0; iVer < NumVersions(); iVer++) - if (mVersionPropertyCounts[iVer] == PropCount) - return iVer; - - return -1; -} - -IPropertyTemplate* CStructTemplate::PropertyByIndex(u32 index) -{ - if (mSubProperties.size() > index) - return mSubProperties[index]; - else - return nullptr; -} - -IPropertyTemplate* CStructTemplate::PropertyByID(u32 ID) -{ - for (auto it = mSubProperties.begin(); it != mSubProperties.end(); it++) - { - if ((*it)->PropertyID() == ID) - return *it; - } - return nullptr; -} - -IPropertyTemplate* CStructTemplate::PropertyByIDString(const TIDString& str) -{ - // Resolve namespace - u32 nsStart = str.IndexOf(":"); - u32 propStart = nsStart + 1; - - // String has namespace; the requested property is within a struct - if (nsStart != -1) - { - TString strStructID = str.SubString(0, nsStart); - if (!strStructID.IsHexString()) return nullptr; - - u32 structID = strStructID.ToInt32(); - TString propName = str.SubString(propStart, str.Length() - propStart); - - CStructTemplate *pStruct = StructByID(structID); - if (!pStruct) return nullptr; - else return pStruct->PropertyByIDString(propName); - } - - // No namespace; fetch the property from this struct - else - { - // ID string lookup - if (str.IsHexString()) - return PropertyByID(str.ToInt32()); - else - return nullptr; - } -} - -CStructTemplate* CStructTemplate::StructByIndex(u32 index) -{ - IPropertyTemplate *pProp = PropertyByIndex(index); - - if (pProp->Type() == eStructProperty) - return static_cast(pProp); - else - return nullptr; -} - -CStructTemplate* CStructTemplate::StructByID(u32 ID) -{ - IPropertyTemplate *pProp = PropertyByID(ID); - - if (pProp && pProp->Type() == eStructProperty) - return static_cast(pProp); - else - return nullptr; -} - -CStructTemplate* CStructTemplate::StructByIDString(const TString& str) -{ - IPropertyTemplate *pProp = PropertyByIDString(str); - - if (pProp && pProp->Type() == eStructProperty) - return static_cast(pProp); - else - return nullptr; -} - -bool CStructTemplate::HasProperty(const TIDString& rkIdString) -{ - IPropertyTemplate *pProperty = PropertyByIDString(rkIdString); - return (pProperty != nullptr); -} - -void CStructTemplate::DetermineVersionPropertyCounts() -{ - for (u32 iVer = 0; iVer < mVersionPropertyCounts.size(); iVer++) - { - mVersionPropertyCounts[iVer] = 0; - - for (u32 iProp = 0; iProp < mSubProperties.size(); iProp++) - { - if (mSubProperties[iProp]->IsInVersion(iVer) && mSubProperties[iProp]->CookPreference() != eNeverCook) - mVersionPropertyCounts[iVer]++; - } - } -} - -// ************ GLOBAL FUNCTIONS ************ -TString PropEnumToPropString(EPropertyType Prop) -{ - switch (Prop) - { - case eBoolProperty: return "bool"; - case eByteProperty: return "byte"; - case eShortProperty: return "short"; - case eLongProperty: return "long"; - case eEnumProperty: return "enum"; - case eBitfieldProperty: return "bitfield"; - case eFloatProperty: return "float"; - case eStringProperty: return "string"; - case eColorProperty: return "color"; - case eVector3Property: return "vector3f"; - case eSoundProperty: return "sound"; - case eAssetProperty: return "asset"; - case eStructProperty: return "struct"; - case eArrayProperty: return "array"; - case eCharacterProperty: return "character"; - case eMayaSplineProperty: return "MayaSpline"; - case eUnknownProperty: return "unknown"; - - case eInvalidProperty: - default: - return "invalid"; - } -} - -EPropertyType PropStringToPropEnum(TString Prop) -{ - Prop = Prop.ToLower(); - if (Prop == "bool") return eBoolProperty; - if (Prop == "byte") return eByteProperty; - if (Prop == "short") return eShortProperty; - if (Prop == "long") return eLongProperty; - if (Prop == "enum") return eEnumProperty; - if (Prop == "bitfield") return eBitfieldProperty; - if (Prop == "float") return eFloatProperty; - if (Prop == "string") return eStringProperty; - if (Prop == "color") return eColorProperty; - if (Prop == "vector3f") return eVector3Property; - if (Prop == "sound") return eSoundProperty; - if (Prop == "asset") return eAssetProperty; - if (Prop == "struct") return eStructProperty; - if (Prop == "array") return eArrayProperty; - if (Prop == "character") return eCharacterProperty; - if (Prop == "mayaspline") return eMayaSplineProperty; - if (Prop == "unknown") return eUnknownProperty; - return eInvalidProperty; -} - -// ************ DEBUG ************ -void CStructTemplate::DebugPrintProperties(TString base) -{ - base = base + Name() + "::"; - for (auto it = mSubProperties.begin(); it != mSubProperties.end(); it++) - { - IPropertyTemplate *tmp = *it; - if (tmp->Type() == eStructProperty) - { - CStructTemplate *tmp2 = static_cast(tmp); - tmp2->DebugPrintProperties(base); - } - else - Log::Write(base + tmp->Name()); - } -} diff --git a/src/Core/Resource/Script/IPropertyTemplate.h b/src/Core/Resource/Script/IPropertyTemplate.h deleted file mode 100644 index aa9aeaaf..00000000 --- a/src/Core/Resource/Script/IPropertyTemplate.h +++ /dev/null @@ -1,763 +0,0 @@ -#ifndef IPROPERTYTEMPLATE -#define IPROPERTYTEMPLATE - -#include "EPropertyType.h" -#include "IProperty.h" -#include "IPropertyValue.h" -#include "Core/Resource/CResTypeFilter.h" -#include "Core/Resource/Animation/CAnimationParameters.h" -#include -#include -#include -#include -#include - -typedef TString TIDString; -class CMasterTemplate; -class CStructTemplate; -class IProperty; - -enum ECookPreference -{ - eNoCookPreference, - eAlwaysCook, - eNeverCook -}; - -// IPropertyTemplate - Base class. Contains basic info that every property has, -// plus virtual functions for determining more specific property type. -class IPropertyTemplate -{ - friend class CTemplateLoader; - friend class CTemplateWriter; - -protected: - CStructTemplate *mpParent; - CScriptTemplate *mpScriptTemplate; - CMasterTemplate *mpMasterTemplate; - TString mName; - TString mDescription; - u32 mID; - ECookPreference mCookPreference; - std::vector mAllowedVersions; - -public: - IPropertyTemplate(u32 ID, CScriptTemplate *pScript, CMasterTemplate *pMaster, CStructTemplate *pParent = 0) - : mID(ID) - , mpParent(pParent) - , mpScriptTemplate(pScript) - , mpMasterTemplate(pMaster) - , mName("UNSET PROPERTY NAME") - , mCookPreference(eNoCookPreference) - { - } - - IPropertyTemplate(u32 ID, const TString& rkName, ECookPreference CookPreference, CScriptTemplate *pScript, CMasterTemplate *pMaster, CStructTemplate *pParent = 0) - : mID(ID) - , mpParent(pParent) - , mpScriptTemplate(pScript) - , mpMasterTemplate(pMaster) - , mName(rkName) - , mCookPreference(CookPreference) - { - } - - virtual EPropertyType Type() const = 0; - virtual bool CanHaveDefault() const = 0; - virtual bool IsNumerical() const = 0; - virtual IProperty* InstantiateProperty(CScriptObject *pInstance, CPropertyStruct *pParent) = 0; - virtual IPropertyTemplate* Clone(CScriptTemplate *pScript, CStructTemplate *pParent = 0) const = 0; - - virtual void Copy(const IPropertyTemplate *pkTemp) - { - mName = pkTemp->mName; - mDescription = pkTemp->mDescription; - mID = pkTemp->mID; - mCookPreference = pkTemp->mCookPreference; - mAllowedVersions = pkTemp->mAllowedVersions; - } - - virtual bool Matches(const IPropertyTemplate *pkTemp) const - { - return ( (pkTemp != nullptr) && - (mName == pkTemp->mName) && - (mDescription == pkTemp->mDescription) && - (mID == pkTemp->mID) && - (mCookPreference == pkTemp->mCookPreference) && - (mAllowedVersions == pkTemp->mAllowedVersions) && - (Type() == pkTemp->Type()) ); - } - - virtual TString DefaultToString() const { return ""; } - virtual const IPropertyValue* RawDefaultValue() const { return nullptr; } - virtual bool HasValidRange() const { return false; } - virtual TString RangeToString() const { return ""; } - virtual TString Suffix() const { return ""; } - - virtual void SetParam(const TString& rkParamName, const TString& rkValue) - { - if (rkParamName == "cook_pref") - { - TString lValue = rkValue.ToLower(); - - if (lValue == "always") - mCookPreference = eAlwaysCook; - else if (lValue == "never") - mCookPreference = eNeverCook; - else - mCookPreference = eNoCookPreference; - } - - else if (rkParamName == "description") - mDescription = rkValue; - } - - EGame Game() const; - bool IsInVersion(u32 Version) const; - TString FullName() const; - TIDString IDString(bool FullPath) const; - bool IsDescendantOf(const CStructTemplate *pStruct) const; - bool IsFromStructTemplate() const; - TString FindStructSource() const; - CStructTemplate* RootStruct(); - - // Inline Accessors - inline TString Name() const { return mName; } - inline TString Description() const { return mDescription; } - inline u32 PropertyID() const { return mID; } - inline ECookPreference CookPreference() const { return mCookPreference; } - inline CStructTemplate* Parent() const { return mpParent; } - inline CScriptTemplate* ScriptTemplate() const { return mpScriptTemplate; } - inline CMasterTemplate* MasterTemplate() const { return mpMasterTemplate; } - inline void SetName(const TString& rkName) { mName = rkName; } - inline void SetDescription(const TString& rkDesc) { mDescription = rkDesc; } -}; - -// Macro for defining reimplementations of IPropertyTemplate::Clone(), which are usually identical to each other aside from the class being instantiated -#define IMPLEMENT_TEMPLATE_CLONE(ClassName) \ - virtual IPropertyTemplate* Clone(CScriptTemplate *pScript, CStructTemplate *pParent = 0) const \ - { \ - if (!pParent) pParent = mpParent; \ - if (!pScript) pScript = mpScriptTemplate; \ - ClassName *pTemp = new ClassName(mID, pScript, mpMasterTemplate, pParent); \ - pTemp->Copy(this); \ - return pTemp; \ - } - -// TTypedPropertyTemplate - Template property class that allows for tracking -// a default value. Typedefs are set up for a bunch of property types. -template -class TTypedPropertyTemplate : public IPropertyTemplate -{ - friend class CTemplateLoader; - friend class CTemplateWriter; - -protected: - ValueClass mDefaultValue; - -public: - TTypedPropertyTemplate(u32 ID, CScriptTemplate *pScript, CMasterTemplate *pMaster, CStructTemplate *pParent = 0) - : IPropertyTemplate(ID, pScript, pMaster, pParent) {} - - TTypedPropertyTemplate(u32 ID, const TString& rkName, ECookPreference CookPreference, CScriptTemplate *pScript, CMasterTemplate *pMaster, CStructTemplate *pParent = 0) - : IPropertyTemplate(ID, rkName, CookPreference, pScript, pMaster, pParent) {} - - virtual EPropertyType Type() const { return PropTypeEnum; } - virtual bool CanHaveDefault() const { return CanHaveDefaultValue; } - virtual bool IsNumerical() const { return false; } - - virtual IProperty* InstantiateProperty(CScriptObject *pInstance, CPropertyStruct *pParent) - { - typedef TTypedProperty TPropertyType; - TPropertyType *pOut = new TPropertyType(this, pInstance, pParent, GetDefaultValue()); - return pOut; - } - - IMPLEMENT_TEMPLATE_CLONE(TTypedPropertyTemplate) - - virtual void Copy(const IPropertyTemplate *pkTemp) - { - IPropertyTemplate::Copy(pkTemp); - mDefaultValue.Copy(&static_cast(pkTemp)->mDefaultValue); - } - - virtual bool Matches(const IPropertyTemplate *pkTemp) const - { - const TTypedPropertyTemplate *pkTyped = static_cast(pkTemp); - - return ( (IPropertyTemplate::Matches(pkTemp)) && - (mDefaultValue.Matches(&pkTyped->mDefaultValue)) ); - } - - virtual TString DefaultToString() const - { - return mDefaultValue.ToString(); - } - - virtual const IPropertyValue* RawDefaultValue() const - { - return &mDefaultValue; - } - - virtual void SetParam(const TString& rkParamName, const TString& rkValue) - { - IPropertyTemplate::SetParam(rkParamName, rkValue); - - if (rkParamName == "default") - mDefaultValue.FromString(rkValue.ToLower()); - } - - inline PropType GetDefaultValue() const { return mDefaultValue.Get(); } - inline void SetDefaultValue(const PropType& rkIn) { mDefaultValue.Set(rkIn); } -}; - -// TNumericalPropertyTemplate - Subclass of TTypedPropertyTemplate for numerical -// property types, and allows a min/max value and a suffix to be tracked. -template -class TNumericalPropertyTemplate : public TTypedPropertyTemplate -{ - friend class CTemplateLoader; - friend class CTemplateWriter; - - ValueClass mMin; - ValueClass mMax; - TString mSuffix; - -public: - TNumericalPropertyTemplate(u32 ID, CScriptTemplate *pScript, CMasterTemplate *pMaster, CStructTemplate *pParent = 0) - : TTypedPropertyTemplate(ID, pScript, pMaster, pParent) - {} - - TNumericalPropertyTemplate(u32 ID, const TString& rkName, ECookPreference CookPreference, CScriptTemplate *pScript, CMasterTemplate *pMaster, CStructTemplate *pParent = 0) - : TTypedPropertyTemplate(ID, rkName, CookPreference, pScript, pMaster, pParent) - , mMin(0) - , mMax(0) - {} - - virtual bool IsNumerical() const { return true; } - virtual bool HasValidRange() const { return (mMin != 0 || mMax != 0); } - - IMPLEMENT_TEMPLATE_CLONE(TNumericalPropertyTemplate) - - virtual void Copy(const IPropertyTemplate *pkTemp) - { - TTypedPropertyTemplate::Copy(pkTemp); - - const TNumericalPropertyTemplate *pkNumerical = static_cast(pkTemp); - mMin.Copy(&pkNumerical->mMin); - mMax.Copy(&pkNumerical->mMax); - mSuffix = pkNumerical->mSuffix; - } - - virtual bool Matches(const IPropertyTemplate *pkTemp) const - { - const TNumericalPropertyTemplate *pkNumerical = static_cast(pkTemp); - - return ( (TTypedPropertyTemplate::Matches(pkTemp)) && - (mMin.Matches(&pkNumerical->mMin)) && - (mMax.Matches(&pkNumerical->mMax)) && - (mSuffix == pkNumerical->mSuffix) ); - } - - virtual TString RangeToString() const - { - return mMin.ToString() + "," + mMax.ToString(); - } - - virtual void SetParam(const TString& rkParamName, const TString& rkValue) - { - TTypedPropertyTemplate::SetParam(rkParamName, rkValue); - - if (rkParamName == "range") - { - TStringList Components = rkValue.ToLower().Split(", "); - - if (Components.size() == 2) - { - mMin.FromString(Components.front()); - mMax.FromString(Components.back()); - } - } - - else if (rkParamName == "suffix") - { - mSuffix = rkValue; - } - } - - virtual TString Suffix() const { return mSuffix; } - inline PropType GetMin() const { return mMin.Get(); } - inline PropType GetMax() const { return mMax.Get(); } - - inline void SetRange(const PropType& rkMin, const PropType& rkMax) - { - mMin.Set(rkMin); - mMax.Set(rkMax); - } - - inline void SetSuffix(const TString& rkSuffix) - { - mSuffix = rkSuffix; - } -}; - -// Typedefs for all property types that don't need further functionality. -typedef TTypedPropertyTemplate TBoolTemplate; -typedef TNumericalPropertyTemplate TByteTemplate; -typedef TNumericalPropertyTemplate TShortTemplate; -typedef TNumericalPropertyTemplate TLongTemplate; -typedef TNumericalPropertyTemplate TFloatTemplate; -typedef TTypedPropertyTemplate TVector3Template; -typedef TTypedPropertyTemplate TColorTemplate; - -// TCharacterTemplate, TSoundTemplate, TStringTemplate, and TMayaSplineTemplate get their own subclasses so they can reimplement a couple functions -class TCharacterTemplate : public TTypedPropertyTemplate -{ - friend class CTemplateLoader; - friend class CTemplateWriter; - -public: - TCharacterTemplate(u32 ID, CScriptTemplate *pScript, CMasterTemplate *pMaster, CStructTemplate *pParent = 0) - : TTypedPropertyTemplate(ID, pScript, pMaster, pParent) {} - - TCharacterTemplate(u32 ID, const TString& rkName, ECookPreference CookPreference, CScriptTemplate *pScript, CMasterTemplate *pMaster, CStructTemplate *pParent = 0) - : TTypedPropertyTemplate(ID, rkName, CookPreference, pScript, pMaster, pParent) {} - - IProperty* InstantiateProperty(CScriptObject *pInstance, CPropertyStruct *pParent) - { - return new TCharacterProperty(this, pInstance, pParent, CAnimationParameters(Game())); - } -}; - -class TSoundTemplate : public TTypedPropertyTemplate -{ - friend class CTemplateLoader; - friend class CTemplateWriter; - -public: - TSoundTemplate(u32 ID, CScriptTemplate *pScript, CMasterTemplate *pMaster, CStructTemplate *pParent = 0) - : TTypedPropertyTemplate(ID, pScript, pMaster, pParent) {} - - TSoundTemplate(u32 ID, const TString& rkName, ECookPreference CookPreference, CScriptTemplate *pScript, CMasterTemplate *pMaster, CStructTemplate *pParent = 0) - : TTypedPropertyTemplate(ID, rkName, CookPreference, pScript, pMaster, pParent) {} - - IProperty* InstantiateProperty(CScriptObject *pInstance, CPropertyStruct *pParent) - { - return new TSoundProperty(this, pInstance, pParent, -1); - } -}; - -class TStringTemplate : public TTypedPropertyTemplate -{ - friend class CTemplateLoader; - friend class CTemplateWriter; - -public: - TStringTemplate(u32 ID, CScriptTemplate *pScript, CMasterTemplate *pMaster, CStructTemplate *pParent = 0) - : TTypedPropertyTemplate(ID, pScript, pMaster, pParent) {} - - TStringTemplate(u32 ID, const TString& rkName, ECookPreference CookPreference, CScriptTemplate *pScript, CMasterTemplate *pMaster, CStructTemplate *pParent = 0) - : TTypedPropertyTemplate(ID, rkName, CookPreference, pScript, pMaster, pParent) {} - - IProperty* InstantiateProperty(CScriptObject *pInstance, CPropertyStruct *pParent) - { - return new TStringProperty(this, pInstance, pParent); - } -}; - -class TMayaSplineTemplate : public TTypedPropertyTemplate, eMayaSplineProperty, CMayaSplineValue, false> -{ - friend class CTemplateLoader; - friend class CTemplateWriter; - -public: - TMayaSplineTemplate(u32 ID, CScriptTemplate *pScript, CMasterTemplate *pMaster, CStructTemplate *pParent = 0) - : TTypedPropertyTemplate(ID, pScript, pMaster, pParent) {} - - TMayaSplineTemplate(u32 ID, const TString& rkName, ECookPreference CookPreference, CScriptTemplate *pScript, CMasterTemplate *pMaster, CStructTemplate *pParent = 0) - : TTypedPropertyTemplate(ID, rkName, CookPreference, pScript, pMaster, pParent) {} - - IProperty* InstantiateProperty(CScriptObject *pInstance, CPropertyStruct *pParent) - { - return new TMayaSplineProperty(this, pInstance, pParent); - } -}; - -// CAssetTemplate - Property template for assets. Tracks a list of resource types that -// the property is allowed to accept. -class CAssetTemplate : public IPropertyTemplate -{ - friend class CTemplateLoader; - friend class CTemplateWriter; - - CResTypeFilter mTypeFilter; -public: - CAssetTemplate(u32 ID, CScriptTemplate *pScript, CMasterTemplate *pMaster, CStructTemplate *pParent = 0) - : IPropertyTemplate(ID, pScript, pMaster, pParent) {} - - CAssetTemplate(u32 ID, const TString& rkName, ECookPreference CookPreference, CScriptTemplate *pScript, CMasterTemplate *pMaster, CStructTemplate *pParent = 0) - : IPropertyTemplate(ID, rkName, CookPreference, pScript, pMaster, pParent) {} - - virtual EPropertyType Type() const { return eAssetProperty; } - virtual bool CanHaveDefault() const { return false; } - virtual bool IsNumerical() const { return false; } - - IProperty* InstantiateProperty(CScriptObject *pInstance, CPropertyStruct *pParent) - { - return new TAssetProperty(this, pInstance, pParent); - } - - IMPLEMENT_TEMPLATE_CLONE(CAssetTemplate) - - virtual void Copy(const IPropertyTemplate *pkTemp) - { - IPropertyTemplate::Copy(pkTemp); - mTypeFilter = static_cast(pkTemp)->mTypeFilter; - } - - virtual bool Matches(const IPropertyTemplate *pkTemp) const - { - const CAssetTemplate *pkAsset = static_cast(pkTemp); - - return ( (IPropertyTemplate::Matches(pkTemp)) && - (mTypeFilter == pkAsset->mTypeFilter) ); - } - - void SetTypeFilter(const TStringList& rkExtensions) { mTypeFilter.SetAcceptedTypes(Game(), rkExtensions); } - const CResTypeFilter& TypeFilter() const { return mTypeFilter; } -}; - -// CEnumTemplate - Property template for enums. Tracks a list of possible values (enumerators). -class CEnumTemplate : public TTypedPropertyTemplate -{ - friend class CTemplateLoader; - friend class CTemplateWriter; - - struct SEnumerator - { - TString Name; - u32 ID; - - SEnumerator(const TString& rkName, u32 _ID) - : Name(rkName), ID(_ID) {} - - bool operator==(const SEnumerator& rkOther) const - { - return ( (Name == rkOther.Name) && (ID == rkOther.ID) ); - } - }; - std::vector mEnumerators; - TString mSourceFile; - -public: - CEnumTemplate(u32 ID, CScriptTemplate *pScript, CMasterTemplate *pMaster, CStructTemplate *pParent = 0) - : TTypedPropertyTemplate(ID, pScript, pMaster, pParent) - { - } - - CEnumTemplate(u32 ID, const TString& rkName, ECookPreference CookPreference, CScriptTemplate *pScript, CMasterTemplate *pMaster, CStructTemplate *pParent = 0) - : TTypedPropertyTemplate(ID, rkName, CookPreference, pScript, pMaster, pParent) - { - } - - virtual EPropertyType Type() const { return eEnumProperty; } - virtual bool CanHaveDefault() const { return true; } - virtual bool IsNumerical() const { return false; } - - virtual IProperty* InstantiateProperty(CScriptObject *pInstance, CPropertyStruct *pParent) - { - TEnumProperty *pEnum = new TEnumProperty(this, pInstance, pParent); - pEnum->Set(GetDefaultValue()); - return pEnum; - } - - IMPLEMENT_TEMPLATE_CLONE(CEnumTemplate) - - virtual void Copy(const IPropertyTemplate *pkTemp) - { - TTypedPropertyTemplate::Copy(pkTemp); - - const CEnumTemplate *pkEnum = static_cast(pkTemp); - mEnumerators = pkEnum->mEnumerators; - mSourceFile = pkEnum->mSourceFile; - } - - virtual bool Matches(const IPropertyTemplate *pkTemp) const - { - const CEnumTemplate *pkEnum = static_cast(pkTemp); - - return ( (TTypedPropertyTemplate::Matches(pkTemp)) && - (mEnumerators == pkEnum->mEnumerators) && - (mSourceFile == pkEnum->mSourceFile) ); - } - - inline TString SourceFile() const { return mSourceFile; } - inline u32 NumEnumerators() const { return mEnumerators.size(); } - - u32 EnumeratorIndex(u32 enumID) const - { - for (u32 iEnum = 0; iEnum < mEnumerators.size(); iEnum++) - { - if (mEnumerators[iEnum].ID == enumID) - return iEnum; - } - return -1; - } - - u32 EnumeratorID(u32 enumIndex) const - { - if (mEnumerators.size() > enumIndex) - return mEnumerators[enumIndex].ID; - - else return -1; - } - - TString EnumeratorName(u32 enumIndex) const - { - if (mEnumerators.size() > enumIndex) - return mEnumerators[enumIndex].Name; - - else return "INVALID ENUM INDEX"; - } -}; - -// CBitfieldTemplate - Property template for bitfields, which can have multiple -// distinct boolean parameters packed into one property. -class CBitfieldTemplate : public TTypedPropertyTemplate -{ - friend class CTemplateLoader; - friend class CTemplateWriter; - - struct SBitFlag - { - TString Name; - u32 Mask; - - SBitFlag(const TString& _name, u32 _mask) - : Name(_name), Mask(_mask) {} - - bool operator==(const SBitFlag& rkOther) const - { - return ( (Name == rkOther.Name) && (Mask == rkOther.Mask) ); - } - }; - std::vector mBitFlags; - TString mSourceFile; - -public: - CBitfieldTemplate(u32 ID, CScriptTemplate *pScript, CMasterTemplate *pMaster, CStructTemplate *pParent = 0) - : TTypedPropertyTemplate(ID, pScript, pMaster, pParent) - { - } - - CBitfieldTemplate(u32 ID, const TString& rkName, ECookPreference CookPreference, CScriptTemplate *pScript, CMasterTemplate *pMaster, CStructTemplate *pParent = 0) - : TTypedPropertyTemplate(ID, rkName, CookPreference, pScript, pMaster, pParent) - { - } - - virtual EPropertyType Type() const { return eBitfieldProperty; } - virtual bool CanHaveDefault() const { return true; } - virtual bool IsNumerical() const { return false; } - - virtual IProperty* InstantiateProperty(CScriptObject *pInstance, CPropertyStruct *pParent) - { - TBitfieldProperty *pBitfield = new TBitfieldProperty(this, pInstance, pParent); - pBitfield->Set(GetDefaultValue()); - return pBitfield; - } - - IMPLEMENT_TEMPLATE_CLONE(CBitfieldTemplate) - - virtual void Copy(const IPropertyTemplate *pkTemp) - { - TTypedPropertyTemplate::Copy(pkTemp); - - const CBitfieldTemplate *pkBitfield = static_cast(pkTemp); - mBitFlags = pkBitfield->mBitFlags; - mSourceFile = pkBitfield->mSourceFile; - } - - virtual bool Matches(const IPropertyTemplate *pkTemp) const - { - const CBitfieldTemplate *pkBitfield = static_cast(pkTemp); - - return ( (TTypedPropertyTemplate::Matches(pkTemp)) && - (mBitFlags == pkBitfield->mBitFlags) && - (mSourceFile == pkBitfield->mSourceFile) ); - } - - inline TString SourceFile() const { return mSourceFile; } - inline u32 NumFlags() const { return mBitFlags.size(); } - inline TString FlagName(u32 index) const { return mBitFlags[index].Name; } - inline u32 FlagMask(u32 index) const { return mBitFlags[index].Mask; } -}; - -// CStructTemplate - Defines structs composed of multiple sub-properties. -class CStructTemplate : public IPropertyTemplate -{ - friend class CTemplateLoader; - friend class CTemplateWriter; - -protected: - std::vector mSubProperties; - std::vector mVersionPropertyCounts; - bool mIsSingleProperty; - TString mSourceFile; - - void DetermineVersionPropertyCounts(); -public: - CStructTemplate(u32 ID, CScriptTemplate *pScript, CMasterTemplate *pMaster, CStructTemplate *pParent = 0) - : IPropertyTemplate(ID, pScript, pMaster, pParent) - , mIsSingleProperty(false) {} - - CStructTemplate(u32 ID, const TString& rkName, ECookPreference CookPreference, CScriptTemplate *pScript, CMasterTemplate *pMaster, CStructTemplate *pParent = 0) - : IPropertyTemplate(ID, rkName, CookPreference, pScript, pMaster, pParent) - , mIsSingleProperty(false) {} - - ~CStructTemplate() - { - for (auto it = mSubProperties.begin(); it != mSubProperties.end(); it++) - delete *it; - } - - EPropertyType Type() const { return eStructProperty; } - bool CanHaveDefault() const { return false; } - bool IsNumerical() const { return false; } - - IProperty* InstantiateProperty(CScriptObject *pInstance, CPropertyStruct *pParent) - { - CPropertyStruct *pStruct = new CPropertyStruct(this, pInstance, pParent); - - for (u32 iSub = 0; iSub < mSubProperties.size(); iSub++) - { - IProperty *pSubProp = mSubProperties[iSub]->InstantiateProperty(pInstance, pStruct); - pStruct->AddSubProperty(pSubProp); - } - - return pStruct; - } - - IMPLEMENT_TEMPLATE_CLONE(CStructTemplate) - - virtual void Copy(const IPropertyTemplate *pkTemp) - { - IPropertyTemplate::Copy(pkTemp); - - const CStructTemplate *pkStruct = static_cast(pkTemp); - CopyStructData(pkStruct); - } - - void CopyStructData(const CStructTemplate *pkStruct); - - virtual bool Matches(const IPropertyTemplate *pkTemp) const - { - const CStructTemplate *pkStruct = static_cast(pkTemp); - - if ( (IPropertyTemplate::Matches(pkTemp)) && - (mVersionPropertyCounts == pkStruct->mVersionPropertyCounts) && - (mIsSingleProperty == pkStruct->mIsSingleProperty) && - (mSourceFile == pkStruct->mSourceFile) ) - { - return StructDataMatches(pkStruct); - } - - return false; - } - - bool StructDataMatches(const CStructTemplate *pkStruct) const - { - if ( (mIsSingleProperty == pkStruct->mIsSingleProperty) && - (mSubProperties.size() == pkStruct->mSubProperties.size()) ) - { - for (u32 iSub = 0; iSub < mSubProperties.size(); iSub++) - { - if (!mSubProperties[iSub]->Matches(pkStruct->mSubProperties[iSub])) - return false; - } - - return true; - } - - return false; - } - - inline TString SourceFile() const { return mSourceFile; } - inline bool IsSingleProperty() const { return mIsSingleProperty; } - inline u32 Count() const { return mSubProperties.size(); } - inline u32 NumVersions() const { return mVersionPropertyCounts.size(); } - - u32 PropertyCountForVersion(u32 Version); - u32 VersionForPropertyCount(u32 PropCount); - IPropertyTemplate* PropertyByIndex(u32 index); - IPropertyTemplate* PropertyByID(u32 ID); - IPropertyTemplate* PropertyByIDString(const TIDString& str); - CStructTemplate* StructByIndex(u32 index); - CStructTemplate* StructByID(u32 ID); - CStructTemplate* StructByIDString(const TIDString& str); - bool HasProperty(const TIDString& rkIdString); - void DebugPrintProperties(TString base); -}; - -// CArrayTemplate - Defines a repeating struct composed of multiple sub-properties. -// Similar to CStructTemplate, but with new implementations of Type() and InstantiateProperty(). -class CArrayTemplate : public CStructTemplate -{ - friend class CTemplateLoader; - friend class CTemplateWriter; - TString mElementName; - -public: - CArrayTemplate(u32 ID, CScriptTemplate *pScript, CMasterTemplate *pMaster, CStructTemplate *pParent = 0) - : CStructTemplate(ID, pScript, pMaster, pParent) - { - mIsSingleProperty = true; - } - - CArrayTemplate(u32 ID, const TString& rkName, ECookPreference CookPreference, CScriptTemplate *pScript, CMasterTemplate *pMaster, CStructTemplate *pParent = 0) - : CStructTemplate(ID, rkName, CookPreference, pScript, pMaster, pParent) - { - mIsSingleProperty = true; - } - - EPropertyType Type() const { return eArrayProperty; } - - IProperty* InstantiateProperty(CScriptObject *pInstance, CPropertyStruct *pParent) - { - return new CArrayProperty(this, pInstance, pParent); - } - - IMPLEMENT_TEMPLATE_CLONE(CArrayTemplate) - - virtual void Copy(const IPropertyTemplate *pkTemp) - { - CStructTemplate::Copy(pkTemp); - mElementName = static_cast(pkTemp)->mElementName; - } - - virtual bool Matches(const IPropertyTemplate *pkTemp) const - { - const CArrayTemplate *pkArray = static_cast(pkTemp); - - return ( (mElementName == pkArray->mElementName) & - (CStructTemplate::Matches(pkTemp)) ); - } - - void SetParam(const TString& rkParamName, const TString& rkValue) - { - if (rkParamName == "element_name") - mElementName = rkValue; - else - CStructTemplate::SetParam(rkParamName, rkValue); - } - - TString ElementName() const { return mElementName; } - void SetElementName(const TString& rkName) { mElementName = rkName; } - - CPropertyStruct* CreateSubStruct(CScriptObject *pInstance, CArrayProperty *pArray) - { - return (CPropertyStruct*) CStructTemplate::InstantiateProperty(pInstance, pArray); - } -}; - -#endif // IPROPERTYTEMPLATE - diff --git a/src/Core/Resource/Script/IPropertyValue.h b/src/Core/Resource/Script/IPropertyValue.h deleted file mode 100644 index b49ef4cb..00000000 --- a/src/Core/Resource/Script/IPropertyValue.h +++ /dev/null @@ -1,390 +0,0 @@ -#ifndef IPROPERTYVALUE_H -#define IPROPERTYVALUE_H - -#include "EPropertyType.h" -#include -#include -#include "Core/Resource/Animation/CAnimationParameters.h" -#include "Core/Resource/CResource.h" -#include "Core/Resource/TResPtr.h" - -#include -#include -#include - -class IPropertyValue -{ -public: - virtual TString ToString() const = 0; - virtual void FromString(const TString& rkString) = 0; - virtual IPropertyValue* Clone() const = 0; - virtual void Copy(const IPropertyValue *pkValue) = 0; - virtual bool Matches(const IPropertyValue *pkValue) const = 0; -}; - -template -class TTypedPropertyValue : public IPropertyValue -{ -protected: - PropType mValue; - -public: - TTypedPropertyValue() {} - - TTypedPropertyValue(PropType rkVal) - : mValue(rkVal) {} - - virtual void Copy(const IPropertyValue *pkValue) - { - const TTypedPropertyValue *pkOther = static_cast(pkValue); - mValue = pkOther->mValue; - } - - virtual bool Matches(const IPropertyValue *pkValue) const - { - const TTypedPropertyValue *pkOther = static_cast(pkValue); - return ((pkValue != nullptr) && (mValue == pkOther->mValue)); - } - - PropType Get() const - { - return mValue; - } - - void Set(const PropType& rkIn) - { - mValue = rkIn; - } - - bool operator==(const TTypedPropertyValue& rkOther) const - { - return (mValue == rkOther.mValue); - } - - bool operator==(const PropType& rkOther) const { return (mValue == rkOther); } - bool operator!=(const PropType& rkOther) const { return (mValue != rkOther); } - bool operator< (const PropType& rkOther) const { return (mValue < rkOther); } - bool operator<=(const PropType& rkOther) const { return (mValue <= rkOther); } - bool operator> (const PropType& rkOther) const { return (mValue > rkOther); } - bool operator>=(const PropType& rkOther) const { return (mValue >= rkOther); } -}; - -class CBoolValue : public TTypedPropertyValue -{ -public: - CBoolValue() { mValue = false; } - CBoolValue(bool Val) { mValue = Val; } - - TString ToString() const - { - return (!mValue ? "false" : "true"); - } - - void FromString(const TString& rkString) - { - mValue = (rkString == "true"); - } - - IPropertyValue* Clone() const - { - return new CBoolValue(mValue); - } -}; - -class CByteValue : public TTypedPropertyValue -{ -public: - CByteValue() { mValue = 0; } - CByteValue(s8 Val) { mValue = Val; } - - TString ToString() const - { - return TString::FromInt32(mValue, 0, 10); - } - - void FromString(const TString& rkString) - { - u32 base = (rkString.StartsWith("0x") ? 16 : 10); - mValue = (s8) rkString.ToInt32(base); - } - - IPropertyValue* Clone() const - { - return new CByteValue(mValue); - } -}; - -class CShortValue : public TTypedPropertyValue -{ -public: - CShortValue() { mValue = 0; } - CShortValue(s16 Val) { mValue = Val; } - - TString ToString() const - { - return TString::FromInt32((s32) mValue, 0, 10); - } - - void FromString(const TString& rkString) - { - u32 base = (rkString.StartsWith("0x") ? 16 : 10); - mValue = (s16) rkString.ToInt32(base); - } - - IPropertyValue* Clone() const - { - return new CShortValue(mValue); - } -}; - -class CLongValue : public TTypedPropertyValue -{ -public: - CLongValue() { mValue = 0; } - CLongValue(s32 Val) { mValue = Val; } - - TString ToString() const - { - return TString::FromInt32(mValue, 0, 10); - } - - void FromString(const TString& rkString) - { - u32 base = (rkString.StartsWith("0x") ? 16 : 10); - mValue = (s32) rkString.ToInt32(base); - } - - IPropertyValue* Clone() const - { - return new CLongValue(mValue); - } -}; - -class CHexLongValue : public TTypedPropertyValue -{ -public: - CHexLongValue() { mValue = 0; } - CHexLongValue(u32 Val) { mValue = Val; } - - TString ToString() const - { - return TString::HexString(mValue, 8); - } - - void FromString(const TString& rkString) - { - u32 Base = (rkString.StartsWith("0x") ? 16 : 10); - mValue = (s32) rkString.ToInt32(Base); - } - - IPropertyValue* Clone() const - { - return new CHexLongValue(mValue); - } -}; - -class CFloatValue : public TTypedPropertyValue -{ -public: - CFloatValue() { mValue = 0.0f; } - CFloatValue(float Val) { mValue = Val; } - - TString ToString() const - { - return TString::FromFloat(mValue); - } - - void FromString(const TString& rkString) - { - mValue = rkString.ToFloat(); - } - - IPropertyValue* Clone() const - { - return new CFloatValue(mValue); - } -}; - -class CStringValue : public TTypedPropertyValue -{ -public: - CStringValue() {} - CStringValue(const TString& rkVal) { mValue = rkVal; } - - // These functions are extremely complicated, but try to follow along - TString ToString() const - { - return mValue; - } - - void FromString(const TString& rkString) - { - mValue = rkString; - } - - IPropertyValue* Clone() const - { - return new CStringValue(mValue); - } -}; - -class CColorValue : public TTypedPropertyValue -{ -public: - CColorValue() {} - CColorValue(const CColor& rkVal) { mValue = rkVal; } - - TString ToString() const - { - TString out; - out += TString::FromFloat(mValue.R) + ", "; - out += TString::FromFloat(mValue.G) + ", "; - out += TString::FromFloat(mValue.B) + ", "; - out += TString::FromFloat(mValue.A); - return out; - } - - void FromString(const TString& rkString) - { - TStringList Components = rkString.Split(", "); - - if (Components.size() < 3 || Components.size() > 4) - { - Log::Error("CColorValue::FromString was passed a string with an invalid number of components"); - mValue = CColor::skTransparentBlack; - return; - } - - float *pPtr = &mValue.R; - mValue.A = 1.0f; - - for (auto it = Components.begin(); it != Components.end(); it++) - { - *pPtr = it->ToFloat(); - pPtr++; - } - } - - IPropertyValue* Clone() const - { - return new CColorValue(mValue); - } -}; - -class CVector3Value : public TTypedPropertyValue -{ -public: - CVector3Value() {} - CVector3Value(const CVector3f& rkVal) { mValue = rkVal; } - - TString ToString() const - { - TString out; - out += TString::FromFloat(mValue.X) + ", "; - out += TString::FromFloat(mValue.Y) + ", "; - out += TString::FromFloat(mValue.Z); - return out; - } - - void FromString(const TString& rkString) - { - TStringList Components = rkString.Split(", "); - - if (Components.size() != 3) - { - Log::Error("CVector3Value::FromString was passed a string with an invalid number of components"); - mValue = CVector3f::skInfinite; - return; - } - - float *pPtr = &mValue.X; - - for (auto it = Components.begin(); it != Components.end(); it++) - { - *pPtr = it->ToFloat(); - pPtr++; - } - } - - IPropertyValue* Clone() const - { - return new CVector3Value(mValue); - } -}; - -class CCharacterValue : public TTypedPropertyValue -{ -public: - CCharacterValue() {} - CCharacterValue(const CAnimationParameters& rkParams) { mValue = rkParams; } - - TString ToString() const { return ""; } - void FromString(const TString&) { } - - IPropertyValue* Clone() const - { - return new CCharacterValue(mValue); - } -}; - -class CMayaSplineValue : public TTypedPropertyValue> -{ -public: - CMayaSplineValue() {} - CMayaSplineValue(const std::vector& rkData) { mValue = rkData; } - - TString ToString() const { return "[MayaSpline]"; } - void FromString(const TString&) {} - - IPropertyValue* Clone() const - { - return new CMayaSplineValue(mValue); - } -}; - -class CSoundValue : public TTypedPropertyValue -{ -public: - CSoundValue() {} - CSoundValue(u32 SoundID) { mValue = SoundID; } - - TString ToString() const { return TString::FromInt32(mValue, 0, 10); } - void FromString(const TString& rkString) { mValue = rkString.ToInt32(10); } - - IPropertyValue* Clone() const - { - return new CSoundValue(mValue); - } -}; - -class CAssetValue : public TTypedPropertyValue -{ -public: - CAssetValue() {} - CAssetValue(const CAssetID& rkID) { mValue = rkID; } - - TString ToString() const { return ""; } - void FromString(const TString&) {} - - IPropertyValue* Clone() const - { - return new CAssetValue(mValue); - } -}; - -class CUnknownValue : public TTypedPropertyValue> -{ -public: - CUnknownValue(); - CUnknownValue(const std::vector& rkVec) { mValue = rkVec; } - - TString ToString() const { return ""; } - void FromString(const TString&) {} - - IPropertyValue* Clone() const - { - return new CUnknownValue(mValue); - } -}; - -#endif // IPROPERTYVALUE_H diff --git a/src/Core/Resource/Script/NGameList.cpp b/src/Core/Resource/Script/NGameList.cpp new file mode 100644 index 00000000..7d910ba2 --- /dev/null +++ b/src/Core/Resource/Script/NGameList.cpp @@ -0,0 +1,174 @@ +#include "NGameList.h" +#include + +namespace NGameList +{ + +/** Path for the templates directory */ +const TString gkTemplatesDir = "../templates/"; + +/** Path to the game list file */ +const TString gkGameListPath = gkTemplatesDir + "GameList.xml"; + +/** Info about a particular game serialized to the list */ +struct SGameInfo +{ + TString Name; + TString TemplatePath; + std::unique_ptr pTemplate; + bool IsValid; + + SGameInfo() + : IsValid(false) + {} + + void Serialize(IArchive& Arc) + { + Arc << SerialParameter("Name", Name) + << SerialParameter("GameTemplate", TemplatePath); + + if (Arc.IsReader()) + { + IsValid = true; + } + } +}; +SGameInfo gGameList[EGame::Max]; + +/** Whether the game list has been loaded */ +bool gLoadedGameList = false; + +/** Returns whether a game template has been loaded or not */ +bool IsGameTemplateLoaded(EGame Game) +{ + int GameIdx = (int) Game; + const SGameInfo& GameInfo = gGameList[GameIdx]; + return GameInfo.pTemplate != nullptr; +} + +/** Serialize the game list to/from a file */ +inline void SerializeGameList(IArchive& Arc) +{ + // Serialize the number of games with valid GameInfos. + u32 NumGames = 0; + + if (Arc.IsWriter()) + { + for (u32 GameIdx = 0; GameIdx < (u32) EGame::Max; GameIdx++) + { + if ( gGameList[GameIdx].IsValid ) + NumGames++; + } + } + + Arc.SerializeArraySize(NumGames); + + // Serialize the actual game info + for (u32 GameIdx = 0; GameIdx < (u32) EGame::Max; GameIdx++) + { + // Skip games that don't have game templates when writing. + if (Arc.IsWriter() && !gGameList[GameIdx].IsValid) + continue; + + ENSURE( Arc.ParamBegin("Game", 0) ); + + // Determine which game is being serialized + EGame Game = (EGame) GameIdx; + Arc << SerialParameter("ID", Game, SH_Attribute); + ASSERT( Game != EGame::Invalid ); + + gGameList[ (u32) Game ].Serialize(Arc); + Arc.ParamEnd(); + } +} + +/** Load the game list into memory */ +void LoadGameList() +{ + ASSERT(!gLoadedGameList); + Log::Write("Loading game list"); + + CXMLReader Reader(gkGameListPath); + ASSERT(Reader.IsValid()); + + SerializeGameList(Reader); + gLoadedGameList = true; +} + +/** Save the game list back out to a file */ +void SaveGameList() +{ + ASSERT(gLoadedGameList); + Log::Write("Saving game list"); + + CXMLWriter Writer(gkGameListPath, "GameList"); + ASSERT(Writer.IsValid()); + + SerializeGameList(Writer); +} + +/** Load all game templates into memory */ +void LoadAllGameTemplates() +{ + for (int GameIdx = 0; GameIdx < (int) EGame::Max; GameIdx++) + GetGameTemplate( (EGame) GameIdx ); +} + +/** Resave templates. If ForceAll is false, only saves templates that have been modified. */ +void SaveTemplates(bool ForceAll /*= false*/) +{ + for (int GameIdx = 0; GameIdx < (int) EGame::Max; GameIdx++) + { + EGame Game = (EGame) GameIdx; + if ( IsGameTemplateLoaded(Game) ) + { + CGameTemplate* pGameTemplate = GetGameTemplate(Game); + pGameTemplate->SaveGameTemplates(ForceAll); + } + } +} + +/** Get the game template for a given game */ +CGameTemplate* GetGameTemplate(EGame Game) +{ + // Game must be valid! + if (Game == EGame::Invalid) + { + return nullptr; + } + + ASSERT(Game >= (EGame) 0 && Game < EGame::Max); + + // Initialize the game list, if it hasn't been loaded yet. + if (!gLoadedGameList) + { + LoadGameList(); + } + + int GameIdx = (int) Game; + SGameInfo& GameInfo = gGameList[GameIdx]; + + // Load the game template, if it hasn't been loaded yet. + if (!GameInfo.pTemplate && !GameInfo.Name.IsEmpty()) + { + TString GamePath = gkTemplatesDir + GameInfo.TemplatePath; + GameInfo.pTemplate = std::make_unique(); + GameInfo.pTemplate->Load(GamePath); + } + + return GameInfo.pTemplate.get(); +} + +/** Clean up game list resources. This needs to be called on app shutdown to ensure things are cleaned up in the right order. */ +void Shutdown() +{ + for (int GameIdx = 0; GameIdx < (int) EGame::Max; GameIdx++) + { + gGameList[GameIdx].Name = ""; + gGameList[GameIdx].TemplatePath = ""; + gGameList[GameIdx].pTemplate = nullptr; + } + gLoadedGameList = false; +} + +} diff --git a/src/Core/Resource/Script/NGameList.h b/src/Core/Resource/Script/NGameList.h new file mode 100644 index 00000000..cb217dab --- /dev/null +++ b/src/Core/Resource/Script/NGameList.h @@ -0,0 +1,32 @@ +#ifndef NGAMELIST_H +#define NGAMELIST_H + +#include "CGameTemplate.h" + +namespace NGameList +{ + +/** Load all game templates into memory + * This normally isn't necessary to call, as game templates will be lazy-loaded the + * first time they are requested. + */ +void LoadAllGameTemplates(); + +/** Load the game list into memory. This is normally not necessary to call. */ +void LoadGameList(); + +/** Save the game list back out to a file */ +void SaveGameList(); + +/** Resave templates. If ForceAll is false, only saves templates that have been modified. */ +void SaveTemplates(bool ForceAll = false); + +/** Get the game template for a given game */ +CGameTemplate* GetGameTemplate(EGame Game); + +/** Clean up game list resources. This needs to be called on app shutdown to ensure things are cleaned up in the right order. */ +void Shutdown(); + +} + +#endif // NGAMELIST_H diff --git a/src/Core/Resource/Script/NPropertyMap.cpp b/src/Core/Resource/Script/NPropertyMap.cpp new file mode 100644 index 00000000..5c52b12e --- /dev/null +++ b/src/Core/Resource/Script/NPropertyMap.cpp @@ -0,0 +1,567 @@ +#include "NPropertyMap.h" +#include "NGameList.h" +#include +#include + +/** NPropertyMap: Namespace for property ID -> name mappings */ +namespace NPropertyMap +{ + +/** Path to the property map file */ +const char* gpkLegacyMapPath = "../templates/PropertyMapLegacy.xml"; +const char* gpkMapPath = "../templates/PropertyMap.xml"; + +/** Whether to do name lookups from the legacy map */ +const bool gkUseLegacyMapForNameLookups = false; + +/** Whether to update names in the legacy map */ +const bool gkUseLegacyMapForUpdates = false; + +/** Whether the map is dirty (has unsaved changes */ +bool gMapIsDirty = false; + +/** Whether the map has been loaded */ +bool gMapIsLoaded = false; + +/** Mapping of typename hashes back to the original string */ +std::unordered_map gHashToTypeName; + +/** Register a hash -> name mapping */ +inline void RegisterTypeName(u32 TypeHash, TString TypeName) +{ + ASSERT( !TypeName.IsEmpty() ); + ASSERT( TypeName != "Unknown" ); + gHashToTypeName.emplace( std::make_pair(std::move(TypeHash), std::move(TypeName)) ); +} + +/** Key structure for name map lookups */ +struct SNameKey +{ + union + { + struct { + u32 TypeHash; + u32 ID; + }; + struct { + u64 Key; + }; + }; + + SNameKey() + : TypeHash(-1), ID(-1) + {} + + SNameKey(u32 InTypeHash, u32 InID) + : TypeHash(InTypeHash), ID(InID) + {} + + void Serialize(IArchive& Arc) + { + TString TypeName; + + if (Arc.IsWriter()) + { + TypeName = gHashToTypeName[TypeHash]; + ASSERT(!TypeName.IsEmpty()); + } + + Arc << SerialParameter("ID", ID, SH_Attribute | SH_HexDisplay) + << SerialParameter("Type", TypeName, SH_Attribute); + + if (Arc.IsReader()) + { + TypeHash = TypeName.Hash32(); + RegisterTypeName(TypeHash, TypeName); + } + } + + friend bool operator==(const SNameKey& kLHS, const SNameKey& kRHS) + { + return kLHS.Key == kRHS.Key; + } + + friend bool operator<(const SNameKey& kLHS, const SNameKey& kRHS) + { + return kLHS.Key < kRHS.Key; + } +}; + +/** Hasher for name keys for use in std::unordered_map */ +struct KeyHash +{ + inline size_t operator()(const SNameKey& kKey) const + { + return std::hash()(kKey.Key); + } +}; + +/** Value structure for name map lookups */ +struct SNameValue +{ + /** Name of the property */ + TString Name; + + /** Whether this name is valid */ + bool IsValid; + + /** List of all properties using this ID */ + std::list PropertyList; + + void Serialize(IArchive& Arc) + { + Arc << SerialParameter("Name", Name, SH_Attribute); + } + + friend bool operator==(const SNameValue& kLHS, const SNameValue& kRHS) + { + return kLHS.Name == kRHS.Name; + } +}; + +/** Mapping of property IDs to names. In the key, the upper 32 bits + * are the type, and the lower 32 bits are the ID. + */ +std::map gNameMap; + +/** Legacy map that only includes the ID in the key */ +std::map gLegacyNameMap; + +/** Internal: Creates a name key for the given property. */ +SNameKey CreateKey(IProperty* pProperty) +{ + SNameKey Key; + Key.ID = pProperty->ID(); + Key.TypeHash = CCRC32::StaticHashString( pProperty->HashableTypeName() ); + return Key; +} + +SNameKey CreateKey(u32 ID, const char* pkTypeName) +{ + return SNameKey( CCRC32::StaticHashString(pkTypeName), ID ); +} + +/** Loads property names into memory */ +void LoadMap() +{ + ASSERT( !gMapIsLoaded ); + Log::Write("Loading property map"); + + if ( gkUseLegacyMapForNameLookups ) + { + CXMLReader Reader(gpkLegacyMapPath); + ASSERT(Reader.IsValid()); + Reader << SerialParameter("PropertyMap", gLegacyNameMap, SH_HexDisplay); + } + else + { + CXMLReader Reader(gpkMapPath); + ASSERT(Reader.IsValid()); + Reader << SerialParameter("PropertyMap", gNameMap, SH_HexDisplay); + + // Iterate over the map and set up the valid flags + for (auto Iter = gNameMap.begin(); Iter != gNameMap.end(); Iter++) + { + const SNameKey& kKey = Iter->first; + SNameValue& Value = Iter->second; + Value.IsValid = (CalculatePropertyID(*Value.Name, *gHashToTypeName[kKey.TypeHash]) == kKey.ID); + } + } + + gMapIsLoaded = true; +} + +inline void ConditionalLoadMap() +{ + if( !gMapIsLoaded ) + { + LoadMap(); + } +} + +/** Saves property names back out to the template file */ +void SaveMap(bool Force /*= false*/) +{ + if( !gMapIsLoaded ) + { + if (Force) + { + LoadMap(); + } + else return; + } + + Log::Write("Saving property map"); + + if( gMapIsDirty || Force ) + { + if( gkUseLegacyMapForUpdates ) + { + CXMLWriter Writer(gpkLegacyMapPath, "PropertyMap"); + ASSERT(Writer.IsValid()); + Writer << SerialParameter("PropertyMap", gLegacyNameMap, SH_HexDisplay); + } + else + { + // Make sure all game templates are loaded and clear out ID-type pairs that aren't used + // This mostly occurs when type names are changed - unneeded pairings with the old type can be left in the map + NGameList::LoadAllGameTemplates(); + + for (auto Iter = gNameMap.begin(); Iter != gNameMap.end(); Iter++) + { + SNameValue& Value = Iter->second; + + if (Value.PropertyList.empty()) + { + Iter = gNameMap.erase(Iter); + } + } + + // Perform the actual save + CXMLWriter Writer(gpkMapPath, "PropertyMap"); + ASSERT(Writer.IsValid()); + Writer << SerialParameter("PropertyMap", gNameMap, SH_HexDisplay); + } + gMapIsDirty = false; + } +} + +/** Given a property ID and type, returns the name of the property */ +const char* GetPropertyName(IProperty* pInProperty) +{ + ConditionalLoadMap(); + + if (gkUseLegacyMapForNameLookups) + { + auto MapFind = gLegacyNameMap.find( pInProperty->ID() ); + return (MapFind == gLegacyNameMap.end() ? "Unknown" : *MapFind->second); + } + else + { + SNameKey Key = CreateKey(pInProperty); + auto MapFind = gNameMap.find(Key); + return (MapFind == gNameMap.end() ? "Unknown" : *MapFind->second.Name); + } +} + +/** Given a property name and type, returns the name of the property. + * This requires you to provide the exact type string used in the hash. + */ +const char* GetPropertyName(u32 ID, const char* pkTypeName) +{ + // Does not support legacy map + ConditionalLoadMap(); + + SNameKey Key = CreateKey(ID, pkTypeName); + auto MapFind = gNameMap.find(Key); + return MapFind == gNameMap.end() ? "Unknown" : *MapFind->second.Name; +} + +/** Calculate the property ID of a given name/type. */ +u32 CalculatePropertyID(const char* pkName, const char* pkTypeName) +{ + CCRC32 CRC; + CRC.Hash(pkName); + CRC.Hash(pkTypeName); + return CRC.Digest(); +} + +/** Returns whether the specified ID is in the map. */ +bool IsValidPropertyID(u32 ID, const char* pkTypeName, bool* pOutIsValid /*= nullptr*/) +{ + SNameKey Key = CreateKey(ID, pkTypeName); + auto MapFind = gNameMap.find(Key); + + if (MapFind != gNameMap.end()) + { + if (pOutIsValid != nullptr) + { + SNameValue& Value = MapFind->second; + *pOutIsValid = Value.IsValid; + } + return true; + } + else return false; +} + +/** Retrieves a list of all properties that match the requested property ID. */ +void RetrievePropertiesWithID(u32 ID, const char* pkTypeName, std::list& OutList) +{ + SNameKey Key = CreateKey(ID, pkTypeName); + auto MapFind = gNameMap.find(Key); + + if (MapFind != gNameMap.end()) + { + SNameValue& Value = MapFind->second; + OutList = Value.PropertyList; + } +} + +/** Retrieves a list of all XML templates that contain a given property ID. */ +void RetrieveXMLsWithProperty(u32 ID, const char* pkTypeName, std::set& OutSet) +{ + SNameKey Key = CreateKey(ID, pkTypeName); + auto MapFind = gNameMap.find(Key); + + if (MapFind != gNameMap.end()) + { + SNameValue& NameValue = MapFind->second; + + for (auto ListIter = NameValue.PropertyList.begin(); ListIter != NameValue.PropertyList.end(); ListIter++) + { + IProperty* pProperty = *ListIter; + OutSet.insert( pProperty->GetTemplateFileName() ); + } + } +} + +/** Updates the name of a given property in the map */ +void SetPropertyName(u32 ID, const char* pkTypeName, const char* pkNewName) +{ + if( gkUseLegacyMapForUpdates ) + { + auto Iter = gLegacyNameMap.find(ID); + + if (Iter == gLegacyNameMap.end() || Iter->second != pkNewName) + { + Iter->second = pkNewName; + gMapIsDirty = true; + } + } + else + { + SNameKey Key = CreateKey(ID, pkTypeName); + auto MapFind = gNameMap.find(Key); + + if (MapFind != gNameMap.end()) + { + SNameValue& Value = MapFind->second; + + if (Value.Name != pkNewName) + { + TString OldName = Value.Name; + Value.Name = pkNewName; + gMapIsDirty = true; + + // Update all properties with this ID with the new name + for (auto Iter = Value.PropertyList.begin(); Iter != Value.PropertyList.end(); Iter++) + { + // If the property overrides the name, then don't change it. + IProperty* pIterProperty = *Iter; + + if (pIterProperty->Name() == OldName) + { + pIterProperty->SetName(Value.Name); + } + } + } + } + } +} + +/** Change a type name of a property. */ +void ChangeTypeName(IProperty* pProperty, const char* pkOldTypeName, const char* pkNewTypeName) +{ + u32 OldTypeHash = CCRC32::StaticHashString(pkOldTypeName); + u32 NewTypeHash = CCRC32::StaticHashString(pkNewTypeName); + + if (OldTypeHash == NewTypeHash) + { + return; + } + + // Start off with a ist of all properties in the same inheritance chain as this one. + std::list Properties; + IProperty* pArchetype = pProperty->RootArchetype(); + pArchetype->GatherAllSubInstances(Properties, true); + + for (auto Iter = Properties.begin(); Iter != Properties.end(); Iter++) + { + pProperty = *Iter; + + if (pProperty->UsesNameMap()) + { + SNameKey OldKey(OldTypeHash, pProperty->ID()); + SNameKey NewKey(NewTypeHash, pProperty->ID()); + + // Disassociate this property from the old mapping. + bool WasRegistered = false; + auto Find = gNameMap.find(OldKey); + + if (Find != gNameMap.end()) + { + SNameValue& Value = Find->second; + WasRegistered = NBasics::ListRemoveOne(Value.PropertyList, pProperty); + } + + // Create a key for the new property and add it to the list. + Find = gNameMap.find(NewKey); + + if (Find == gNameMap.end()) + { + SNameValue Value; + Value.Name = pProperty->Name(); + Value.IsValid = ( CalculatePropertyID(*Value.Name, pkNewTypeName) == pProperty->ID() ); + gNameMap[NewKey] = Value; + Find = gNameMap.find(NewKey); + } + ASSERT(Find != gNameMap.end()); + + if (WasRegistered) + { + Find->second.PropertyList.push_back(pProperty); + } + + gMapIsDirty = true; + } + } + + RegisterTypeName(NewTypeHash, pkNewTypeName); +} + +/** Change a type name. */ +void ChangeTypeNameGlobally(const char* pkOldTypeName, const char* pkNewTypeName) +{ + u32 OldTypeHash = CCRC32::StaticHashString(pkOldTypeName); + u32 NewTypeHash = CCRC32::StaticHashString(pkNewTypeName); + + if (OldTypeHash == NewTypeHash) + { + return; + } + + // The process here is basically to find all properties with a matching typename + // hash and update the hashes to the new type. Not 100% sure if this is the best + // way to go about doing it. From what I understand, insert() does not invalidate + // iterators, and extract() only invalidates the iterator being extracted. So this + // implementation should work correctly. + for (auto MapIter = gNameMap.begin(); MapIter != gNameMap.end(); MapIter++) + { + if (MapIter->first.TypeHash == OldTypeHash) + { + auto PrevIter = MapIter; + PrevIter--; + + auto MapNode = gNameMap.extract(MapIter); + MapIter = PrevIter; + + SNameKey& Key = MapNode.key(); + Key.TypeHash = NewTypeHash; + gNameMap.insert( std::move(MapNode) ); + gMapIsDirty = true; + } + } + + RegisterTypeName(NewTypeHash, pkNewTypeName); + gHashToTypeName[NewTypeHash] = pkNewTypeName; +} + +/** Registers a property in the name map. Should be called on all properties that use the map */ +void RegisterProperty(IProperty* pProperty) +{ + ConditionalLoadMap(); + + // Sanity checks to make sure we don't accidentally add non-hash property IDs to the map. + ASSERT( pProperty->UsesNameMap() ); + ASSERT( pProperty->ID() > 0xFF && pProperty->ID() != 0xFFFFFFFF ); + + // Just need to register the property in the list. + SNameKey Key = CreateKey(pProperty); + auto MapFind = gNameMap.find(Key); + + if( gkUseLegacyMapForNameLookups ) + { + // If we are using the legacy map, gNameMap may be empty. We need to retrieve the name + // from the legacy map, and create an entry in gNameMap with it. + + //@todo this prob isn't the most efficient way to do this + if (MapFind == gNameMap.end()) + { + auto LegacyMapFind = gLegacyNameMap.find( pProperty->ID() ); + ASSERT( LegacyMapFind != gLegacyNameMap.end() ); + + SNameValue Value; + Value.Name = LegacyMapFind->second; + Value.IsValid = ( CalculatePropertyID(*Value.Name, pProperty->HashableTypeName()) == pProperty->ID() ); + pProperty->SetName(Value.Name); + + gNameMap[Key] = Value; + MapFind = gNameMap.find(Key); + ASSERT(MapFind != gNameMap.end()); + + RegisterTypeName(Key.TypeHash, pProperty->HashableTypeName()); + } + } + else + { + ASSERT(MapFind != gNameMap.end()); + pProperty->SetName( MapFind->second.Name ); + } + + MapFind->second.PropertyList.push_back(pProperty); + + // Update the property's Name field to match the mapped name. + pProperty->SetName( MapFind->second.Name ); +} + +/** Unregisters a property from the name map. Should be called on all properties that use the map on destruction. */ +void UnregisterProperty(IProperty* pProperty) +{ + SNameKey Key = CreateKey(pProperty); + auto Iter = gNameMap.find(Key); + + if (Iter != gNameMap.end()) + { + // Found the value, now remove the element from the list. + SNameValue& Value = Iter->second; + NBasics::ListRemoveOne(Value.PropertyList, pProperty); + } +} + +/** Class for iterating through the map */ +class CIteratorImpl +{ +public: + std::map::const_iterator mIter; +}; + +CIterator::CIterator() +{ + mpImpl = new CIteratorImpl; + mpImpl->mIter = gNameMap.begin(); +} + +CIterator::~CIterator() +{ + delete mpImpl; +} + +u32 CIterator::ID() const +{ + return mpImpl->mIter->first.ID; +} + +const char* CIterator::Name() const +{ + return *mpImpl->mIter->second.Name; +} + +const char* CIterator::TypeName() const +{ + u32 TypeHash = mpImpl->mIter->first.TypeHash; + auto Find = gHashToTypeName.find(TypeHash); + ASSERT(Find != gHashToTypeName.end()); + return *Find->second; +} + +CIterator::operator bool() const +{ + return mpImpl->mIter != gNameMap.end(); +} + +void CIterator::operator++() +{ + mpImpl->mIter++; +} + +} diff --git a/src/Core/Resource/Script/NPropertyMap.h b/src/Core/Resource/Script/NPropertyMap.h new file mode 100644 index 00000000..0e6171fc --- /dev/null +++ b/src/Core/Resource/Script/NPropertyMap.h @@ -0,0 +1,75 @@ +#ifndef NPROPERTYMAP_H +#define NPROPERTYMAP_H + +#include +#include "Core/Resource/Script/Property/IProperty.h" + +/** NPropertyMap: Namespace for property ID -> name mappings */ +namespace NPropertyMap +{ + +/** Loads property names into memory */ +void LoadMap(); + +/** Saves property names back out to the template file */ +void SaveMap(bool Force = false); + +/** Returns the name of the property */ +const char* GetPropertyName(IProperty* pProperty); + +/** Given a property name and type, returns the name of the property. + * This requires you to provide the exact type string used in the hash. + */ +const char* GetPropertyName(u32 ID, const char* pkTypeName); + +/** Calculate the property ID of a given name/type. */ +u32 CalculatePropertyID(const char* pkName, const char* pkTypeName); + +/** + * Returns whether the specified name is in the map. + * If the ID is valid and pOutIsValid is non-null, it will return whether the current name is correct. + */ +bool IsValidPropertyID(u32 ID, const char* pkTypeName, bool* pOutIsValid = nullptr); + +/** Retrieves a list of all properties that match the requested property ID. */ +void RetrievePropertiesWithID(u32 ID, const char* pkTypeName, std::list& OutList); + +/** Retrieves a list of all XML templates that contain a given property ID. */ +void RetrieveXMLsWithProperty(u32 ID, const char* pkTypeName, std::set& OutSet); + +/** Updates the name of a given property in the map */ +void SetPropertyName(u32 ID, const char* pkTypeName, const char* pkNewName); + +/** Change a type name of a property. */ +void ChangeTypeName(IProperty* pProperty, const char* pkOldTypeName, const char* pkNewTypeName); + +/** Change a type name. */ +void ChangeTypeNameGlobally(const char* pkOldTypeName, const char* pkNewTypeName); + +/** Registers a property in the name map. Should be called on all properties that use the map */ +void RegisterProperty(IProperty* pProperty); + +/** Unregisters a property from the name map. Should be called on all properties that use the map on destruction. */ +void UnregisterProperty(IProperty* pProperty); + +/** Class that allows for iteration through the name map */ +class CIterator +{ + /** Private implementation */ + class CIteratorImpl* mpImpl; + +public: + CIterator(); + ~CIterator(); + + u32 ID() const; + const char* Name() const; + const char* TypeName() const; + + operator bool() const; + void operator ++(); +}; + +} + +#endif // NPROPERTYMAP_H diff --git a/src/Core/Resource/Script/Property/CAnimationProperty.h b/src/Core/Resource/Script/Property/CAnimationProperty.h new file mode 100644 index 00000000..0014b522 --- /dev/null +++ b/src/Core/Resource/Script/Property/CAnimationProperty.h @@ -0,0 +1,27 @@ +#ifndef CANIMATIONPROPERTY_H +#define CANIMATIONPROPERTY_H + +#include "IProperty.h" + +class CAnimationProperty : public TSerializeableTypedProperty< u32, EPropertyType::Animation > +{ + friend class IProperty; + +protected: + CAnimationProperty(EGame Game) + : TSerializeableTypedProperty(Game) + {} + +public: + virtual void SerializeValue(void* pData, IArchive& rArc) const + { + rArc.SerializePrimitive( (u32&) ValueRef(pData), SH_HexDisplay ); + } + + virtual TString ValueAsString(void* pData) const + { + return TString::HexString( (u32) Value(pData) ); + } +}; + +#endif // CANIMATIONPROPERTY_H diff --git a/src/Core/Resource/Script/Property/CAnimationSetProperty.h b/src/Core/Resource/Script/Property/CAnimationSetProperty.h new file mode 100644 index 00000000..302c3b88 --- /dev/null +++ b/src/Core/Resource/Script/Property/CAnimationSetProperty.h @@ -0,0 +1,34 @@ +#ifndef CANIMATIONSETPROPERTY_H +#define CANIMATIONSETPROPERTY_H + +#include "IProperty.h" + +class CAnimationSetProperty : public TSerializeableTypedProperty< CAnimationParameters, EPropertyType::AnimationSet > +{ + friend class IProperty; + +protected: + CAnimationSetProperty(EGame Game) + : TSerializeableTypedProperty(Game) + { + mDefaultValue.SetGame(Game); + } + +public: + virtual void SerializeValue(void* pData, IArchive& Arc) const + { + Value(pData).Serialize(Arc); + } + + virtual const char* HashableTypeName() const + { + return (Game() <= EGame::Echoes ? "AnimationSet" : "CharacterAnimationSet"); + } + + virtual CAnimationParameters GetSerializationDefaultValue() + { + return CAnimationParameters( Game() ); + } +}; + +#endif // CANIMATIONSETPROPERTY_H diff --git a/src/Core/Resource/Script/Property/CArrayProperty.h b/src/Core/Resource/Script/Property/CArrayProperty.h new file mode 100644 index 00000000..6a6da8e8 --- /dev/null +++ b/src/Core/Resource/Script/Property/CArrayProperty.h @@ -0,0 +1,204 @@ +#ifndef CARRAYPROPERTY_H +#define CARRAYPROPERTY_H + +#include "IProperty.h" + +struct SScriptArray +{ + int Count; + std::vector Array; + + SScriptArray() + : Count(0) + {} + + inline bool operator==(const SScriptArray& rkOther) const + { + return( Count == rkOther.Count && Array == rkOther.Array ); + } +}; + +/** You probably shouldn't use this on intrinsic classes; script only */ +/** @todo proper support of default values for arrays (this would be used for prefabs) */ +class CArrayProperty : public TTypedProperty +{ + friend class IProperty; + + /** This class inherits from TTypedPropertyNew in order to expose the array + * count value (the first member of SScriptArray). Outside users can edit this + * value and we respond by updating the allocated space, handling item destruction + * and construction, etc. + */ + IProperty* mpItemArchetype; + + /** Internal functions */ + SScriptArray& _GetInternalArray(void* pData) const + { + return *( (SScriptArray*) RawValuePtr(pData) ); + } + + u32 _InternalArrayCount(void* pPropertyData) const + { + std::vector& rArray = _GetInternalArray(pPropertyData).Array; + return rArray.size() / ItemSize(); + } + +protected: + CArrayProperty(EGame Game) + : TTypedProperty(Game) + , mpItemArchetype(nullptr) + {} + +public: + virtual u32 DataSize() const + { + return sizeof(SScriptArray); + } + + virtual u32 DataAlignment() const + { + return alignof(SScriptArray); + } + + virtual void Construct(void* pData) const + { + new(ValuePtr(pData)) SScriptArray; + } + + virtual void Destruct(void* pData) const + { + RevertToDefault(pData); + TTypedProperty::Destruct(pData); + } + + virtual bool MatchesDefault(void* pData) const + { + return ArrayCount(pData) == 0; + } + + virtual void RevertToDefault(void* pData) const + { + Resize(pData, 0); + ValueRef(pData) = 0; + } + + virtual bool CanHaveDefault() const + { + return true; + } + + virtual bool IsPointerType() const + { + return true; + } + + virtual void* GetChildDataPointer(void* pPropertyData) const + { + return _GetInternalArray(pPropertyData).Array.data(); + } + + virtual void PropertyValueChanged(void* pPropertyData) + { + SScriptArray& rArray = _GetInternalArray(pPropertyData); + rArray.Count = Math::Max(rArray.Count, 0); + Resize(pPropertyData, rArray.Count); + } + + virtual void Serialize(IArchive& rArc) + { + TTypedProperty::Serialize(rArc); + rArc << SerialParameter("ItemArchetype", mpItemArchetype); + } + + virtual void SerializeValue(void* pData, IArchive& Arc) const + { + u32 Count = ArrayCount(pData); + Arc.SerializeArraySize(Count); + + if (Arc.IsReader()) + Resize(pData, Count); + + for (u32 ItemIdx = 0; ItemIdx < Count; ItemIdx++) + { + if (Arc.ParamBegin("ArrayElement", 0)) + { + void* pItemData = ItemPointer(pData, ItemIdx); + mpItemArchetype->SerializeValue(pItemData, Arc); + Arc.ParamEnd(); + } + } + } + + virtual void InitFromArchetype(IProperty* pOther) + { + TTypedProperty::InitFromArchetype(pOther); + CArrayProperty* pOtherArray = static_cast(pOther); + mpItemArchetype = IProperty::CreateCopy(pOtherArray->mpItemArchetype); + } + + virtual void PostInitialize() + { + TTypedProperty::PostInitialize(); + mpItemArchetype->Initialize(this, mpScriptTemplate, 0); + } + + u32 ArrayCount(void* pPropertyData) const + { + return ValueRef(pPropertyData); + } + + void Resize(void* pPropertyData, u32 NewCount) const + { + u32 OldCount = _InternalArrayCount(pPropertyData); + + if (OldCount != NewCount) + { + SScriptArray& rArray = _GetInternalArray(pPropertyData); + + // Handle destruction of old elements + if (OldCount > NewCount) + { + for (u32 ItemIdx = NewCount; ItemIdx < OldCount; ItemIdx++) + { + void* pItemPtr = ItemPointer(pPropertyData, ItemIdx); + mpItemArchetype->Destruct(pItemPtr); + } + } + + u32 NewSize = NewCount * ItemSize(); + rArray.Array.resize(NewSize); + rArray.Count = NewCount; + + // Handle construction of new elements + if (NewCount > OldCount) + { + for (u32 ItemIdx = OldCount; ItemIdx < NewCount; ItemIdx++) + { + void* pItemPtr = ItemPointer(pPropertyData, ItemIdx); + mpItemArchetype->Construct(pItemPtr); + } + } + } + } + + void* ItemPointer(void* pPropertyData, u32 ItemIndex) const + { + ASSERT(_InternalArrayCount(pPropertyData) > ItemIndex); + std::vector& rArray = _GetInternalArray(pPropertyData).Array; + u32 MyItemSize = ItemSize(); + ASSERT(rArray.size() >= (MyItemSize * (ItemIndex+1))); + return rArray.data() + (MyItemSize * ItemIndex); + } + + u32 ItemSize() const + { + u32 ItemAlign = mpItemArchetype->DataAlignment(); + u32 ItemSize = ALIGN(mpItemArchetype->DataSize(), ItemAlign); + return ItemSize; + } + + /** Accessors */ + IProperty* ItemArchetype() const { return mpItemArchetype; } +}; + +#endif // CARRAYPROPERTY_H diff --git a/src/Core/Resource/Script/Property/CAssetProperty.h b/src/Core/Resource/Script/Property/CAssetProperty.h new file mode 100644 index 00000000..7deb5070 --- /dev/null +++ b/src/Core/Resource/Script/Property/CAssetProperty.h @@ -0,0 +1,67 @@ +#ifndef CASSETPROPERTY_H +#define CASSETPROPERTY_H + +#include "IProperty.h" +#include "Core/Resource/CResTypeFilter.h" + +class CAssetProperty : public TSerializeableTypedProperty +{ + friend class IProperty; + + CResTypeFilter mTypeFilter; + +protected: + CAssetProperty::CAssetProperty(EGame Game) + : TSerializeableTypedProperty(Game) + { + mDefaultValue = CAssetID::InvalidID( mGame ); + } + +public: + virtual void Serialize(IArchive& rArc) + { + TSerializeableTypedProperty::Serialize(rArc); + CAssetProperty* pArchetype = static_cast(mpArchetype); + rArc << SerialParameter("TypeFilter", mTypeFilter, pArchetype ? SH_Optional : 0, pArchetype ? pArchetype->mTypeFilter : CResTypeFilter()); + } + + virtual bool ShouldSerialize() const + { + CAssetProperty* pArchetype = static_cast(mpArchetype); + return TSerializeableTypedProperty::ShouldSerialize() || + mTypeFilter != pArchetype->mTypeFilter; + } + + virtual void InitFromArchetype(IProperty* pOther) + { + TTypedProperty::InitFromArchetype(pOther); + mTypeFilter = static_cast(pOther)->mTypeFilter; + } + + virtual void SerializeValue(void* pData, IArchive& Arc) const + { + Arc.SerializePrimitive( ValueRef(pData), 0 ); + } + + virtual TString ValueAsString(void* pData) const + { + return Value(pData).ToString(); + } + + virtual CAssetID GetSerializationDefaultValue() + { + return CAssetID::InvalidID(Game()); + } + + void SetTypeFilter(const TStringList& rkExtensions) + { + mTypeFilter.SetAcceptedTypes(Game(), rkExtensions); + } + + const CResTypeFilter& GetTypeFilter() const + { + return mTypeFilter; + } +}; + +#endif // CASSETPROPERTY_H diff --git a/src/Core/Resource/Script/Property/CBoolProperty.h b/src/Core/Resource/Script/Property/CBoolProperty.h new file mode 100644 index 00000000..994807cb --- /dev/null +++ b/src/Core/Resource/Script/Property/CBoolProperty.h @@ -0,0 +1,27 @@ +#ifndef CBOOLPROPERTY_H +#define CBOOLPROPERTY_H + +#include "IProperty.h" + +class CBoolProperty : public TSerializeableTypedProperty< bool, EPropertyType::Bool > +{ + friend class IProperty; + +protected: + CBoolProperty(EGame Game) + : TSerializeableTypedProperty(Game) + {} + +public: + virtual void SerializeValue(void* pData, IArchive& Arc) const + { + Arc.SerializePrimitive( ValueRef(pData), 0 ); + } + + virtual TString ValueAsString(void* pData) + { + return Value(pData) ? "true" : "false"; + } +}; + +#endif // CBOOLPROPERTY_H diff --git a/src/Core/Resource/Script/Property/CByteProperty.h b/src/Core/Resource/Script/Property/CByteProperty.h new file mode 100644 index 00000000..218fcef1 --- /dev/null +++ b/src/Core/Resource/Script/Property/CByteProperty.h @@ -0,0 +1,27 @@ +#ifndef CBYTEPROPERTY_H +#define CBYTEPROPERTY_H + +#include "IProperty.h" + +class CByteProperty : public TNumericalProperty< s8, EPropertyType::Byte > +{ + friend class IProperty; + +protected: + CByteProperty(EGame Game) + : TNumericalProperty(Game) + {} + +public: + virtual void SerializeValue(void* pData, IArchive& Arc) const + { + Arc.SerializePrimitive( (u8&) ValueRef(pData), 0 ); + } + + virtual TString ValueAsString(void* pData) const + { + return TString::FromInt32( (s32) Value(pData), 0, 10 ); + } +}; + +#endif // CBYTEPROPERTY_H diff --git a/src/Core/Resource/Script/Property/CColorProperty.h b/src/Core/Resource/Script/Property/CColorProperty.h new file mode 100644 index 00000000..98ffdc34 --- /dev/null +++ b/src/Core/Resource/Script/Property/CColorProperty.h @@ -0,0 +1,32 @@ +#ifndef CCOLORPROPERTY_H +#define CCOLORPROPERTY_H + +#include "IProperty.h" +#include "CFloatProperty.h" + +class CColorProperty : public TSerializeableTypedProperty< CColor, EPropertyType::Color > +{ + friend class IProperty; + +protected: + CColorProperty(EGame Game) + : TSerializeableTypedProperty(Game) + {} + +public: + virtual void PostInitialize() + { + CreateIntrinsic(EPropertyType::Float, this, mOffset + 0, "R"); + CreateIntrinsic(EPropertyType::Float, this, mOffset + 4, "G"); + CreateIntrinsic(EPropertyType::Float, this, mOffset + 8, "B"); + CreateIntrinsic(EPropertyType::Float, this, mOffset + 12, "A"); + TPropCast( mChildren.back() )->SetDefaultValue(1.0f); + } + + virtual void SerializeValue(void* pData, IArchive& Arc) const + { + Value(pData).Serialize(Arc); + } +}; + +#endif // CVECTORPROPERTY_H diff --git a/src/Core/Resource/Script/Property/CEnumProperty.h b/src/Core/Resource/Script/Property/CEnumProperty.h new file mode 100644 index 00000000..aaaa6e31 --- /dev/null +++ b/src/Core/Resource/Script/Property/CEnumProperty.h @@ -0,0 +1,204 @@ +#ifndef CENUMPROPERTY_H +#define CENUMPROPERTY_H + +#include "IProperty.h" + +/** There are two types of enum properties in the game data: enum and choice. + * + * In the game, the difference is that choice properties are index-based, while + * enum properties are stored as a hash of the name of the enum value. + * + * In PWE, however, they are both implemented the same way under the hood. + */ +template +class TEnumPropertyBase : public TSerializeableTypedProperty +{ + friend class IProperty; + + struct SEnumValue + { + TString Name; + u32 ID; + + SEnumValue() + : ID(0) + {} + + SEnumValue(const TString& rkInName, u32 InID) + : Name(rkInName), ID(InID) {} + + + inline bool operator==(const SEnumValue& rkOther) const + { + return( Name == rkOther.Name && ID == rkOther.ID ); + } + + void Serialize(IArchive& rArc) + { + rArc << SerialParameter("Name", Name, SH_Attribute) + << SerialParameter("ID", ID, SH_Attribute | SH_HexDisplay); + } + }; + std::vector mValues; + + /** If true, the archetype's name will be used as the type name instead of "enum" or "choice". */ + bool mOverrideTypeName; + +protected: + /** Constructor */ + TEnumPropertyBase(EGame Game) + : TSerializeableTypedProperty(Game) + , mOverrideTypeName(false) + {} + +public: + virtual const char* HashableTypeName() const + { + if (mpArchetype) + return mpArchetype->HashableTypeName(); + else if (mOverrideTypeName) + return *mName; + else if (TypeEnum == EPropertyType::Enum) + return "enum"; + else + return "choice"; + } + + virtual void Serialize(IArchive& rArc) + { + // Skip TSerializeableTypedProperty, serialize default value ourselves so we can set SH_HexDisplay + TTypedProperty::Serialize(rArc); + + TEnumPropertyBase* pArchetype = static_cast(mpArchetype); + u32 DefaultValueFlags = SH_HexDisplay | (pArchetype || Game() <= EGame::Prime ? SH_Optional : 0); + + rArc << SerialParameter("DefaultValue", mDefaultValue, DefaultValueFlags, pArchetype ? pArchetype->mDefaultValue : 0); + + // Only serialize type name override for root archetypes. + if (!mpArchetype) + { + rArc << SerialParameter("OverrideTypeName", mOverrideTypeName, SH_Optional, false); + } + + if (!pArchetype || !rArc.CanSkipParameters() || mValues != pArchetype->mValues) + { + rArc << SerialParameter("Values", mValues); + } + } + + virtual void SerializeValue(void* pData, IArchive& Arc) const + { + Arc.SerializePrimitive( (u32&) ValueRef(pData), 0 ); + } + + virtual void InitFromArchetype(IProperty* pOther) + { + TTypedProperty::InitFromArchetype(pOther); + TEnumPropertyBase* pOtherEnum = static_cast(pOther); + mValues = pOtherEnum->mValues; + } + + virtual TString ValueAsString(void* pData) const + { + return TString::FromInt32( Value(pData), 0, 10 ); + } + + void AddValue(TString ValueName, u32 ValueID) + { + mValues.push_back( SEnumValue(ValueName, ValueID) ); + } + + inline u32 NumPossibleValues() const { return mValues.size(); } + + u32 ValueIndex(u32 ID) const + { + for (u32 ValueIdx = 0; ValueIdx < mValues.size(); ValueIdx++) + { + if (mValues[ValueIdx].ID == ID) + { + return ValueIdx; + } + } + return -1; + } + + u32 ValueID(u32 Index) const + { + ASSERT(Index >= 0 && Index < mValues.size()); + return mValues[Index].ID; + } + + TString ValueName(u32 Index) const + { + ASSERT(Index >= 0 && Index < mValues.size()); + return mValues[Index].Name; + } + + bool HasValidValue(void* pPropertyData) + { + if (mValues.empty()) return true; + int ID = ValueRef(pPropertyData); + u32 Index = ValueIndex(ID); + return Index >= 0 && Index < mValues.size(); + } + + bool OverridesTypeName() const + { + return mpArchetype ? TPropCast(mpArchetype)->OverridesTypeName() : mOverrideTypeName; + } + + void SetOverrideTypeName(bool Override) + { + if (mpArchetype) + { + TEnumPropertyBase* pArchetype = TPropCast(RootArchetype()); + pArchetype->SetOverrideTypeName(Override); + } + else + { + if (mOverrideTypeName != Override) + { + mOverrideTypeName = Override; + MarkDirty(); + } + } + } +}; + +typedef TEnumPropertyBase CChoiceProperty; +typedef TEnumPropertyBase CEnumProperty; + +// Specialization of TPropCast to allow interchangeable casting, as both types are the same thing +template<> +inline CEnumProperty* TPropCast(IProperty* pProperty) +{ + if (pProperty) + { + EPropertyType InType = pProperty->Type(); + + if (InType == EPropertyType::Enum || InType == EPropertyType::Choice) + { + return static_cast(pProperty); + } + } + + return nullptr; +} + +template<> +inline CChoiceProperty* TPropCast(IProperty* pProperty) +{ + if (pProperty) + { + EPropertyType InType = pProperty->Type(); + + if (InType == EPropertyType::Enum || InType == EPropertyType::Choice) + { + return static_cast(pProperty); + } + } + + return nullptr; +} + +#endif // CENUMPROPERTY_H diff --git a/src/Core/Resource/Script/Property/CFlagsProperty.cpp b/src/Core/Resource/Script/Property/CFlagsProperty.cpp new file mode 100644 index 00000000..53006f4d --- /dev/null +++ b/src/Core/Resource/Script/Property/CFlagsProperty.cpp @@ -0,0 +1,53 @@ +#include "CFlagsProperty.h" +#include "Core/Resource/Script/CGameTemplate.h" + +void CFlagsProperty::Serialize(IArchive& rArc) +{ + TSerializeableTypedProperty::Serialize(rArc); + + CFlagsProperty* pArchetype = static_cast(mpArchetype); + + if (!pArchetype || !rArc.CanSkipParameters() || mBitFlags != pArchetype->mBitFlags) + { + rArc << SerialParameter("Flags", mBitFlags); + } +} + +void CFlagsProperty::PostInitialize() +{ + TSerializeableTypedProperty::PostInitialize(); + + // Create AllFlags mask + mAllFlags = 0; + + for (int FlagIdx = 0; FlagIdx < mBitFlags.size(); FlagIdx++) + mAllFlags |= mBitFlags[FlagIdx].Mask; +} + +void CFlagsProperty::SerializeValue(void* pData, IArchive& rArc) const +{ + rArc.SerializePrimitive( (u32&) ValueRef(pData), SH_HexDisplay ); +} + +void CFlagsProperty::InitFromArchetype(IProperty* pOther) +{ + TSerializeableTypedProperty::InitFromArchetype(pOther); + CFlagsProperty* pOtherFlags = static_cast(pOther); + mBitFlags = pOtherFlags->mBitFlags; + mAllFlags = pOtherFlags->mAllFlags; +} + +TString CFlagsProperty::ValueAsString(void* pData) const +{ + return TString::FromInt32( Value(pData), 0, 10 ); +} + +/** + * Checks whether there are any unrecognized bits toggled on in the property value. + * Returns the mask of any invalid bits. If all bits are valid, returns 0. + */ +u32 CFlagsProperty::HasValidValue(void* pPropertyData) +{ + if (!mAllFlags) return 0; + return ValueRef(pPropertyData) & ~mAllFlags; +} diff --git a/src/Core/Resource/Script/Property/CFlagsProperty.h b/src/Core/Resource/Script/Property/CFlagsProperty.h new file mode 100644 index 00000000..78838267 --- /dev/null +++ b/src/Core/Resource/Script/Property/CFlagsProperty.h @@ -0,0 +1,73 @@ +#ifndef CFLAGSPROPERTY_H +#define CFLAGSPROPERTY_H + +#include "IProperty.h" + +class CFlagsProperty : public TSerializeableTypedProperty +{ + friend class IProperty; + + struct SBitFlag + { + TString Name; + u32 Mask; + + SBitFlag() + : Mask(0) + {} + + SBitFlag(const TString& rkInName, u32 InMask) + : Name(rkInName), Mask(InMask) + {} + + bool operator==(const SBitFlag& rkOther) const + { + return( Name == rkOther.Name && Mask == rkOther.Mask ); + } + + void Serialize(IArchive& rArc) + { + rArc << SerialParameter("Name", Name, SH_Attribute) + << SerialParameter("Mask", Mask, SH_Attribute | SH_HexDisplay); + } + }; + std::vector mBitFlags; + u32 mAllFlags; + + CFlagsProperty(EGame Game) + : TSerializeableTypedProperty(Game) + , mAllFlags(0) + {} + +public: + inline u32 NumFlags() const + { + return mBitFlags.size(); + } + + inline TString FlagName(u32 Idx) const + { + ASSERT(Idx >= 0 && Idx < mBitFlags.size()); + return mBitFlags[Idx].Name; + } + + inline u32 FlagMask(u32 Idx) const + { + ASSERT(Idx >= 0 && Idx < mBitFlags.size()); + return mBitFlags[Idx].Mask; + } + + virtual void Serialize(IArchive& rArc); + virtual void PostInitialize(); + virtual void SerializeValue(void* pData, IArchive& rArc) const; + virtual void InitFromArchetype(IProperty* pOther); + virtual TString ValueAsString(void* pData) const; + + /** + * Checks whether there are any unrecognized bits toggled on in the property value. + * Returns the mask of any invalid bits. If all bits are valid, returns 0. + */ + u32 HasValidValue(void* pPropertyData); +}; + +#endif // CFLAGSPROPERTY_H diff --git a/src/Core/Resource/Script/Property/CFloatProperty.h b/src/Core/Resource/Script/Property/CFloatProperty.h new file mode 100644 index 00000000..f73de593 --- /dev/null +++ b/src/Core/Resource/Script/Property/CFloatProperty.h @@ -0,0 +1,27 @@ +#ifndef CFLOATPROPERTY_H +#define CFLOATPROPERTY_H + +#include "IProperty.h" + +class CFloatProperty : public TNumericalProperty< float, EPropertyType::Float > +{ + friend class IProperty; + +protected: + CFloatProperty(EGame Game) + : TNumericalProperty(Game) + {} + +public: + virtual void SerializeValue(void* pData, IArchive& Arc) const + { + Arc.SerializePrimitive( (float&) ValueRef(pData), 0 ); + } + + virtual TString ValueAsString(void* pData) const + { + return TString::FromFloat( Value(pData) ); + } +}; + +#endif // CFLOATPROPERTY_H diff --git a/src/Core/Resource/Script/Property/CGuidProperty.h b/src/Core/Resource/Script/Property/CGuidProperty.h new file mode 100644 index 00000000..197f05cc --- /dev/null +++ b/src/Core/Resource/Script/Property/CGuidProperty.h @@ -0,0 +1,22 @@ +#ifndef CGUIDPROPERTY_H +#define CGUIDPROPERTY_H + +#include "IProperty.h" + +class CGuidProperty : public TTypedProperty< std::vector, EPropertyType::Guid > +{ + friend class IProperty; + +protected: + CGuidProperty(EGame Game) + : TTypedProperty(Game) + {} + +public: + virtual void SerializeValue(void* pData, IArchive& Arc) const + { + Arc << SerialParameter("Data", ValueRef(pData)); + } +}; + +#endif // CSPLINEPROPERTY_H diff --git a/src/Core/Resource/Script/Property/CIntProperty.h b/src/Core/Resource/Script/Property/CIntProperty.h new file mode 100644 index 00000000..dd62ca4b --- /dev/null +++ b/src/Core/Resource/Script/Property/CIntProperty.h @@ -0,0 +1,27 @@ +#ifndef CINTPROPERTY_H +#define CINTPROPERTY_H + +#include "IProperty.h" + +class CIntProperty : public TNumericalProperty< s32, EPropertyType::Int > +{ + friend class IProperty; + +protected: + CIntProperty(EGame Game) + : TNumericalProperty(Game) + {} + +public: + virtual void SerializeValue(void* pData, IArchive& Arc) const + { + Arc.SerializePrimitive( ValueRef(pData), 0 ); + } + + virtual TString ValueAsString(void* pData) const + { + return TString::FromInt32( Value(pData), 0, 10 ); + } +}; + +#endif // CINTPROPERTY_H diff --git a/src/Core/Resource/Script/Property/CPointerProperty.h b/src/Core/Resource/Script/Property/CPointerProperty.h new file mode 100644 index 00000000..7e61a805 --- /dev/null +++ b/src/Core/Resource/Script/Property/CPointerProperty.h @@ -0,0 +1,32 @@ +#ifndef CPOINTERPROPERTY_H +#define CPOINTERPROPERTY_H + +#include "IProperty.h" + +class CPointerProperty : public TTypedProperty +{ + friend class IProperty; + + CPointerProperty(EGame Game) + : TTypedProperty(Game) + {} + +public: + virtual bool IsPointerType() const + { + return true; + } + + virtual void* GetChildDataPointer(void* pPropertyData) const + { + return ValueRef(pPropertyData); + } + + virtual void SerializeValue(void* pData, IArchive& rArc) const + { + // pointers are not serializable, this shouldn't happen + ASSERT(false); + } +}; + +#endif // CPOINTERPROPERTY_H diff --git a/src/Core/Resource/Script/Property/CPropertyNameGenerator.cpp b/src/Core/Resource/Script/Property/CPropertyNameGenerator.cpp new file mode 100644 index 00000000..8b627c9a --- /dev/null +++ b/src/Core/Resource/Script/Property/CPropertyNameGenerator.cpp @@ -0,0 +1,304 @@ +#include "CPropertyNameGenerator.h" +#include "IUIRelay.h" +#include "Core/Resource/Script/CGameTemplate.h" +#include "Core/Resource/Script/NPropertyMap.h" +#include + +/** Default constructor */ +CPropertyNameGenerator::CPropertyNameGenerator() + : mWordListLoadStarted(false) + , mWordListLoadFinished(false) + , mIsRunning(false) + , mFinishedRunning(false) +{ +} + +void CPropertyNameGenerator::Warmup() +{ + // Clear output from previous runs + ASSERT(!mWordListLoadStarted || mWordListLoadFinished); + mWordListLoadFinished = false; + mWordListLoadStarted = true; + mWords.clear(); + + // Load the word list from the file + FILE* pListFile = fopen("../resources/WordList.txt", "r"); + ASSERT(pListFile); + + while (!feof(pListFile)) + { + char WordBuffer[64]; + fgets(&WordBuffer[0], 64, pListFile); + WordBuffer[0] = TString::CharToUpper(WordBuffer[0]); + + SWord Word; + Word.Word = TString(WordBuffer).Trimmed(); + Word.Usages = 0; + mWords.push_back(Word); + } + + fclose(pListFile); + mWordListLoadFinished = true; +} + +void CPropertyNameGenerator::Generate(const SPropertyNameGenerationParameters& rkParams, IProgressNotifier* pProgress) +{ + // Make sure all prerequisite data is loaded! + ASSERT(!mIsRunning); + ASSERT(rkParams.TypeNames.size() > 0); + mGeneratedNames.clear(); + mValidTypePairMap.clear(); + mIsRunning = true; + mFinishedRunning = false; + + // Convert the type pair map. + // Also, replace the normal type name list with whatever is in the ID pairs list we were given. + if (!rkParams.ValidIdPairs.empty()) + { + mTypeNames.clear(); + + for (const SPropertyIdTypePair& kPair : rkParams.ValidIdPairs) + { + mValidTypePairMap[ kPair.ID ] = kPair.pkType; + NBasics::VectorAddUnique( mTypeNames, TString(kPair.pkType) ); + } + } + else + { + mTypeNames = rkParams.TypeNames; + } + + // If TestIntsAsChoices is enabled, and int is in the type list, then choice must be in the type list too. + if (rkParams.TestIntsAsChoices && NBasics::VectorContains(mTypeNames, TString("int"))) + { + NBasics::VectorAddUnique(mTypeNames, TString("choice")); + } + + // If we haven't loaded the word list yet, load it. + // If we are still loading the word list, wait until we're finished. + if (!mWordListLoadFinished) + { + if (mWordListLoadStarted) + while (!mWordListLoadFinished) {} + else + Warmup(); + } + + // Calculate the number of steps involved in this task. + const int kNumWords = mWords.size(); + const int kMaxWords = rkParams.MaxWords; + int TestsDone = 0; + int TotalTests = 1; + + for (int i = 0; i < kMaxWords; i++) + TotalTests *= kNumWords; + + pProgress->SetOneShotTask("Generating property names"); + pProgress->Report(TestsDone, TotalTests); + + // Configure params needed to run the name generation! + bool WriteToLog = rkParams.PrintToLog; + bool SaveResults = true; + + // The prefix only needs to be hashed this one time + CCRC32 PrefixHash; + PrefixHash.Hash( *rkParams.Prefix ); + + // Use a stack to keep track of the current word we are on. We can use this + // to cache the hash of a word and then re-use it later instead of recaculating + // the same hashes over and over. Init the stack with the first word. + struct SWordCache + { + int WordIndex; + CCRC32 Hash; + }; + std::vector WordCache; + + SWordCache FirstWord { -1, CCRC32() }; + WordCache.push_back(FirstWord); + + while ( true ) + { + // Increment the current word, handle wrapping back to 0, and update cached hashes as needed. + int RecalcIndex = WordCache.size() - 1; + WordCache.back().WordIndex++; + + while (WordCache[RecalcIndex].WordIndex >= kNumWords) + { + WordCache[RecalcIndex].WordIndex = 0; + + if (RecalcIndex > 0) + { + RecalcIndex--; + WordCache[RecalcIndex].WordIndex++; + } + else + { + SWordCache NewWord { 0, CCRC32() }; + WordCache.push_back(NewWord); + } + } + + // If we've hit the word limit, break out and end the name generation system. + if (WordCache.size() > kMaxWords) + break; + + // Now that all words are updated, calculate the new hashes. + CCRC32 LastValidHash = (RecalcIndex > 0 ? WordCache[RecalcIndex-1].Hash : PrefixHash); + + for (; RecalcIndex < WordCache.size(); RecalcIndex++) + { + int Index = WordCache[RecalcIndex].WordIndex; + + // For camelcase, hash the first letter of the first word as lowercase + if (RecalcIndex == 0 && rkParams.Casing == ENameCasing::camelCase) + { + const char* pkWord = *mWords[Index].Word; + LastValidHash.Hash( TString::CharToLower( pkWord[0] ) ); + LastValidHash.Hash( &pkWord[1] ); + } + else + { + // Add an underscore for snake case + if (RecalcIndex > 0 && rkParams.Casing == ENameCasing::Snake_Case) + LastValidHash.Hash("_"); + + LastValidHash.Hash( *mWords[Index].Word ); + } + + WordCache[RecalcIndex].Hash = LastValidHash; + } + + // We got our hash yay! Now hash the suffix and then we can test with each type name + CCRC32 BaseHash = LastValidHash; + BaseHash.Hash( *rkParams.Suffix ); + + for (int TypeIdx = 0; TypeIdx < mTypeNames.size(); TypeIdx++) + { + CCRC32 FullHash = BaseHash; + const char* pkTypeName = *mTypeNames[TypeIdx]; + FullHash.Hash( pkTypeName ); + u32 PropertyID = FullHash.Digest(); + + // Check if this hash is a property ID + if (IsValidPropertyID(PropertyID, pkTypeName, rkParams)) + { + SGeneratedPropertyName PropertyName; + NPropertyMap::RetrieveXMLsWithProperty(PropertyID, pkTypeName, PropertyName.XmlList); + + // Generate a string with the complete name. (We wait to do this until now to avoid needless string allocation) + PropertyName.Name = rkParams.Prefix; + + for (int WordIdx = 0; WordIdx < WordCache.size(); WordIdx++) + { + int Index = WordCache[WordIdx].WordIndex; + + if (WordIdx > 0 && rkParams.Casing == ENameCasing::Snake_Case) + { + PropertyName.Name += "_"; + } + + PropertyName.Name += mWords[Index].Word; + } + + if (rkParams.Casing == ENameCasing::camelCase) + { + PropertyName.Name[0] = TString::CharToLower( PropertyName.Name[0] ); + } + + PropertyName.Name += rkParams.Suffix; + PropertyName.Type = pkTypeName; + PropertyName.ID = PropertyID; + + if (SaveResults) + { + mGeneratedNames.push_back(PropertyName); + + // Check if we have too many saved results. This can cause memory issues and crashing. + // If we have too many saved results, then to avoid crashing we will force enable log output. + if (mGeneratedNames.size() > 9999) + { + gpUIRelay->AsyncMessageBox("Warning", "There are over 10,000 results. Results will no longer print to the screen. Check the log for the remaining output."); + WriteToLog = true; + SaveResults = false; + } + } + + // Log this out + if ( WriteToLog ) + { + TString DelimitedXmlList; + + for (auto Iter = PropertyName.XmlList.begin(); Iter != PropertyName.XmlList.end(); Iter++) + { + DelimitedXmlList += *Iter + "\n"; + } + + TString LogMsg = TString::Format("%s [%s] : 0x%08X\n", *PropertyName.Name, *PropertyName.Type, PropertyName.ID) + DelimitedXmlList; + Log::Write(LogMsg); + } + } + } + + // Every 250 tests, check with the progress notifier. Update the progress + // bar and check whether the user has requested to cancel the operation. + TestsDone++; + + if ( (TestsDone % 250) == 0 ) + { + if (pProgress->ShouldCancel()) + break; + + pProgress->Report(TestsDone, TotalTests); + } + } + + mIsRunning = false; + mFinishedRunning = true; +} + +/** Returns whether a given property ID is valid */ +bool CPropertyNameGenerator::IsValidPropertyID(u32 ID, const char*& pkType, const SPropertyNameGenerationParameters& rkParams) +{ + if (!mValidTypePairMap.empty()) + { + auto Find = mValidTypePairMap.find(ID); + + if (Find != mValidTypePairMap.end()) + { + if (strcmp( Find->second, pkType ) == 0) + { + return true; + } + else if (rkParams.TestIntsAsChoices && strcmp(pkType, "choice") == 0) + { + if (strcmp( Find->second, "int" ) == 0) + { + pkType = "int"; + return true; + } + } + + return false; + } + else + return false; + } + else + { + bool IsAlreadyNamed; + bool IsValid = NPropertyMap::IsValidPropertyID(ID, pkType, &IsAlreadyNamed); + + if (!IsValid && rkParams.TestIntsAsChoices && strcmp(pkType, "choice") == 0) + { + IsValid = NPropertyMap::IsValidPropertyID(ID, "int", &IsAlreadyNamed); + + if (IsValid) + { + pkType = "int"; + } + } + + return IsValid && (!IsAlreadyNamed || !rkParams.ExcludeAccuratelyNamedProperties); + } +} diff --git a/src/Core/Resource/Script/Property/CPropertyNameGenerator.h b/src/Core/Resource/Script/Property/CPropertyNameGenerator.h new file mode 100644 index 00000000..c5d1caaa --- /dev/null +++ b/src/Core/Resource/Script/Property/CPropertyNameGenerator.h @@ -0,0 +1,122 @@ +#ifndef CPROPERTYNAMEGENERATOR_H +#define CPROPERTYNAMEGENERATOR_H + +#include "Core/IProgressNotifier.h" +#include + +/** Name casing parameter */ +enum class ENameCasing +{ + PascalCase, + Snake_Case, + camelCase, +}; + +/** ID/type pairing for ID pool */ +struct SPropertyIdTypePair +{ + u32 ID; + const char* pkType; +}; + +/** Parameters for using the name generator */ +struct SPropertyNameGenerationParameters +{ + /** Maximum number of words per name; name generation will complete when all possibilities have been checked */ + int MaxWords; + + /** Prefix to include at the beginning of every name */ + TString Prefix; + + /** Suffix to include at the end of every name */ + TString Suffix; + + /** Name casing to use */ + ENameCasing Casing; + + /** List of valid type suffixes */ + std::vector TypeNames; + + /** List of ID/type pairs to check against. If empty, all properties are valid. */ + std::vector ValidIdPairs; + + /** Whether to exclude properties that already have accurate names from the generation results. */ + bool ExcludeAccuratelyNamedProperties; + + /** Whether to test int properties as choices */ + bool TestIntsAsChoices; + + /** Whether to print the output from the generation process to the log */ + bool PrintToLog; +}; + +/** A generated property name */ +struct SGeneratedPropertyName +{ + TString Name; + TString Type; + u32 ID; + std::set XmlList; +}; + +/** Generates property names and validates them against know property IDs. */ +class CPropertyNameGenerator +{ + /** Whether we have started loading the word list */ + bool mWordListLoadStarted; + + /** Whether the word list has been fully loaded */ + bool mWordListLoadFinished; + + /** Whether the generation process is running */ + bool mIsRunning; + + /** Whether the generation process finished running */ + bool mFinishedRunning; + + /** List of valid property types to check against */ + std::vector mTypeNames; + + /** Mapping of valid ID/type pairs; if empty, all property names in NPropertyMap are allowed */ + std::unordered_map mValidTypePairMap; + + /** List of words */ + struct SWord + { + TString Word; + int Usages; + }; + std::vector mWords; + + /** List of output generated property names */ + std::list mGeneratedNames; + + /** List of word indices */ + std::vector mWordIndices; + +public: + /** Default constructor */ + CPropertyNameGenerator(); + + /** Prepares the generator for running name generation */ + void Warmup(); + + /** Run the name generation system */ + void Generate(const SPropertyNameGenerationParameters& rkParams, IProgressNotifier* pProgressNotifier); + + /** Returns whether a given property ID is valid */ + bool IsValidPropertyID(u32 ID, const char*& pkType, const SPropertyNameGenerationParameters& rkParams); + + /** Accessors */ + bool IsRunning() const + { + return mIsRunning; + } + + const std::list& GetOutput() const + { + return mGeneratedNames; + } +}; + +#endif // CPROPERTYNAMEGENERATOR_H diff --git a/src/Core/Resource/Script/Property/CSequenceProperty.h b/src/Core/Resource/Script/Property/CSequenceProperty.h new file mode 100644 index 00000000..4439b7a9 --- /dev/null +++ b/src/Core/Resource/Script/Property/CSequenceProperty.h @@ -0,0 +1,19 @@ +#ifndef CSEQUENCEPROPERTY_H +#define CSEQUENCEPROPERTY_H + +#include "IProperty.h" + +class CSequenceProperty : public TTypedProperty< s32, EPropertyType::Sequence > +{ + friend class IProperty; + +protected: + CSequenceProperty(EGame Game) + : TTypedProperty(Game) + {} + + virtual void SerializeValue(void* pData, IArchive& rArc) const + {} +}; + +#endif // CSEQUENCEPROPERTY_H diff --git a/src/Core/Resource/Script/Property/CShortProperty.h b/src/Core/Resource/Script/Property/CShortProperty.h new file mode 100644 index 00000000..906cc463 --- /dev/null +++ b/src/Core/Resource/Script/Property/CShortProperty.h @@ -0,0 +1,27 @@ +#ifndef CSHORTPROPERTY_H +#define CSHORTPROPERTY_H + +#include "IProperty.h" + +class CShortProperty : public TNumericalProperty< s16, EPropertyType::Short > +{ + friend class IProperty; + +protected: + CShortProperty(EGame Game) + : TNumericalProperty(Game) + {} + +public: + virtual void SerializeValue(void* pData, IArchive& Arc) const + { + Arc.SerializePrimitive( ValueRef(pData), 0 ); + } + + virtual TString ValueAsString(void* pData) const + { + return TString::FromInt32( (s32) Value(pData), 0, 10 ); + } +}; + +#endif // CSHORTPROPERTY_H diff --git a/src/Core/Resource/Script/Property/CSoundProperty.h b/src/Core/Resource/Script/Property/CSoundProperty.h new file mode 100644 index 00000000..be1b22c1 --- /dev/null +++ b/src/Core/Resource/Script/Property/CSoundProperty.h @@ -0,0 +1,27 @@ +#ifndef CSOUNDPROPERTY_H +#define CSOUNDPROPERTY_H + +#include "IProperty.h" + +class CSoundProperty : public TSerializeableTypedProperty< s32, EPropertyType::Sound > +{ + friend class IProperty; + +protected: + CSoundProperty(EGame Game) + : TSerializeableTypedProperty(Game) + {} + +public: + virtual void SerializeValue(void* pData, IArchive& Arc) const + { + Arc.SerializePrimitive( ValueRef(pData), 0 ); + } + + virtual TString ValueAsString(void* pData) const + { + return TString::FromInt32( Value(pData), 0, 10 ); + } +}; + +#endif // CSOUNDPROPERTY_H diff --git a/src/Core/Resource/Script/Property/CSplineProperty.h b/src/Core/Resource/Script/Property/CSplineProperty.h new file mode 100644 index 00000000..4c3e1949 --- /dev/null +++ b/src/Core/Resource/Script/Property/CSplineProperty.h @@ -0,0 +1,22 @@ +#ifndef CSPLINEPROPERTY_H +#define CSPLINEPROPERTY_H + +#include "IProperty.h" + +class CSplineProperty : public TTypedProperty< std::vector, EPropertyType::Spline > +{ + friend class IProperty; + +protected: + CSplineProperty(EGame Game) + : TTypedProperty(Game) + {} + +public: + virtual void SerializeValue(void* pData, IArchive& Arc) const + { + Arc << SerialParameter("Data", ValueRef(pData)); + } +}; + +#endif // CSPLINEPROPERTY_H diff --git a/src/Core/Resource/Script/Property/CStringProperty.h b/src/Core/Resource/Script/Property/CStringProperty.h new file mode 100644 index 00000000..b2053226 --- /dev/null +++ b/src/Core/Resource/Script/Property/CStringProperty.h @@ -0,0 +1,27 @@ +#ifndef CSTRINGPROPERTY_H +#define CSTRINGPROPERTY_H + +#include "IProperty.h" + +class CStringProperty : public TSerializeableTypedProperty< TString, EPropertyType::String > +{ + friend class IProperty; + +protected: + CStringProperty(EGame Game) + : TSerializeableTypedProperty(Game) + {} + +public: + virtual void SerializeValue(void* pData, IArchive& Arc) const + { + Arc.SerializePrimitive( ValueRef(pData), 0 ); + } + + virtual TString ValueAsString(void* pData) const + { + return Value(pData); + } +}; + +#endif // CSTRINGPROPERTY_H diff --git a/src/Core/Resource/Script/Property/CStructProperty.cpp b/src/Core/Resource/Script/Property/CStructProperty.cpp new file mode 100644 index 00000000..2de5c53b --- /dev/null +++ b/src/Core/Resource/Script/Property/CStructProperty.cpp @@ -0,0 +1,198 @@ +#include "CStructProperty.h" +#include "Core/Resource/Script/CGameTemplate.h" + +EPropertyType CStructProperty::Type() const +{ + return EPropertyType::Struct; +} + +void CStructProperty::PostInitialize() +{ + IProperty::PostInitialize(); + + // All structs should have an archetype. + ASSERT( IsRootParent() || mpArchetype != nullptr ); +} + +u32 CStructProperty::DataSize() const +{ + if (!mChildren.empty()) + { + IProperty* pLastChild = mChildren.back(); + return (pLastChild->Offset() - Offset()) + pLastChild->DataSize(); + } + else + { + return 0; + } +} + +u32 CStructProperty::DataAlignment() const +{ + // Structs are aligned to the first child property. + return (mChildren.empty() ? 1 : mChildren[0]->DataAlignment()); +} + +void CStructProperty::Construct(void* pData) const +{ + for (int ChildIdx = 0; ChildIdx < mChildren.size(); ChildIdx++) + { + mChildren[ChildIdx]->Construct(pData); + } +} + +void CStructProperty::Destruct(void* pData) const +{ + for (int ChildIdx = 0; ChildIdx < mChildren.size(); ChildIdx++) + { + mChildren[ChildIdx]->Destruct(pData); + } +} + +bool CStructProperty::MatchesDefault(void* pData) const +{ + for (int ChildIdx = 0; ChildIdx < mChildren.size(); ChildIdx++) + { + if (!mChildren[ChildIdx]->MatchesDefault(pData)) + { + return false; + } + } + return true; +} + +void CStructProperty::RevertToDefault(void* pData) const +{ + for (int ChildIdx = 0; ChildIdx < mChildren.size(); ChildIdx++) + { + mChildren[ChildIdx]->RevertToDefault(pData); + } +} + +const char* CStructProperty::HashableTypeName() const +{ + return mpArchetype ? mpArchetype->HashableTypeName() : *mName; +} + +void CStructProperty::Serialize(IArchive& rArc) +{ + IProperty::Serialize(rArc); + + // Serialize atomic flag + // Only serialize this if we don't have an archetype. Otherwise we just inherit the archetype's atomic flag. + if (!mpArchetype) + { + bool Atomic = IsAtomic(); + rArc << SerialParameter("Atomic", Atomic, SH_Optional, false); + + if (rArc.IsReader() && Atomic) + { + mFlags.SetFlag(EPropertyFlag::IsAtomic); + } + } + + // Serialize archetype + if (mpArchetype) + { + CStructProperty* pArchetype = static_cast(mpArchetype); + ASSERT(pArchetype != nullptr); + + if (rArc.IsReader()) + { + // We've initialized from the archetypes, now serialize parameter overrides + if (rArc.ParamBegin("SubProperties", 0)) + { + u32 NumChildOverrides; + rArc.SerializeArraySize(NumChildOverrides); + + for (u32 ChildIdx = 0; ChildIdx < NumChildOverrides; ChildIdx++) + { + if (rArc.ParamBegin("Element", SH_IgnoreName)) + { + // Serialize type and ID, then look up the matching property and serialize it. + // We don't really need the type, but it's a good sanity check, and it's also good practice + // to guarantee that parameters are read in order, as some serializers are order-dependent. + EPropertyType ChildType; + u32 ChildID; + + rArc << SerialParameter("Type", ChildType, SH_Attribute) + << SerialParameter("ID", ChildID, SH_Attribute | SH_HexDisplay ); + + IProperty* pChild = ChildByID(ChildID); + ASSERT(pChild != nullptr && pChild->Type() == ChildType); + pChild->Serialize(rArc); + + rArc.ParamEnd(); + } + } + + rArc.ParamEnd(); + } + } + else + { + // Check if any properties need to override parameters from their archetype. + std::vector PropertiesToSerialize; + + for (u32 ChildIdx = 0; ChildIdx < mChildren.size(); ChildIdx++) + { + if (mChildren[ChildIdx]->ShouldSerialize()) + { + PropertiesToSerialize.push_back(mChildren[ChildIdx]); + } + } + + u32 NumChildOverrides = PropertiesToSerialize.size(); + + if (NumChildOverrides > 0) + { + rArc << SerialParameter("SubProperties", PropertiesToSerialize); + } + } + } + else + { + rArc << SerialParameter("SubProperties", mChildren); + } +} + +void CStructProperty::SerializeValue(void* pData, IArchive& Arc) const +{ + for (u32 ChildIdx = 0; ChildIdx < mChildren.size(); ChildIdx++) + { + if (Arc.ParamBegin("Property", 0)) + { + mChildren[ChildIdx]->SerializeValue(pData, Arc); + Arc.ParamEnd(); + } + } +} + +void CStructProperty::InitFromArchetype(IProperty* pOther) +{ + IProperty::InitFromArchetype(pOther); + + // Copy children + _ClearChildren(); + mChildren.reserve( pOther->NumChildren() ); + + for (u32 ChildIdx = 0; ChildIdx < pOther->NumChildren(); ChildIdx++) + { + IProperty* pChild = CreateCopy( pOther->ChildByIndex(ChildIdx) ); + mChildren.push_back( pChild ); + } +} + +bool CStructProperty::ShouldSerialize() const +{ + if (IProperty::ShouldSerialize()) + return true; + + for (u32 ChildIdx = 0; ChildIdx < mChildren.size(); ChildIdx++) + { + if (mChildren[ChildIdx]->ShouldSerialize()) + return true; + } + + return false; +} diff --git a/src/Core/Resource/Script/Property/CStructProperty.h b/src/Core/Resource/Script/Property/CStructProperty.h new file mode 100644 index 00000000..adbd8f39 --- /dev/null +++ b/src/Core/Resource/Script/Property/CStructProperty.h @@ -0,0 +1,37 @@ +#ifndef CSTRUCTPROPERTY_H +#define CSTRUCTPROPERTY_H + +#include "IProperty.h" + +class CStructProperty : public IProperty +{ + friend class IProperty; + +public: + // Must be a valid type for TPropertyRef + typedef void* ValueType; + +protected: + CStructProperty(EGame Game) + : IProperty(Game) + {} + +public: + virtual EPropertyType Type() const; + virtual void PostInitialize(); + virtual u32 DataSize() const; + virtual u32 DataAlignment() const; + virtual void Construct(void* pData) const; + virtual void Destruct(void* pData) const; + virtual bool MatchesDefault(void* pData) const; + virtual void RevertToDefault(void* pData) const; + virtual const char* HashableTypeName() const; + virtual void Serialize(IArchive& rArc); + virtual void SerializeValue(void* pData, IArchive& Arc) const; + virtual void InitFromArchetype(IProperty* pOther); + virtual bool ShouldSerialize() const; + + inline static EPropertyType StaticType() { return EPropertyType::Struct; } +}; + +#endif diff --git a/src/Core/Resource/Script/Property/CVectorProperty.h b/src/Core/Resource/Script/Property/CVectorProperty.h new file mode 100644 index 00000000..089c2bbd --- /dev/null +++ b/src/Core/Resource/Script/Property/CVectorProperty.h @@ -0,0 +1,34 @@ +#ifndef CVECTORPROPERTY_H +#define CVECTORPROPERTY_H + +#include "IProperty.h" + +class CVectorProperty : public TSerializeableTypedProperty< CVector3f, EPropertyType::Vector > +{ + friend class IProperty; + +protected: + CVectorProperty(EGame Game) + : TSerializeableTypedProperty(Game) + {} + +public: + virtual void PostInitialize() override + { + CreateIntrinsic(EPropertyType::Float, this, mOffset + 0, "X"); + CreateIntrinsic(EPropertyType::Float, this, mOffset + 4, "Y"); + CreateIntrinsic(EPropertyType::Float, this, mOffset + 8, "Z"); + } + + virtual void SerializeValue(void* pData, IArchive& Arc) const + { + ValueRef(pData).Serialize(Arc); + } + + virtual TString ValueAsString(void* pData) const + { + return Value(pData).ToString(); + } +}; + +#endif // CVECTORPROPERTY_H diff --git a/src/Core/Resource/Script/Property/IProperty.cpp b/src/Core/Resource/Script/Property/IProperty.cpp new file mode 100644 index 00000000..28480644 --- /dev/null +++ b/src/Core/Resource/Script/Property/IProperty.cpp @@ -0,0 +1,653 @@ +#include "IProperty.h" +#include "CAssetProperty.h" +#include "CArrayProperty.h" +#include "CEnumProperty.h" +#include "CFlagsProperty.h" +#include "CPointerProperty.h" + +#include "Core/Resource/Script/CGameTemplate.h" +#include "Core/Resource/Script/CScriptTemplate.h" +#include "Core/Resource/Script/NGameList.h" +#include "Core/Resource/Script/NPropertyMap.h" + +/** IProperty */ +IProperty::IProperty(EGame Game) + : mpParent( nullptr ) + , mpPointerParent( nullptr ) + , mpArchetype( nullptr ) + , mGame( Game ) + , mpScriptTemplate( nullptr ) + , mOffset( -1 ) + , mID( -1 ) + , mCookPreference( ECookPreference::Default ) + , mMinVersion( 0.0f ) + , mMaxVersion( FLT_MAX ) +{} + +void IProperty::_ClearChildren() +{ + for (int ChildIdx = 0; ChildIdx < mChildren.size(); ChildIdx++) + { + // Unregister children from the name map. This has to be done before actually deleting them. + if (mChildren[ChildIdx]->UsesNameMap()) + { + NPropertyMap::UnregisterProperty(mChildren[ChildIdx]); + } + + delete mChildren[ChildIdx]; + } + + mChildren.clear(); +} + +IProperty::~IProperty() +{ + // Remove from archetype + if( mpArchetype != nullptr ) + { + // If you crash here, it most likely means this property was not added to the archetype's sub-instances list. + NBasics::VectorRemoveOne(mpArchetype->mSubInstances, this); + } + + // If this is an archetype, make sure no sub-instances have a reference to us. + if( IsArchetype() ) + { + for( int SubIdx = 0; SubIdx < mSubInstances.size(); SubIdx++ ) + { + mSubInstances[SubIdx]->mpArchetype = nullptr; + } + } + + // Delete children + _ClearChildren(); +} + +const char* IProperty::HashableTypeName() const +{ + return PropEnumToHashableTypeName( Type() ); +} + +void* IProperty::GetChildDataPointer(void* pPropertyData) const +{ + return pPropertyData; +} + +void IProperty::Serialize(IArchive& rArc) +{ + // Always serialize ID first! ID is always required (except for root properties, which have an ID of 0xFFFFFFFF) + // because they are needed to look up the correct property to apply parameter overrides to. + rArc << SerialParameter("ID", mID, SH_HexDisplay | SH_Attribute | SH_Optional, (u32) 0xFFFFFFFF); + + // Now we can serialize the archetype reference and initialize if needed + if ( ((mpArchetype && mpArchetype->IsRootParent()) || rArc.IsReader()) && rArc.CanSkipParameters() ) + { + TString ArchetypeName = (mpArchetype ? mpArchetype->Name() : ""); + rArc << SerialParameter("Archetype", ArchetypeName, SH_Attribute); + + if (rArc.IsReader() && !ArchetypeName.IsEmpty()) + { + CGameTemplate* pGame = NGameList::GetGameTemplate( Game() ); + IProperty* pArchetype = pGame->FindPropertyArchetype(ArchetypeName); + + // The archetype must exist, or else the template file is malformed. + ASSERT(pArchetype != nullptr); + + InitFromArchetype(pArchetype); + } + } + + // In MP1, the game data does not use property IDs, so we serialize the name directly. + // In MP2 and on, property names are looked up based on the property ID via the property name map. + // Exceptions: Properties that are not in the name map still need to serialize their names. + // This includes root-level properties, and properties of atomic structs. + // + // We can't currently tell if this property is atomic, as the flag hasn't been serialized and the parent + // hasn't been set, but atomic sub-properties don't use hash IDs, so we can do a pseudo-check against the ID. + if (rArc.Game() <= EGame::Prime || IsRootParent() || IsArrayArchetype() || mID <= 0xFF) + { + rArc << SerialParameter("Name", mName, mpArchetype ? SH_Optional : 0, mpArchetype ? mpArchetype->mName : ""); + } + + rArc << SerialParameter("Description", mDescription, SH_Optional, mpArchetype ? mpArchetype->mDescription : "") + << SerialParameter("CookPreference", mCookPreference, SH_Optional, mpArchetype ? mpArchetype->mCookPreference : ECookPreference::Default) + << SerialParameter("MinVersion", mMinVersion, SH_Optional, mpArchetype ? mpArchetype->mMinVersion : 0.f) + << SerialParameter("MaxVersion", mMaxVersion, SH_Optional, mpArchetype ? mpArchetype->mMaxVersion : FLT_MAX) + << SerialParameter("Suffix", mSuffix, SH_Optional, mpArchetype ? mpArchetype->mSuffix : ""); + + // Children don't get serialized for most property types +} + +void IProperty::InitFromArchetype(IProperty* pOther) +{ + //@todo maybe somehow use Serialize for this instead? + mpArchetype = pOther; + mpArchetype->mSubInstances.push_back(this); + + mFlags = pOther->mFlags & EPropertyFlag::ArchetypeCopyFlags; + mName = pOther->mName; + mDescription = pOther->mDescription; + mSuffix = pOther->mSuffix; + mCookPreference = pOther->mCookPreference; + mMinVersion = pOther->mMinVersion; + mMaxVersion = pOther->mMaxVersion; + + // Copy ID only if our existing ID is not valid. + if (mID == 0xFFFFFFFF) + { + mID = pOther->mID; + } +} + +bool IProperty::ShouldSerialize() const +{ + return mpArchetype == nullptr || + mName != mpArchetype->mName || + mDescription != mpArchetype->mDescription || + mSuffix != mpArchetype->mSuffix || + mCookPreference != mpArchetype->mCookPreference || + mMinVersion != mpArchetype->mMinVersion || + mMaxVersion != mpArchetype->mMaxVersion; +} + +void IProperty::Initialize(IProperty* pInParent, CScriptTemplate* pInTemplate, u32 InOffset) +{ + // Make sure we only get initialized once. + ASSERT( (mFlags & EPropertyFlag::IsInitialized) == 0 ); + + mpParent = pInParent; + mOffset = InOffset; + mpScriptTemplate = pInTemplate; + + // Set any fields dependent on the parent... + if (mpParent) + { + mFlags |= mpParent->mFlags & EPropertyFlag::InheritableFlags; + + if (mpParent->IsPointerType()) + { + mpPointerParent = mpParent; + } + else + { + mpPointerParent = mpParent->mpPointerParent; + } + + if (mpParent->Type() == EPropertyType::Array) + { + mFlags |= EPropertyFlag::IsArrayArchetype; + } + + // MP1 has some weirdness we need to account for, most likely due to incorrect templates + // The templates we have right now have non-atomic structs inside atomic structs... + if (Game() <= EGame::Prime && mpParent->IsAtomic() && mpArchetype && !mpArchetype->IsAtomic()) + { + mFlags.ClearFlag(EPropertyFlag::IsAtomic); + } + } + else if (!mpScriptTemplate) + { + mFlags |= EPropertyFlag::IsArchetype; + } + + // Register the property if needed. + if (UsesNameMap()) + { + NPropertyMap::RegisterProperty(this); + } + + // Allow subclasses to handle any initialization tasks + PostInitialize(); + + // Now, route initialization to any child properties... + u32 ChildOffset = mOffset; + + for (int ChildIdx = 0; ChildIdx < mChildren.size(); ChildIdx++) + { + IProperty* pChild = mChildren[ChildIdx]; + + // update offset and round up to the child's alignment + if (ChildIdx > 0) + { + ChildOffset += mChildren[ChildIdx-1]->DataSize(); + } + ChildOffset = ALIGN(ChildOffset, pChild->DataAlignment()); + + // Don't call Initialize on intrinsic children as they have already been initialized. + if (!pChild->IsIntrinsic()) + { + pChild->Initialize(this, pInTemplate, ChildOffset); + } + } + + mFlags |= EPropertyFlag::IsInitialized; +} + +void* IProperty::RawValuePtr(void* pData) const +{ + // For array archetypes, the caller needs to provide the pointer to the correct array item + // Array archetypes can't store their index in the array so it's impossible to determine the correct pointer. + void* pBasePtr = (mpPointerParent && !IsArrayArchetype() ? mpPointerParent->GetChildDataPointer(pData) : pData); + void* pValuePtr = ((char*)pBasePtr + mOffset); + return pValuePtr; +} + +IProperty* IProperty::ChildByID(u32 ID) const +{ + for (u32 ChildIdx = 0; ChildIdx < mChildren.size(); ChildIdx++) + { + if (mChildren[ChildIdx]->mID == ID) + return mChildren[ChildIdx]; + } + + return nullptr; +} + +IProperty* IProperty::ChildByIDString(const TIDString& rkIdString) +{ + // String must contain at least one ID! + // some ID strings are formatted with 8 characters and some with 2 (plus the beginning "0x") + ASSERT(rkIdString.Size() >= 4); + + u32 IDEndPos = rkIdString.IndexOf(':'); + u32 NextChildID = -1; + + if (IDEndPos == -1) + NextChildID = rkIdString.ToInt32(); + else + NextChildID = rkIdString.SubString(2, IDEndPos - 2).ToInt32(); + + if (NextChildID == 0xFFFFFFFF) + { + return nullptr; + } + + IProperty* pNextChild = ChildByID(NextChildID); + + // Check if we need to recurse + if (IDEndPos != -1) + { + return pNextChild->ChildByIDString(rkIdString.ChopFront(IDEndPos + 1)); + } + else + { + return pNextChild; + } +} + +void IProperty::GatherAllSubInstances(std::list& OutList, bool Recursive) +{ + OutList.push_back(this); + + for( u32 SubIdx = 0; SubIdx < mSubInstances.size(); SubIdx++ ) + { + IProperty* pSubInstance = mSubInstances[SubIdx]; + + if( Recursive ) + pSubInstance->GatherAllSubInstances( OutList, true ); + else + OutList.push_back( pSubInstance ); + } +} + +TString IProperty::GetTemplateFileName() +{ + // We want to return the path to the XML file that this property originally belongs to. + // So, for example, if this is a property of a script template, we want to return that script template. + // However, if this property was copied from a property archetype... If we are a direct instance of an + // archetype property (for instance a DamageInfo struct instance), then we want to return the template + // that contains the instance. However, if we are a sub-property of an archetype, then we want to return + // the path to that archetype instead. Hopefully that makes sense! + IProperty* pTemplateRoot = this; + + // If our archetype has a parent, then our archetype is a sub-property of the main archetype, and we + // need to go deeper to find the original source XML file. + // + // If our archetype doesn't have a parent, then we are an instance of the main archetype, and we stop here. + while (pTemplateRoot->Archetype() && pTemplateRoot->Archetype()->Parent()) + { + pTemplateRoot = pTemplateRoot->Archetype(); + } + pTemplateRoot = pTemplateRoot->RootParent(); + + // Now that we have the base property of our template, we can return the file path. + static const u32 kChopAmount = strlen("../templates/"); + + if (pTemplateRoot->ScriptTemplate()) + { + return pTemplateRoot->ScriptTemplate()->SourceFile().ChopFront(kChopAmount); + } + else + { + CGameTemplate* pGameTemplate = NGameList::GetGameTemplate(Game()); + return pGameTemplate->GetPropertyArchetypeFilePath( pTemplateRoot->Name() ).ChopFront(kChopAmount); + } +} + +bool IProperty::ShouldCook(void* pPropertyData) const +{ + switch (mCookPreference) + { + case ECookPreference::Always: + return true; + + case ECookPreference::Never: + return false; + + default: + return (Game() < EGame::DKCReturns ? true : !MatchesDefault(pPropertyData)); + } +} + +void IProperty::SetName(const TString& rkNewName) +{ + if (mName != rkNewName) + { + mName = rkNewName; + mFlags.ClearFlag(EPropertyFlag::HasCachedNameCheck); + MarkDirty(); + } +} + +void IProperty::SetDescription(const TString& rkNewDescription) +{ + if (mDescription != rkNewDescription) + { + mDescription = rkNewDescription; + MarkDirty(); + } +} + +void IProperty::SetSuffix(const TString& rkNewSuffix) +{ + if (mSuffix != rkNewSuffix) + { + mSuffix = rkNewSuffix; + MarkDirty(); + } +} + +void IProperty::MarkDirty() +{ + // Don't allow properties to be marked dirty before they are fully initialized. + if (IsInitialized()) + { + // Mark the root parent as dirty so the template file will get resaved + RootParent()->mFlags |= EPropertyFlag::IsDirty; + + // Clear property name cache in case something has been modified that affects the hash + mFlags &= ~(EPropertyFlag::HasCachedNameCheck | EPropertyFlag::HasCorrectPropertyName); + + // Mark sub-instances as dirty since they may need to resave as well + for (u32 SubIdx = 0; SubIdx < mSubInstances.size(); SubIdx++) + { + mSubInstances[SubIdx]->MarkDirty(); + } + } +} + +void IProperty::ClearDirtyFlag() +{ + RootParent()->mFlags &= ~EPropertyFlag::IsDirty; +} + +bool IProperty::ConvertType(EPropertyType NewType, IProperty* pNewArchetype /*= nullptr*/) +{ + if (mpArchetype && !pNewArchetype) + { + // We need to start from the root archetype and cascade down sub-instances. + // The archetype will re-call this function with a valid pNewArchetype pointer. + return mpArchetype->ConvertType(NewType, nullptr); + } + + IProperty* pNewProperty = Create(NewType, Game()); + + // We can only replace properties with types that have the same size and alignment + if( pNewProperty->DataSize() != DataSize() || pNewProperty->DataAlignment() != DataAlignment() ) + { + delete pNewProperty; + return false; + } + + // Use InitFromArchetype to copy most parameters over from the original property. + // Note we do *not* want to call the virtual version, because the new property isn't + // actually the same type, so the virtual overrides will likely crash. + pNewProperty->IProperty::InitFromArchetype(this); + pNewProperty->mpArchetype = pNewArchetype; + NBasics::VectorRemoveOne(mSubInstances, pNewProperty); + + if( pNewArchetype ) + { + pNewArchetype->mSubInstances.push_back(pNewProperty); + } + + // We use CopyDefaultValueTo to ensure that the default value is preserved (as the default value + // is important in most games, and necessary to cook correctly in DKCR). However, note that + // other type-specific parameters (such as min/max values) are lost in the conversion. + CopyDefaultValueTo(pNewProperty); + + // Since we are about to delete this property, we need to unregister it and all its sub-instances + // from the name map, and change the type name. The reason we need to do it this way is because + // after we change the type name in the map, we won't be able to unregister the original properties + // because their type name won't match what's in the map. However, the change has to be done before + // initializing any new properties, or else they won't be able to initialize correctly, as the + // name won't be tracked in the map under the new type name. So we need to manually unregister + // everything to clear the original properties from the map, then change the type name, and then + // we're free to start creating and initializing new properties. + if (IsRootArchetype() && mGame >= EGame::EchoesDemo) + { + std::list SubInstances; + GatherAllSubInstances(SubInstances, true); + + for (auto Iter = SubInstances.begin(); Iter != SubInstances.end(); Iter++) + { + IProperty* pProperty = *Iter; + + if (pProperty->UsesNameMap()) + { + NPropertyMap::UnregisterProperty(pProperty); + } + } + + NPropertyMap::ChangeTypeName(this, HashableTypeName(), pNewProperty->HashableTypeName()); + } + + // Swap out our parent's reference to us to point to the new property. + if (mpParent) + { + for (u32 SiblingIdx = 0; SiblingIdx < mpParent->mChildren.size(); SiblingIdx++) + { + IProperty* pSibling = mpParent->mChildren[SiblingIdx]; + if (pSibling == this) + { + mpParent->mChildren[SiblingIdx] = pNewProperty; + break; + } + } + } + + // Change all our child properties to be parented under the new property. (Is this adoption?) + for (u32 ChildIdx = 0; ChildIdx < mChildren.size(); ChildIdx++) + { + mChildren[ChildIdx]->mpParent = pNewProperty; + pNewProperty->mChildren.push_back(mChildren[ChildIdx]); + } + ASSERT( pNewProperty->mChildren.size() == mChildren.size() ); + mChildren.clear(); + + // Create new versions of all sub-instances that inherit from the new property. + // Note that when the sub-instances complete their conversion, they delete themselves. + // The IProperty destructor removes the property from the archetype's sub-instance list. + // So we shouldn't use a for loop, instead we should just wait until the array is empty + u32 SubCount = mSubInstances.size(); + + while (!mSubInstances.empty()) + { + bool SubSuccess = mSubInstances[0]->ConvertType(NewType, pNewProperty); + ASSERT( SubSuccess ); + } + ASSERT( pNewProperty->mSubInstances.size() == SubCount ); + + // Conversion is complete! Initialize the new property and flag it dirty. + pNewProperty->Initialize( mpParent, mpScriptTemplate, mOffset ); + pNewProperty->MarkDirty(); + + // Finally, if we are done converting this property and all its instances, resave the templates. + if (IsRootArchetype()) + { + NGameList::SaveTemplates(); + + if (mGame >= EGame::EchoesDemo) + { + NPropertyMap::SaveMap(true); + } + } + + // We're done! + delete this; + return true; +} + +bool IProperty::UsesNameMap() +{ + return Game() >= EGame::EchoesDemo && + !IsRootParent() && + !IsIntrinsic() && + !mpParent->IsAtomic() && // Atomic properties can use the name map, but their children shouldn't + !IsArrayArchetype(); +} + +bool IProperty::HasAccurateName() +{ + // Exceptions for the three hardcoded 4CC property IDs, and for 0xFFFFFFFF (root properties) + if (mID == FOURCC('XFRM') || + mID == FOURCC('INAM') || + mID == FOURCC('ACTV') || + mID == 0xFFFFFFFF) + { + return true; + } + + // Children of atomic properties defer to parents. Intrinsic properties and array archetypes also defer to parents. + if ( (mpParent && mpParent->IsAtomic()) || IsIntrinsic() || IsArrayArchetype() ) + { + if (mpParent) + return mpParent->HasAccurateName(); + else + return true; + } + + // For everything else, hash the property name and check if it is a match for the property ID + if (!mFlags.HasFlag(EPropertyFlag::HasCachedNameCheck)) + { + CCRC32 Hash; + Hash.Hash(*mName); + Hash.Hash(HashableTypeName()); + u32 GeneratedID = Hash.Digest(); + + // Some choice properties are incorrectly declared as ints, so account for + // this and allow matching ints against choice typenames as well. + if (GeneratedID != mID && Type() == EPropertyType::Int) + { + Hash = CCRC32(); + Hash.Hash(*mName); + Hash.Hash("choice"); + GeneratedID = Hash.Digest(); + } + + if (GeneratedID == mID) + { + mFlags.SetFlag( EPropertyFlag::HasCorrectPropertyName ); + } + else + { + mFlags.ClearFlag( EPropertyFlag::HasCorrectPropertyName ); + } + + mFlags.SetFlag(EPropertyFlag::HasCachedNameCheck); + } + + return mFlags.HasFlag( EPropertyFlag::HasCorrectPropertyName ); +} + +/** IProperty Accessors */ +EGame IProperty::Game() const +{ + return mGame; +} + +IProperty* IProperty::Create(EPropertyType Type, + EGame Game) +{ + IProperty* pOut = nullptr; + + switch (Type) + { + case EPropertyType::Bool: pOut = new CBoolProperty(Game); break; + case EPropertyType::Byte: pOut = new CByteProperty(Game); break; + case EPropertyType::Short: pOut = new CShortProperty(Game); break; + case EPropertyType::Int: pOut = new CIntProperty(Game); break; + case EPropertyType::Float: pOut = new CFloatProperty(Game); break; + case EPropertyType::Choice: pOut = new CChoiceProperty(Game); break; + case EPropertyType::Enum: pOut = new CEnumProperty(Game); break; + case EPropertyType::Flags: pOut = new CFlagsProperty(Game); break; + case EPropertyType::String: pOut = new CStringProperty(Game); break; + case EPropertyType::Vector: pOut = new CVectorProperty(Game); break; + case EPropertyType::Color: pOut = new CColorProperty(Game); break; + case EPropertyType::Asset: pOut = new CAssetProperty(Game); break; + case EPropertyType::Sound: pOut = new CSoundProperty(Game); break; + case EPropertyType::Animation: pOut = new CAnimationProperty(Game); break; + case EPropertyType::AnimationSet: pOut = new CAnimationSetProperty(Game); break; + case EPropertyType::Sequence: pOut = new CSequenceProperty(Game); break; + case EPropertyType::Spline: pOut = new CSplineProperty(Game); break; + case EPropertyType::Guid: pOut = new CGuidProperty(Game); break; + case EPropertyType::Pointer: pOut = new CPointerProperty(Game); break; + case EPropertyType::Struct: pOut = new CStructProperty(Game); break; + case EPropertyType::Array: pOut = new CArrayProperty(Game); break; + } + + // If this assertion fails, then there is an unhandled type! + ASSERT(pOut != nullptr); + return pOut; +} + +IProperty* IProperty::CreateCopy(IProperty* pArchetype) +{ + IProperty* pOut = Create(pArchetype->Type(), pArchetype->mGame); + pOut->InitFromArchetype(pArchetype); + return pOut; +} + +IProperty* IProperty::CreateIntrinsic(EPropertyType Type, + EGame Game, + u32 Offset, + const TString& rkName) +{ + IProperty* pOut = Create(Type, Game); + pOut->mFlags |= EPropertyFlag::IsIntrinsic; + pOut->SetName(rkName); + pOut->Initialize(nullptr, nullptr, Offset); + return pOut; +} + +IProperty* IProperty::CreateIntrinsic(EPropertyType Type, + IProperty* pParent, + u32 Offset, + const TString& rkName) +{ + // pParent should always be valid. + // If you are creating a root property, call the other overload takes an EGame instead of a parent. + ASSERT(pParent != nullptr); + + IProperty* pOut = Create(Type, pParent->mGame); + pOut->mFlags |= EPropertyFlag::IsIntrinsic; + pOut->SetName(rkName); + pOut->Initialize(pParent, nullptr, Offset); + pParent->mChildren.push_back(pOut); + return pOut; +} + +IProperty* IProperty::ArchiveConstructor(EPropertyType Type, + const IArchive& Arc) +{ + return Create(Type, Arc.Game()); +} diff --git a/src/Core/Resource/Script/Property/IProperty.h b/src/Core/Resource/Script/Property/IProperty.h new file mode 100644 index 00000000..f492fee8 --- /dev/null +++ b/src/Core/Resource/Script/Property/IProperty.h @@ -0,0 +1,545 @@ +#ifndef IPROPERTY_H +#define IPROPERTY_H + +#include "Core/Resource/Animation/CAnimationParameters.h" +#include +#include +#include + +#include + +/** Forward declares */ +class CGameTemplate; +class CScriptTemplate; +class CStructProperty; + +/** Typedefs */ +typedef TString TIDString; + +/** Property flags */ +enum class EPropertyFlag : u32 +{ + /** Property has been fully initialized and has had PostLoad called */ + IsInitialized = 0x1, + /** Property is an archetype (a template for other properties to copy from) */ + IsArchetype = 0x2, + /** Property is an array archetype (a template for elements of an array property) */ + IsArrayArchetype = 0x4, + /** This property and all its children are a single unit and do not have individual property IDs, sizes, etc. */ + IsAtomic = 0x8, + /** This is a property of a C++ class, not a script object */ + IsIntrinsic = 0x10, + /** Property has been modified, and needs to be resaved. Only valid on archetypes */ + IsDirty = 0x20, + /** We have cached whether the property name is correct */ + HasCachedNameCheck = 0x40000000, + /** The name of the property is a match for the property ID hash */ + HasCorrectPropertyName = 0x80000000, + + /** Flags that are left intact when copying from an archetype */ + ArchetypeCopyFlags = EPropertyFlag::IsAtomic, + /** Flags that are inheritable from parent */ + InheritableFlags = EPropertyFlag::IsArchetype | EPropertyFlag::IsArrayArchetype | EPropertyFlag::IsAtomic, +}; +DECLARE_FLAGS_ENUMCLASS(EPropertyFlag, FPropertyFlags) + +/** Property type */ +enum class EPropertyType +{ + Bool = FOURCC('BOOL'), + Byte = FOURCC('BYTE'), + Short = FOURCC('SHRT'), + Int = FOURCC('INT '), + Float = FOURCC('REAL'), + Choice = FOURCC('CHOI'), + Enum = FOURCC('ENUM'), + Flags = FOURCC('FLAG'), + String = FOURCC('STRG'), + Vector = FOURCC('VECT'), + Color = FOURCC('COLR'), + Asset = FOURCC('ASST'), + Sound = FOURCC('SOND'), + Animation = FOURCC('ANIM'), + AnimationSet = FOURCC('ANMS'), + Sequence = FOURCC('SQNC'), + Spline = FOURCC('SPLN'), + Guid = FOURCC('GUID'), + Pointer = FOURCC('PNTR'), + Struct = FOURCC('STRC'), + Array = FOURCC('ARRY'), + Invalid = FOURCC('INVD') +}; + +inline const char* PropEnumToHashableTypeName(EPropertyType Type) +{ + switch (Type) + { + // these names are required to generate accurate property ID hashes + case EPropertyType::Bool: return "bool"; + case EPropertyType::Int: return "int"; + case EPropertyType::Float: return "float"; + case EPropertyType::Choice: return "choice"; + case EPropertyType::Enum: return "enum"; + case EPropertyType::Flags: return "Flags"; + case EPropertyType::String: return "string"; + case EPropertyType::Vector: return "Vector"; + case EPropertyType::Color: return "Color"; + case EPropertyType::Asset: return "asset"; + case EPropertyType::Sound: return "sound"; + case EPropertyType::Spline: return "spline"; + case EPropertyType::Guid: return "guid"; + // unknown hashable types - used in hashes but these names are inaccurate + case EPropertyType::Animation: return "animation"; + case EPropertyType::Sequence: return "sequence"; + // non hashable types - not used in ID hashes but still displayed on the UI + case EPropertyType::Byte: return "byte"; + case EPropertyType::Short: return "short"; + case EPropertyType::Array: return "array"; + // fallback + default: return ""; + } +} + +/** Enum that describes when/how properties should be cooked out */ +enum class ECookPreference +{ + Default, + Always, + Never +}; + +/** New property class */ +class IProperty +{ +protected: + /** Flags */ + FPropertyFlags mFlags; + + /** Parent property */ + IProperty* mpParent; + + /** Pointer parent; if non-null, this parent needs to be dereferenced to access the correct + * memory region that our property data is stored in */ + IProperty* mpPointerParent; + + /** Archetype property; source property that we copied metadata from */ + IProperty* mpArchetype; + + /** Sub-instances of archetype properties. For non-archetypes, will be empty. + * @todo this really oughta be a linked list */ + std::vector mSubInstances; + + /** Child properties; these appear underneath this property on the UI */ + std::vector mChildren; + + /** Game this property belongs to */ + EGame mGame; + + /** Script template that this property belongs to. Null for struct/enum/flag archetypes. */ + CScriptTemplate* mpScriptTemplate; + + /** Offset of this property within the property block */ + u32 mOffset; + + /** Property ID. This ID is used to uniquely identify this property within this struct. */ + u32 mID; + + /** Property metadata */ + TString mName; + TString mDescription; + TString mSuffix; + ECookPreference mCookPreference; + + /** Min/max allowed version number. These numbers correspond to the game's internal build number. + * This is not used yet but in the future it can be used to configure certain properties to only + * show up when certain versions of the game are being edited. The default values allow the + * property to show up in all versions. */ + float mMinVersion; + float mMaxVersion; + + /** Private constructor - use static methods to instantiate */ + IProperty(EGame Game); + void _ClearChildren(); + +public: + virtual ~IProperty(); + + /** Interface */ + virtual EPropertyType Type() const = 0; + virtual u32 DataSize() const = 0; + virtual u32 DataAlignment() const = 0; + virtual void Construct(void* pData) const = 0; + virtual void Destruct(void* pData) const = 0; + virtual bool MatchesDefault(void* pData) const = 0; + virtual void RevertToDefault(void* pData) const = 0; + virtual void SerializeValue(void* pData, IArchive& Arc) const = 0; + + virtual void PostInitialize() {} + virtual void PropertyValueChanged(void* pPropertyData) {} + virtual void CopyDefaultValueTo(IProperty* pOtherProperty) {} + virtual bool IsNumericalType() const { return false; } + virtual bool IsPointerType() const { return false; } + virtual TString ValueAsString(void* pData) const { return ""; } + virtual const char* HashableTypeName() const; + virtual void* GetChildDataPointer(void* pPropertyData) const; + virtual void Serialize(IArchive& rArc); + virtual void InitFromArchetype(IProperty* pOther); + virtual bool ShouldSerialize() const; + + /** Utility methods */ + void Initialize(IProperty* pInParent, CScriptTemplate* pInTemplate, u32 InOffset); + void* RawValuePtr(void* pData) const; + IProperty* ChildByID(u32 ID) const; + IProperty* ChildByIDString(const TIDString& rkIdString); + void GatherAllSubInstances(std::list& OutList, bool Recursive); + TString GetTemplateFileName(); + bool ShouldCook(void* pPropertyData) const; + void SetName(const TString& rkNewName); + void SetDescription(const TString& rkNewDescription); + void SetSuffix(const TString& rkNewSuffix); + void MarkDirty(); + void ClearDirtyFlag(); + bool ConvertType(EPropertyType NewType, IProperty* pNewArchetype = nullptr); + bool UsesNameMap(); + bool HasAccurateName(); + + /** Accessors */ + EGame Game() const; + inline ECookPreference CookPreference() const; + inline u32 NumChildren() const; + inline IProperty* ChildByIndex(u32 ChildIndex) const; + inline IProperty* Parent() const; + inline IProperty* RootParent(); + inline IProperty* Archetype() const; + inline IProperty* RootArchetype(); + inline CScriptTemplate* ScriptTemplate() const; + inline TString Name() const; + inline TString Description() const; + inline TString Suffix() const; + inline TIDString IDString(bool FullyQualified) const; + inline u32 Offset() const; + inline u32 ID() const; + + inline bool IsInitialized() const { return mFlags.HasFlag(EPropertyFlag::IsInitialized); } + inline bool IsArchetype() const { return mFlags.HasFlag(EPropertyFlag::IsArchetype); } + inline bool IsArrayArchetype() const { return mFlags.HasFlag(EPropertyFlag::IsArrayArchetype); } + inline bool IsAtomic() const { return mFlags.HasFlag(EPropertyFlag::IsAtomic); } + inline bool IsIntrinsic() const { return mFlags.HasFlag(EPropertyFlag::IsIntrinsic); } + inline bool IsDirty() const { return mFlags.HasFlag(EPropertyFlag::IsDirty); } + inline bool IsRootParent() const { return mpParent == nullptr; } + inline bool IsRootArchetype() const { return mpArchetype == nullptr; } + + /** Create */ + static IProperty* Create(EPropertyType Type, + EGame Game); + + static IProperty* CreateCopy(IProperty* pArchetype); + + static IProperty* CreateIntrinsic(EPropertyType Type, + EGame Game, + u32 Offset, + const TString& rkName); + + static IProperty* CreateIntrinsic(EPropertyType Type, + IProperty* pParent, + u32 Offset, + const TString& rkName); + + static IProperty* ArchiveConstructor(EPropertyType Type, + const IArchive& Arc); +}; + +inline ECookPreference IProperty::CookPreference() const +{ + return mCookPreference; +} + +inline u32 IProperty::NumChildren() const +{ + return mChildren.size(); +} + +inline IProperty* IProperty::ChildByIndex(u32 ChildIndex) const +{ + ASSERT(ChildIndex >= 0 && ChildIndex < mChildren.size()); + return mChildren[ChildIndex]; +} + +inline IProperty* IProperty::Parent() const +{ + return mpParent; +} + +inline IProperty* IProperty::RootParent() +{ + IProperty* pParent = Parent(); + IProperty* pOut = this; + + while (pParent) + { + pOut = pParent; + pParent = pParent->Parent(); + } + + return pOut; +} + +inline IProperty* IProperty::Archetype() const +{ + return mpArchetype; +} + +inline IProperty* IProperty::RootArchetype() +{ + IProperty* pArchetype = Archetype(); + IProperty* pOut = this; + + while (pArchetype) + { + pOut = pArchetype; + pArchetype = pArchetype->Archetype(); + } + + return pOut; +} + +inline CScriptTemplate* IProperty::ScriptTemplate() const +{ + return mpScriptTemplate; +} + +inline TString IProperty::Name() const +{ + return mName; +} + +inline TString IProperty::Description() const +{ + return mDescription; +} + +inline TString IProperty::Suffix() const +{ + return mSuffix; +} + +inline TString IProperty::IDString(bool FullyQualified) const +{ + if (FullyQualified && mpParent != nullptr && mpParent->Parent() != nullptr) + return mpParent->IDString(FullyQualified) + ":" + TString::HexString(mID); + else + return TString::HexString(mID); +} + +inline u32 IProperty::Offset() const +{ + return mOffset; +} + +inline u32 IProperty::ID() const +{ + return mID; +} + +template +class TTypedProperty : public IProperty +{ + friend class IProperty; + friend class CTemplateLoader; +public: + typedef PropType ValueType; + +protected: + PropType mDefaultValue; + + TTypedProperty(EGame Game) + : IProperty(Game) + { + memset(&mDefaultValue, 0, sizeof(PropType)); + } + +public: + virtual EPropertyType Type() const { return PropEnum; } + virtual u32 DataSize() const { return sizeof(PropType); } + virtual u32 DataAlignment() const { return alignof(PropType); } + virtual void Construct(void* pData) const { new(ValuePtr(pData)) PropType(mDefaultValue); } + virtual void Destruct(void* pData) const { ValueRef(pData).~PropType(); } + virtual bool MatchesDefault(void* pData) const { return ValueRef(pData) == mDefaultValue; } + virtual void RevertToDefault(void* pData) const { ValueRef(pData) = mDefaultValue; } + + virtual bool CanHaveDefault() const { return true; } + + virtual void InitFromArchetype(IProperty* pOther) + { + IProperty::InitFromArchetype(pOther); + mDefaultValue = static_cast(pOther)->mDefaultValue; + } + + virtual void CopyDefaultValueTo(IProperty* pOtherProperty) + { + // WARNING: We don't do any type checking here because this function is used for type conversion, + // which necessitates that the property class is allowed to be different. The underlying type is + // assumed to be the same. It is the caller's responsibility to ensure this function is not called + // with incompatible property types. + TTypedProperty* pTypedOther = static_cast(pOtherProperty); + pTypedOther->mDefaultValue = mDefaultValue; + } + + inline PropType* ValuePtr(void* pData) const + { + return (PropType*) RawValuePtr(pData); + } + + inline PropType& ValueRef(void* pData) const + { + return *ValuePtr(pData); + } + + inline PropType Value(void* pData) const + { + return *ValuePtr(pData); + } + + inline const PropType& DefaultValue() const + { + return mDefaultValue; + } + + inline void SetDefaultValue(const PropType& kInDefaultValue) + { + mDefaultValue = kInDefaultValue; + } + + inline static EPropertyType StaticType() { return PropEnum; } +}; + +template +class TSerializeableTypedProperty : public TTypedProperty +{ +protected: + TSerializeableTypedProperty(EGame Game) + : TTypedProperty(Game) + {} + +public: + virtual void Serialize(IArchive& rArc) + { + TTypedProperty::Serialize(rArc); + TSerializeableTypedProperty* pArchetype = static_cast(mpArchetype); + + // Determine if default value should be serialized as optional. + // All MP1 properties should be optional. For MP2 and on, we set optional + // on property types that don't have default values in the game executable. + bool MakeOptional = false; + + if (Game() <= EGame::Prime || pArchetype != nullptr) + { + MakeOptional = true; + } + else + { + switch (Type()) + { + case EPropertyType::String: + case EPropertyType::Asset: + case EPropertyType::Animation: + case EPropertyType::AnimationSet: + case EPropertyType::Sequence: + case EPropertyType::Spline: + case EPropertyType::Guid: + MakeOptional = true; + break; + } + } + + // Branch here to avoid constructing a default value if we don't need to. + if (MakeOptional) + rArc << SerialParameter("DefaultValue", mDefaultValue, SH_Optional, pArchetype ? pArchetype->mDefaultValue : GetSerializationDefaultValue()); + else + rArc << SerialParameter("DefaultValue", mDefaultValue); + } + + virtual bool ShouldSerialize() const + { + TTypedProperty* pArchetype = static_cast(mpArchetype); + + return TTypedProperty::ShouldSerialize() || + !(mDefaultValue == pArchetype->DefaultValue()); + } + + /** Return default value for serialization - can be customized per type */ + virtual PropType GetSerializationDefaultValue() + { + return PropType(); + } +}; + +template +class TNumericalProperty : public TSerializeableTypedProperty +{ + friend class IProperty; + friend class CTemplateLoader; + +protected: + PropType mMinValue; + PropType mMaxValue; + + TNumericalProperty(EGame Game) + : TSerializeableTypedProperty(Game) + , mMinValue( -1 ) + , mMaxValue( -1 ) + {} + +public: + virtual void Serialize(IArchive& rArc) + { + TSerializeableTypedProperty::Serialize(rArc); + TNumericalProperty* pArchetype = static_cast(mpArchetype); + + rArc << SerialParameter("Min", mMinValue, SH_Optional, pArchetype ? pArchetype->mMinValue : (PropType) -1) + << SerialParameter("Max", mMaxValue, SH_Optional, pArchetype ? pArchetype->mMaxValue : (PropType) -1); + } + + virtual bool ShouldSerialize() const + { + TNumericalProperty* pArchetype = static_cast(mpArchetype); + return TSerializeableTypedProperty::ShouldSerialize() || + mMinValue != pArchetype->mMinValue || + mMaxValue != pArchetype->mMaxValue; + } + + virtual void InitFromArchetype(IProperty* pOther) + { + TSerializeableTypedProperty::InitFromArchetype(pOther); + TNumericalProperty* pCastOther = static_cast(pOther); + mMinValue = pCastOther->mMinValue; + mMaxValue = pCastOther->mMaxValue; + } + + virtual void PropertyValueChanged(void* pPropertyData) + { + TSerializeableTypedProperty::PropertyValueChanged(pPropertyData); + + if (mMinValue >= 0 && mMaxValue >= 0) + { + PropType& rValue = ValueRef(pPropertyData); + rValue = Math::Clamp(mMinValue, mMaxValue, rValue); + } + } +}; + +/** Property casting with dynamic type checking */ +template +inline PropertyClass* TPropCast(IProperty* pProperty) +{ + if (pProperty && pProperty->Type() == PropertyClass::StaticType()) + { + return static_cast(pProperty); + } + else + { + return nullptr; + } +} + +#endif // IPROPERTY_H diff --git a/src/Core/Resource/Script/Property/Properties.h b/src/Core/Resource/Script/Property/Properties.h new file mode 100644 index 00000000..4363f25c --- /dev/null +++ b/src/Core/Resource/Script/Property/Properties.h @@ -0,0 +1,27 @@ +#ifndef PROPERTIES_H +#define PROPERTIES_H + +#include "IProperty.h" +#include "CAnimationProperty.h" +#include "CAnimationSetProperty.h" +#include "CArrayProperty.h" +#include "CAssetProperty.h" +#include "CBoolProperty.h" +#include "CByteProperty.h" +#include "CColorProperty.h" +#include "CEnumProperty.h" +#include "CFlagsProperty.h" +#include "CFloatProperty.h" +#include "CGuidProperty.h" +#include "CIntProperty.h" +#include "CPointerProperty.h" +#include "CSequenceProperty.h" +#include "CShortProperty.h" +#include "CSoundProperty.h" +#include "CSplineProperty.h" +#include "CStringProperty.h" +#include "CStructProperty.h" +#include "CVectorProperty.h" +#include "TPropertyRef.h" + +#endif // PROPERTIES_H diff --git a/src/Core/Resource/Script/Property/TPropertyRef.h b/src/Core/Resource/Script/Property/TPropertyRef.h new file mode 100644 index 00000000..2b1598c7 --- /dev/null +++ b/src/Core/Resource/Script/Property/TPropertyRef.h @@ -0,0 +1,113 @@ +#ifndef TPROPERTYREF_H +#define TPROPERTYREF_H + +#include "CAnimationProperty.h" +#include "CAnimationSetProperty.h" +#include "CArrayProperty.h" +#include "CAssetProperty.h" +#include "CBoolProperty.h" +#include "CByteProperty.h" +#include "CColorProperty.h" +#include "CEnumProperty.h" +#include "CFlagsProperty.h" +#include "CFloatProperty.h" +#include "CGuidProperty.h" +#include "CIntProperty.h" +#include "CPointerProperty.h" +#include "CSequenceProperty.h" +#include "CShortProperty.h" +#include "CSoundProperty.h" +#include "CSplineProperty.h" +#include "CStringProperty.h" +#include "CStructProperty.h" +#include "CVectorProperty.h" + +/** TPropertyRef: Embeds a reference to a property on a specific object */ +template +class TPropertyRef +{ + /** Property data being referenced */ + void* mpPropertyData; + + /** Property being referenced */ + PropertyClass* mpProperty; + +public: + TPropertyRef() + : mpPropertyData(nullptr), mpProperty(nullptr) + {} + + explicit TPropertyRef(void* pInData, IProperty* pInProperty) + : mpPropertyData(pInData), mpProperty( TPropCast(pInProperty) ) + { + } + + explicit TPropertyRef(void* pInData, PropertyClass* pInProperty) + : mpPropertyData(pInData), mpProperty(pInProperty) + { + } + + /** Accessors */ + inline void* DataPointer() const { return mpPropertyData; } + inline PropertyClass* Property() const { return mpProperty; } + inline ValueType Get() const { return IsValid() ? *((ValueType*) mpProperty->RawValuePtr( mpPropertyData )) : ValueType(); } + inline void Set(const ValueType& kIn) const { if (IsValid()) *((ValueType*) mpProperty->RawValuePtr( mpPropertyData )) = kIn; } + inline bool IsValid() const { return mpPropertyData != nullptr && mpProperty != nullptr; } + + /** Inline operators */ + inline operator ValueType() const + { + return Get(); + } + + inline bool operator==(IProperty* pProperty) const + { + return mpProperty == pProperty; + } + + friend bool operator==(IProperty* pLeft, const TPropertyRef& kRight) + { + return pLeft == kRight.Property(); + } +}; + +/** Convenience typedefs */ +typedef TPropertyRef CBoolRef; +typedef TPropertyRef CByteRef; +typedef TPropertyRef CShortRef; +typedef TPropertyRef CIntRef; +typedef TPropertyRef CFloatRef; +typedef TPropertyRef CFlagsRef; +typedef TPropertyRef CStringRef; +typedef TPropertyRef CVectorRef; +typedef TPropertyRef CColorRef; +typedef TPropertyRef CAssetRef; +typedef TPropertyRef CSoundRef; +typedef TPropertyRef CAnimationRef; +typedef TPropertyRef CAnimationSetRef; +typedef TPropertyRef CSequenceRef; +typedef TPropertyRef CSplineRef; +typedef TPropertyRef CGuidRef; +typedef TPropertyRef CPointerRef; +typedef TPropertyRef CStructRef; +typedef TPropertyRef CArrayRef; + +/** Special version for enums */ +template +class TEnumRef : public TPropertyRef +{ +public: + TEnumRef() + : TPropertyRef() + {} + + TEnumRef(void* pInData, IProperty* pInProperty) + : TPropertyRef(pInData, pInProperty) + {} + + TEnumRef(void* pInData, CEnumProperty* pInProperty) + : TPropertyRef(pInData, pInProperty) + {} +}; + +#endif // TPROPERTYREF_H diff --git a/src/Core/Resource/TResPtr.h b/src/Core/Resource/TResPtr.h index fc26c87f..738dc4b8 100644 --- a/src/Core/Resource/TResPtr.h +++ b/src/Core/Resource/TResPtr.h @@ -33,7 +33,7 @@ public: inline void Serialize(IArchive& rArc) { CAssetID ID = (mpRes && !rArc.IsReader() ? mpRes->ID() : CAssetID::InvalidID(rArc.Game())); - rArc.SerializePrimitive(ID); + rArc.SerializePrimitive(ID, 0); if (rArc.IsReader()) { diff --git a/src/Core/Scene/CCollisionNode.cpp b/src/Core/Scene/CCollisionNode.cpp index c6b6fc77..53719494 100644 --- a/src/Core/Scene/CCollisionNode.cpp +++ b/src/Core/Scene/CCollisionNode.cpp @@ -40,7 +40,7 @@ void CCollisionNode::Draw(FRenderOptions /*Options*/, int /*ComponentIndex*/, ER // Turn off backface culling EGame Game = mpScene->ActiveArea()->Game(); - bool ForceDisableBackfaceCull = (rkViewInfo.CollisionSettings.DrawBackfaces || Game == eReturns) && glIsEnabled(GL_CULL_FACE); + bool ForceDisableBackfaceCull = (rkViewInfo.CollisionSettings.DrawBackfaces || Game == EGame::DKCReturns) && glIsEnabled(GL_CULL_FACE); if (ForceDisableBackfaceCull) glDisable(GL_CULL_FACE); @@ -66,11 +66,11 @@ void CCollisionNode::Draw(FRenderOptions /*Options*/, int /*ComponentIndex*/, ER if (rkViewInfo.CollisionSettings.HighlightMask != 0 && (rMat.RawFlags() & rkViewInfo.CollisionSettings.HighlightMask) == rkViewInfo.CollisionSettings.HighlightMask) Tint *= CColor::skRed; - else if (Game != eReturns && rkViewInfo.CollisionSettings.TintWithSurfaceColor) + else if (Game != EGame::DKCReturns && rkViewInfo.CollisionSettings.TintWithSurfaceColor) Tint *= rMat.SurfaceColor(Game); - bool IsFloor = (rkViewInfo.CollisionSettings.TintUnwalkableTris ? rMat.IsFloor() : true) || Game == eReturns; - bool IsUnstandable = (rkViewInfo.CollisionSettings.TintUnwalkableTris ? rMat.IsUnstandable(Game) : false) && Game != eReturns; + bool IsFloor = (rkViewInfo.CollisionSettings.TintUnwalkableTris ? rMat.IsFloor() : true) || Game == EGame::DKCReturns; + bool IsUnstandable = (rkViewInfo.CollisionSettings.TintUnwalkableTris ? rMat.IsUnstandable(Game) : false) && Game != EGame::DKCReturns; CDrawUtil::UseCollisionShader(IsFloor, IsUnstandable, Tint); pMesh->DrawMaterial(iMat, false); @@ -86,7 +86,7 @@ void CCollisionNode::Draw(FRenderOptions /*Options*/, int /*ComponentIndex*/, ER // Draw collision bounds for area collision // note: right now checking parent is the best way to check whether this node is area collision instead of actor collision // actor collision will have a script node parent whereas area collision will have a root node parent - if (rkViewInfo.CollisionSettings.DrawAreaCollisionBounds && Parent()->NodeType() == eRootNode && Game != eReturns) + if (rkViewInfo.CollisionSettings.DrawAreaCollisionBounds && Parent()->NodeType() == eRootNode && Game != EGame::DKCReturns) CDrawUtil::DrawWireCube( mpCollision->MeshByIndex(0)->BoundingBox(), CColor::skRed ); } diff --git a/src/Core/Scene/CLightNode.cpp b/src/Core/Scene/CLightNode.cpp index 5e06ce41..6b418b62 100644 --- a/src/Core/Scene/CLightNode.cpp +++ b/src/Core/Scene/CLightNode.cpp @@ -125,6 +125,19 @@ SRayIntersection CLightNode::RayNodeIntersectTest(const CRay& rkRay, u32 AssetID return Out; } +CStructRef CLightNode::GetProperties() const +{ + return CStructRef(mpLight, mpLight->GetProperties()); +} + +void CLightNode::PropertyModified(IProperty* pProperty) +{ + CSceneNode::PropertyModified(pProperty); + + if (pProperty->Name() == "Position") + SetPosition( mpLight->Position() ); +} + CLight* CLightNode::Light() { return mpLight; diff --git a/src/Core/Scene/CLightNode.h b/src/Core/Scene/CLightNode.h index 51afc882..7734bf83 100644 --- a/src/Core/Scene/CLightNode.h +++ b/src/Core/Scene/CLightNode.h @@ -15,6 +15,8 @@ public: void DrawSelection(); void RayAABoxIntersectTest(CRayCollisionTester& Tester, const SViewInfo& ViewInfo); SRayIntersection RayNodeIntersectTest(const CRay &Ray, u32 AssetID, const SViewInfo& ViewInfo); + CStructRef GetProperties() const; + void PropertyModified(IProperty* pProperty); bool AllowsRotate() const { return false; } CLight* Light(); CVector2f BillboardScale(); diff --git a/src/Core/Scene/CSceneNode.h b/src/Core/Scene/CSceneNode.h index 04795d1b..1a0f45a2 100644 --- a/src/Core/Scene/CSceneNode.h +++ b/src/Core/Scene/CSceneNode.h @@ -69,6 +69,8 @@ public: virtual bool IsVisible() const; virtual CColor TintColor(const SViewInfo& rkViewInfo) const; virtual CColor WireframeColor() const; + virtual CStructRef GetProperties() const { return CStructRef(); } + virtual void PropertyModified(IProperty* pProperty) {} void OnLoadFinished(); void Unparent(); diff --git a/src/Core/Scene/CScriptAttachNode.cpp b/src/Core/Scene/CScriptAttachNode.cpp index d9b2542c..8ec74b1d 100644 --- a/src/Core/Scene/CScriptAttachNode.cpp +++ b/src/Core/Scene/CScriptAttachNode.cpp @@ -1,7 +1,7 @@ #include "CScriptAttachNode.h" #include "CScriptNode.h" #include "Core/Render/CRenderer.h" -#include "Core/Resource/Script/IProperty.h" +#include "Core/Resource/Script/Property/IProperty.h" #include CScriptAttachNode::CScriptAttachNode(CScene *pScene, const SAttachment& rkAttachment, CScriptNode *pParent) @@ -10,8 +10,11 @@ CScriptAttachNode::CScriptAttachNode(CScene *pScene, const SAttachment& rkAttach , mAttachType(rkAttachment.AttachType) , mLocatorName(rkAttachment.LocatorName) { - CPropertyStruct *pBaseStruct = pParent->Instance()->Properties(); - mpAttachAssetProp = pBaseStruct->PropertyByIDString(rkAttachment.AttachProperty); + CStructProperty* pBaseStruct = pParent->Template()->Properties(); + + mpAttachAssetProp = pBaseStruct->ChildByIDString(rkAttachment.AttachProperty); + mAttachAssetRef = CAssetRef(pParent->Instance()->PropertyData(), mpAttachAssetProp); + mAttachAnimSetRef = CAnimationSetRef(pParent->Instance()->PropertyData(), mpAttachAssetProp); if (mpAttachAssetProp) AttachPropertyModified(); ParentDisplayAssetChanged(mpScriptNode->DisplayAsset()); @@ -21,12 +24,12 @@ void CScriptAttachNode::AttachPropertyModified() { if (mpAttachAssetProp) { - if (mpAttachAssetProp->Type() == eAssetProperty) - mpAttachAsset = gpResourceStore->LoadResource( TPropCast(mpAttachAssetProp)->Get() ); - else if (mpAttachAssetProp->Type() == eCharacterProperty) - mpAttachAsset = TPropCast(mpAttachAssetProp)->Get().AnimSet(); + if (mAttachAssetRef.IsValid()) + mpAttachAsset = gpResourceStore->LoadResource(mAttachAssetRef.Get()); + else if (mAttachAnimSetRef.IsValid()) + mpAttachAsset = mAttachAnimSetRef.Get().AnimSet(); - CModel *pModel = Model(); + CModel* pModel = Model(); if (pModel && pModel->Type() == eModel) mLocalAABox = pModel->AABox(); @@ -37,11 +40,11 @@ void CScriptAttachNode::AttachPropertyModified() } } -void CScriptAttachNode::ParentDisplayAssetChanged(CResource *pNewDisplayAsset) +void CScriptAttachNode::ParentDisplayAssetChanged(CResource* pNewDisplayAsset) { if (pNewDisplayAsset->Type() == eAnimSet) { - CSkeleton *pSkel = mpScriptNode->ActiveSkeleton(); + CSkeleton* pSkel = mpScriptNode->ActiveSkeleton(); mpLocator = pSkel->BoneByName(mLocatorName); } @@ -60,11 +63,8 @@ CModel* CScriptAttachNode::Model() const if (mpAttachAsset->Type() == eModel) return static_cast(mpAttachAsset.RawPointer()); - if (mpAttachAsset->Type() == eAnimSet) - { - TCharacterProperty *pProp = TPropCast(mpAttachAssetProp); - return pProp->Get().GetCurrentModel(); - } + else if (mpAttachAsset->Type() == eAnimSet) + return mAttachAnimSetRef.Get().GetCurrentModel(); } return nullptr; diff --git a/src/Core/Scene/CScriptAttachNode.h b/src/Core/Scene/CScriptAttachNode.h index 5888de5a..67145017 100644 --- a/src/Core/Scene/CScriptAttachNode.h +++ b/src/Core/Scene/CScriptAttachNode.h @@ -2,20 +2,23 @@ #define CSCRIPTATTACHNODE_H #include "CSceneNode.h" -#include "Core/Resource/Script/IProperty.h" +#include "Core/Resource/Script/Property/Properties.h" #include "Core/Resource/Script/CScriptTemplate.h" class CScriptNode; class CScriptAttachNode : public CSceneNode { - CScriptNode *mpScriptNode; + CScriptNode* mpScriptNode; TResPtr mpAttachAsset; - IProperty *mpAttachAssetProp; + + IProperty* mpAttachAssetProp; + CAssetRef mAttachAssetRef; + CAnimationSetRef mAttachAnimSetRef; EAttachType mAttachType; TString mLocatorName; - CBone *mpLocator; + CBone* mpLocator; public: explicit CScriptAttachNode(CScene *pScene, const SAttachment& rkAttachment, CScriptNode *pParent); @@ -30,7 +33,7 @@ public: void RayAABoxIntersectTest(CRayCollisionTester& rTester, const SViewInfo& rkViewInfo); SRayIntersection RayNodeIntersectTest(const CRay& rkRay, u32 AssetID, const SViewInfo& rkViewInfo); - inline IProperty* AttachProperty() const { return mpAttachAssetProp; } + inline IProperty* AttachProperty() const { return mpAttachAssetProp; } inline TString LocatorName() const { return mLocatorName; } protected: diff --git a/src/Core/Scene/CScriptNode.cpp b/src/Core/Scene/CScriptNode.cpp index ed5b7bcc..186fd789 100644 --- a/src/Core/Scene/CScriptNode.cpp +++ b/src/Core/Scene/CScriptNode.cpp @@ -5,7 +5,7 @@ #include "Core/Render/CGraphics.h" #include "Core/Render/CRenderer.h" #include "Core/Resource/Animation/CAnimSet.h" -#include "Core/Resource/Script/CMasterTemplate.h" +#include "Core/Resource/Script/CGameTemplate.h" #include "Core/Resource/Script/CScriptLayer.h" #include "Core/ScriptExtra/CScriptExtra.h" #include @@ -31,7 +31,7 @@ CScriptNode::CScriptNode(CScene *pScene, u32 NodeID, CSceneNode *pParent, CScrip CScriptTemplate *pTemp = Template(); // Determine transform - mHasValidPosition = pTemp->HasPosition(); + mHasValidPosition = pTemp->PositionProperty() != nullptr; mPosition = mpInstance->Position(); mRotation = CQuaternion::FromEuler(mpInstance->Rotation()); mScale = mpInstance->Scale(); @@ -66,7 +66,7 @@ CScriptNode::CScriptNode(CScene *pScene, u32 NodeID, CSceneNode *pParent, CScrip } // Fetch LightParameters - mpLightParameters = new CLightParameters(mpInstance->LightParameters(), mpInstance->MasterTemplate()->Game()); + mpLightParameters = new CLightParameters(mpInstance->LightParameters(), mpInstance->GameTemplate()->Game()); SetLightLayerIndex(mpLightParameters->LightLayerIndex()); } @@ -99,15 +99,13 @@ void CScriptNode::OnTransformed() { if (mpInstance) { - CScriptTemplate *pTemplate = Template(); - - if (pTemplate->HasPosition() && LocalPosition() != mpInstance->Position()) + if (LocalPosition() != mpInstance->Position()) mpInstance->SetPosition(LocalPosition()); - if (pTemplate->HasRotation() && LocalRotation().ToEuler() != mpInstance->Rotation()) + if (LocalRotation().ToEuler() != mpInstance->Rotation()) mpInstance->SetRotation(LocalRotation().ToEuler()); - if (pTemplate->HasScale() && LocalScale() != mpInstance->Scale()) + if (LocalScale() != mpInstance->Scale()) mpInstance->SetScale(LocalScale()); } @@ -190,7 +188,7 @@ void CScriptNode::Draw(FRenderOptions Options, int /*ComponentIndex*/, ERenderCo else { // DKCR doesn't support world lighting yet, so light nodes that don't have ingame models with default lighting - if (Template()->Game() == eReturns && !mpInstance->HasInGameModel() && CGraphics::sLightMode == CGraphics::eWorldLighting) + if (Template()->Game() == EGame::DKCReturns && !mpInstance->HasInGameModel() && CGraphics::sLightMode == CGraphics::eWorldLighting) { CGraphics::SetDefaultLighting(); CGraphics::sVertexBlock.COLOR0_Amb = CGraphics::skDefaultAmbientColor; @@ -456,27 +454,34 @@ void CScriptNode::LinksModified() if (mpExtra) mpExtra->LinksModified(); } -void CScriptNode::PropertyModified(IProperty *pProp) +CStructRef CScriptNode::GetProperties() const +{ + return CStructRef(mpInstance->PropertyData(), mpInstance->Template()->Properties()); +} + +void CScriptNode::PropertyModified(IProperty* pProp) { // Update volume - if ( (pProp->Type() == eBoolProperty) || (pProp->Type() == eByteProperty) || (pProp->Type() == eShortProperty) || - (pProp->Type() == eLongProperty) || (pProp->Type() == eEnumProperty) ) + EPropertyType Type = pProp->Type(); + + if ( Type == EPropertyType::Bool || Type == EPropertyType::Byte || Type == EPropertyType::Short || + Type == EPropertyType::Int || Type == EPropertyType::Choice || Type == EPropertyType::Enum ) { mpInstance->EvaluateVolume(); UpdatePreviewVolume(); } // Update resources - if (pProp->Type() == eCharacterProperty) + else if (Type == EPropertyType::AnimationSet) { mpInstance->EvaluateDisplayAsset(); SetDisplayAsset(mpInstance->DisplayAsset()); } - else if (pProp->Type() == eAssetProperty) + else if (Type == EPropertyType::Asset) { - CAssetTemplate *pAssetTemp = static_cast(pProp->Template()); - const CResTypeFilter& rkFilter = pAssetTemp->TypeFilter(); + CAssetProperty* pAssetProperty = TPropCast(pProp); + const CResTypeFilter& rkFilter = pAssetProperty->GetTypeFilter(); if (rkFilter.Accepts(eModel) || rkFilter.Accepts(eTexture) || rkFilter.Accepts(eAnimSet) || rkFilter.Accepts(eCharacter)) { @@ -491,40 +496,37 @@ void CScriptNode::PropertyModified(IProperty *pProp) } // Update other editor properties - if (mpInstance->IsEditorProperty(pProp)) - { - CScriptTemplate *pTemplate = Template(); + CScriptTemplate *pTemplate = Template(); - if (pTemplate->HasName()) - SetName("[" + mpInstance->Template()->Name() + "] " + mpInstance->InstanceName()); + if (pProp == pTemplate->NameProperty()) + SetName("[" + mpInstance->Template()->Name() + "] " + mpInstance->InstanceName()); - if (pTemplate->HasPosition()) - mPosition = mpInstance->Position(); + else if (pProp == pTemplate->PositionProperty() || pProp->Parent() == pTemplate->PositionProperty()) + mPosition = mpInstance->Position(); - if (pTemplate->HasRotation()) - mRotation = CQuaternion::FromEuler(mpInstance->Rotation()); + else if (pProp == pTemplate->RotationProperty() || pProp->Parent() == pTemplate->RotationProperty()) + mRotation = CQuaternion::FromEuler(mpInstance->Rotation()); - if (pTemplate->HasScale()) - mScale = mpInstance->Scale(); + else if (pProp == pTemplate->ScaleProperty() || pProp->Parent() == pTemplate->ScaleProperty()) + mScale = mpInstance->Scale(); - MarkTransformChanged(); - SetLightLayerIndex(mpLightParameters->LightLayerIndex()); - } + MarkTransformChanged(); + SetLightLayerIndex(mpLightParameters->LightLayerIndex()); // Notify attachments - for (u32 iAttach = 0; iAttach < mAttachments.size(); iAttach++) + for (u32 AttachIdx = 0; AttachIdx < mAttachments.size(); AttachIdx++) { - CScriptAttachNode *pAttach = mAttachments[iAttach]; + CScriptAttachNode* pAttachNode = mAttachments[AttachIdx]; - if (pAttach->AttachProperty() == pProp) - pAttach->AttachPropertyModified(); + if (pAttachNode->AttachProperty() == pProp) + pAttachNode->AttachPropertyModified(); } // Notify script extra if (mpExtra) mpExtra->PropertyModified(pProp); // Update game mode visibility - if (pProp && pProp == mpInstance->ActiveProperty()) + if (pProp && pProp == pTemplate->ActiveProperty()) TestGameModeVisibility(); } @@ -563,7 +565,7 @@ void CScriptNode::GeneratePosition() if (!mHasValidPosition) { // Default to center of the active area; this is to prevent recursion issues - CTransform4f& AreaTransform = mpScene->ActiveArea()->Transform(); + CTransform4f AreaTransform = mpScene->ActiveArea()->Transform(); mPosition = CVector3f(AreaTransform[0][3], AreaTransform[1][3], AreaTransform[2][3]); mHasValidPosition = true; MarkTransformChanged(); @@ -622,7 +624,7 @@ void CScriptNode::GeneratePosition() void CScriptNode::TestGameModeVisibility() { // Don't render if we don't have an ingame model, or if this is the Prime series and the instance is not active. - if ((Template()->Game() < eReturns && !mpInstance->IsActive()) || !mpInstance->HasInGameModel()) + if ((Template()->Game() < EGame::DKCReturns && !mpInstance->IsActive()) || !mpInstance->HasInGameModel()) mGameModeVisibility = eNotVisible; // If this is Returns, only render if the instance is active OR if it has a near visible activation. diff --git a/src/Core/Scene/CScriptNode.h b/src/Core/Scene/CScriptNode.h index 627a22e3..af358cad 100644 --- a/src/Core/Scene/CScriptNode.h +++ b/src/Core/Scene/CScriptNode.h @@ -47,9 +47,10 @@ public: bool IsVisible() const; CColor TintColor(const SViewInfo& rkViewInfo) const; CColor WireframeColor() const; + CStructRef GetProperties() const; + void PropertyModified(IProperty* pProp); void LinksModified(); - void PropertyModified(IProperty *pProp); void UpdatePreviewVolume(); void GeneratePosition(); void TestGameModeVisibility(); diff --git a/src/Core/ScriptExtra/CDamageableTriggerExtra.cpp b/src/Core/ScriptExtra/CDamageableTriggerExtra.cpp index 93c1922f..f05b108a 100644 --- a/src/Core/ScriptExtra/CDamageableTriggerExtra.cpp +++ b/src/Core/ScriptExtra/CDamageableTriggerExtra.cpp @@ -6,7 +6,6 @@ CDamageableTriggerExtra::CDamageableTriggerExtra(CScriptObject *pInstance, CScene *pScene, CScriptNode *pParent) : CScriptExtra(pInstance, pScene, pParent) - , mpRenderSideProp(nullptr) , mpMat(nullptr) { for (u32 iTex = 0; iTex < 3; iTex++) @@ -15,21 +14,21 @@ CDamageableTriggerExtra::CDamageableTriggerExtra(CScriptObject *pInstance, CScen SetInheritance(true, false, false); CreateMaterial(); - CPropertyStruct *pBaseStruct = pInstance->Properties(); + CStructProperty* pProperties = pInstance->Template()->Properties(); // Fetch render side - mpRenderSideProp = TPropCast(pBaseStruct->PropertyByIndex(0x5)); - if (mpRenderSideProp) PropertyModified(mpRenderSideProp); + mRenderSide = TEnumRef(pInstance->PropertyData(), pProperties->ChildByIndex(5)); + if (mRenderSide.IsValid()) PropertyModified(mRenderSide.Property()); // Fetch scale - mpSizeProp = TPropCast(pBaseStruct->PropertyByIndex(0x2)); - if (mpSizeProp) PropertyModified(mpSizeProp); + mPlaneSize = CVectorRef(pInstance->PropertyData(), pProperties->ChildByIndex(2)); + if (mPlaneSize.IsValid()) PropertyModified(mPlaneSize.Property()); // Fetch textures - for (u32 iTex = 0; iTex < 3; iTex++) + for (u32 TextureIdx = 0; TextureIdx < 3; TextureIdx++) { - mpTextureProps[iTex] = TPropCast(pBaseStruct->PropertyByIndex(0x6 + iTex)); - if (mpTextureProps[iTex]) PropertyModified(mpTextureProps[iTex]); + mTextureAssets[TextureIdx] = CAssetRef(pInstance->PropertyData(), pProperties->ChildByIndex(6 + TextureIdx)); + if (mTextureAssets[TextureIdx].IsValid()) PropertyModified(mTextureAssets[TextureIdx].Property()); } } @@ -80,7 +79,7 @@ void CDamageableTriggerExtra::CreateMaterial() void CDamageableTriggerExtra::UpdatePlaneTransform() { - CVector3f Extent = mPlaneSize / 2.f; + CVector3f Extent = mPlaneSize.Get() / 2.f; switch (mRenderSide) { @@ -92,7 +91,7 @@ void CDamageableTriggerExtra::UpdatePlaneTransform() mPosition = CVector3f(0.f, Extent.Y * Scalar, 0.f); mRotation = CQuaternion::FromEuler(CVector3f(90.f * Scalar, 0.f, 0.f)); mScale = CVector3f(Extent.X, Extent.Z, 0.f); - mCoordScale = mPlaneSize.XZ(); + mCoordScale = mPlaneSize.Get().XZ(); break; } @@ -104,7 +103,7 @@ void CDamageableTriggerExtra::UpdatePlaneTransform() mPosition = CVector3f(-Extent.X * Scalar, 0.f, 0.f); mRotation = CQuaternion::FromEuler(CVector3f(0.f, 90.f * Scalar, 0.f)); mScale = CVector3f(Extent.Z, Extent.Y, 0.f); - mCoordScale = -mPlaneSize.YZ(); + mCoordScale = -mPlaneSize.Get().YZ(); break; } @@ -117,7 +116,7 @@ void CDamageableTriggerExtra::UpdatePlaneTransform() mPosition = CVector3f(0.f, 0.f, Extent.Z * Scalar); mRotation = CQuaternion::FromEuler(CVector3f(0.f, RotAngle, 0.f)); mScale = CVector3f(Extent.X, Extent.Y, 0.f); - mCoordScale = -mPlaneSize.XY(); + mCoordScale = -mPlaneSize.Get().XY(); break; } @@ -176,36 +175,28 @@ CDamageableTriggerExtra::ERenderSide CDamageableTriggerExtra::TransformRenderSid void CDamageableTriggerExtra::OnTransformed() { - mPlaneSize = mpSizeProp->Get(); UpdatePlaneTransform(); } -void CDamageableTriggerExtra::PropertyModified(IProperty *pProperty) +void CDamageableTriggerExtra::PropertyModified(IProperty* pProperty) { - if (pProperty == mpRenderSideProp) + if (pProperty == mRenderSide || pProperty == mPlaneSize) { - mRenderSide = TransformRenderSide( (ERenderSide) mpRenderSideProp->Get() ); - UpdatePlaneTransform(); - } - - else if (pProperty == mpSizeProp) - { - mPlaneSize = mpSizeProp->Get(); UpdatePlaneTransform(); } else { - for (u32 iTex = 0; iTex < 3; iTex++) + for (u32 TextureIdx = 0; TextureIdx < 3; TextureIdx++) { - if (pProperty == mpTextureProps[iTex]) + if (pProperty == mTextureAssets[TextureIdx].Property()) { - mpTextures[iTex] = gpResourceStore->LoadResource( mpTextureProps[iTex]->Get() ); + mpTextures[TextureIdx] = gpResourceStore->LoadResource( mTextureAssets[TextureIdx].Get() ); - if (mpTextures[iTex] && mpTextures[iTex]->Type() != eTexture) - mpTextures[iTex] = nullptr; + if (mpTextures[TextureIdx] && mpTextures[TextureIdx]->Type() != eTexture) + mpTextures[TextureIdx] = nullptr; - mpMat->Pass(iTex)->SetTexture(mpTextures[iTex]); + mpMat->Pass(TextureIdx)->SetTexture(mpTextures[TextureIdx]); break; } } diff --git a/src/Core/ScriptExtra/CDamageableTriggerExtra.h b/src/Core/ScriptExtra/CDamageableTriggerExtra.h index f1b7b8db..a0a9bb6a 100644 --- a/src/Core/ScriptExtra/CDamageableTriggerExtra.h +++ b/src/Core/ScriptExtra/CDamageableTriggerExtra.h @@ -17,15 +17,12 @@ class CDamageableTriggerExtra : public CScriptExtra eDown = 0x20 }; - TVector3Property *mpSizeProp; - TEnumProperty *mpRenderSideProp; - TAssetProperty *mpTextureProps[3]; + CVectorRef mPlaneSize; + TEnumRef mRenderSide; + CAssetRef mTextureAssets[3]; - CVector3f mPlaneSize; - ERenderSide mRenderSide; - TResPtr mpTextures[3]; - - CMaterial *mpMat; + CMaterial* mpMat; + CTexture* mpTextures[3]; CVector2f mCoordScale; float mCachedRayDistance; @@ -38,7 +35,7 @@ public: ERenderSide RenderSideForDirection(const CVector3f& rkDir); ERenderSide TransformRenderSide(ERenderSide Side); void OnTransformed(); - void PropertyModified(IProperty *pProperty); + void PropertyModified(IProperty* pProperty); bool ShouldDrawNormalAssets(); void AddToRenderer(CRenderer *pRenderer, const SViewInfo& rkViewInfo); void Draw(FRenderOptions Options, int ComponentIndex, ERenderCommand Command, const SViewInfo& rkViewInfo); diff --git a/src/Core/ScriptExtra/CDoorExtra.cpp b/src/Core/ScriptExtra/CDoorExtra.cpp index 351b10d9..91ec5a4a 100644 --- a/src/Core/ScriptExtra/CDoorExtra.cpp +++ b/src/Core/ScriptExtra/CDoorExtra.cpp @@ -1,35 +1,32 @@ #include "CDoorExtra.h" #include "Core/Render/CRenderer.h" -CDoorExtra::CDoorExtra(CScriptObject *pInstance, CScene *pScene, CScriptNode *pParent) +CDoorExtra::CDoorExtra(CScriptObject* pInstance, CScene* pScene, CScriptNode* pParent) : CScriptExtra(pInstance, pScene, pParent) - , mpShieldModelProp(nullptr) - , mpShieldColorProp(nullptr) - , mpShieldModel(nullptr) { - CPropertyStruct *pBaseStruct = pInstance->Properties(); + CStructProperty* pProperties = pInstance->Template()->Properties(); - mpShieldModelProp = TPropCast(pBaseStruct->PropertyByID(0xB20CC271)); - if (mpShieldModelProp) PropertyModified(mpShieldModelProp); + mShieldModelProp = CAssetRef(pInstance->PropertyData(), pProperties->ChildByID(0xB20CC271)); + if (mShieldModelProp.IsValid()) PropertyModified(mShieldModelProp.Property()); - if (mGame >= eEchoes) + if (mGame >= EGame::Echoes) { - mpShieldColorProp = TPropCast(pBaseStruct->PropertyByID(0x47B4E863)); - if (mpShieldColorProp) PropertyModified(mpShieldColorProp); + mShieldColorProp = CColorRef(pInstance->PropertyData(), pProperties->ChildByID(0x47B4E863)); + if (mShieldColorProp.IsValid()) PropertyModified(mShieldColorProp.Property()); } else { - mpDisabledProp = TPropCast(pBaseStruct->PropertyByID(0xDEE730F5)); - if (mpDisabledProp) PropertyModified(mpDisabledProp); + mDisabledProp = CBoolRef(pInstance->PropertyData(), pProperties->ChildByID(0xDEE730F5)); + if (mDisabledProp.IsValid()) PropertyModified(mDisabledProp.Property()); } } -void CDoorExtra::PropertyModified(IProperty *pProperty) +void CDoorExtra::PropertyModified(IProperty* pProperty) { - if (pProperty == mpShieldModelProp) + if (pProperty == mShieldModelProp) { - mpShieldModel = gpResourceStore->LoadResource( mpShieldModelProp->Get() ); + mpShieldModel = gpResourceStore->LoadResource( mShieldModelProp.Get() ); if (mpShieldModel) mLocalAABox = mpShieldModel->AABox(); @@ -40,18 +37,18 @@ void CDoorExtra::PropertyModified(IProperty *pProperty) MarkTransformChanged(); } - else if (pProperty == mpShieldColorProp) + else if (pProperty == mShieldColorProp) { - mShieldColor = mpShieldColorProp->Get(); + mShieldColor = mShieldColorProp.Get(); } - else if (pProperty == mpDisabledProp) + else if (pProperty == mDisabledProp) { // The Echoes demo doesn't have the shield color property. The color is // always cyan if the door is unlocked and always white if the door is locked. mShieldColor = CColor::skWhite; - if (!mpDisabledProp->Get()) + if (!mDisabledProp) mShieldColor = CColor::skCyan; } } diff --git a/src/Core/ScriptExtra/CDoorExtra.h b/src/Core/ScriptExtra/CDoorExtra.h index b1e22a27..4667e56f 100644 --- a/src/Core/ScriptExtra/CDoorExtra.h +++ b/src/Core/ScriptExtra/CDoorExtra.h @@ -6,16 +6,17 @@ class CDoorExtra : public CScriptExtra { // Render colored door shield in MP2/3 - TAssetProperty *mpShieldModelProp; - TColorProperty *mpShieldColorProp; - TBoolProperty *mpDisabledProp; + CAssetRef mShieldModelProp; + CColorRef mShieldColorProp; + CBoolRef mDisabledProp; + TResPtr mpShieldModel; CColor mShieldColor; public: - explicit CDoorExtra(CScriptObject *pInstance, CScene *pScene, CScriptNode *pParent = 0); - void PropertyModified(IProperty *pProperty); - void AddToRenderer(CRenderer *pRenderer, const SViewInfo& rkViewInfo); + explicit CDoorExtra(CScriptObject* pInstance, CScene* pScene, CScriptNode* pParent = 0); + void PropertyModified(IProperty* pProperty); + void AddToRenderer(CRenderer* pRenderer, const SViewInfo& rkViewInfo); void Draw(FRenderOptions Options, int ComponentIndex, ERenderCommand Command, const SViewInfo& rkViewInfo); void DrawSelection(); void RayAABoxIntersectTest(CRayCollisionTester& rTester, const SViewInfo& rkViewInfo); diff --git a/src/Core/ScriptExtra/CPointOfInterestExtra.cpp b/src/Core/ScriptExtra/CPointOfInterestExtra.cpp index eb3df472..c76d8bb1 100644 --- a/src/Core/ScriptExtra/CPointOfInterestExtra.cpp +++ b/src/Core/ScriptExtra/CPointOfInterestExtra.cpp @@ -5,21 +5,21 @@ const CColor CPointOfInterestExtra::skImportantColor = CColor::Integral(0xFF,0x0 CPointOfInterestExtra::CPointOfInterestExtra(CScriptObject *pInstance, CScene *pScene, CScriptNode *pParent) : CScriptExtra(pInstance, pScene, pParent) - , mpScanProperty(nullptr) , mpScanData(nullptr) { // Fetch scan data property - CPropertyStruct *pBaseProp = pInstance->Properties(); + CStructProperty* pProperties = pInstance->Template()->Properties(); - if (mGame <= ePrime) mpScanProperty = TPropCast(pBaseProp->PropertyByIDString("0x04:0x00")); - else mpScanProperty = (TAssetProperty*) pBaseProp->PropertyByIDString("0xBDBEC295:0xB94E9BE7"); - if (mpScanProperty) PropertyModified(mpScanProperty); + if (mGame <= EGame::Prime) mScanProperty = CAssetRef(pInstance->PropertyData(), pProperties->ChildByIDString("0x04:0x00")); + else mScanProperty = CAssetRef(pInstance->PropertyData(), pProperties->ChildByIDString("0xBDBEC295:0xB94E9BE7")); + + PropertyModified(mScanProperty.Property()); } void CPointOfInterestExtra::PropertyModified(IProperty* pProperty) { - if (mpScanProperty == pProperty) - mpScanData = gpResourceStore->LoadResource( mpScanProperty->Get() ); + if (mScanProperty.Property() == pProperty) + mpScanData = gpResourceStore->LoadResource( mScanProperty.Get() ); } void CPointOfInterestExtra::ModifyTintColor(CColor& Color) diff --git a/src/Core/ScriptExtra/CPointOfInterestExtra.h b/src/Core/ScriptExtra/CPointOfInterestExtra.h index 195a2a27..ae699718 100644 --- a/src/Core/ScriptExtra/CPointOfInterestExtra.h +++ b/src/Core/ScriptExtra/CPointOfInterestExtra.h @@ -8,7 +8,7 @@ class CPointOfInterestExtra : public CScriptExtra { // Tint POI billboard orange/red depending on scan importance - TAssetProperty *mpScanProperty; + CAssetRef mScanProperty; TResPtr mpScanData; public: diff --git a/src/Core/ScriptExtra/CRadiusSphereExtra.cpp b/src/Core/ScriptExtra/CRadiusSphereExtra.cpp index 4eeb7527..7a55d4a4 100644 --- a/src/Core/ScriptExtra/CRadiusSphereExtra.cpp +++ b/src/Core/ScriptExtra/CRadiusSphereExtra.cpp @@ -2,32 +2,32 @@ #include "Core/Render/CDrawUtil.h" #include "Core/Render/CRenderer.h" -CRadiusSphereExtra::CRadiusSphereExtra(CScriptObject *pInstance, CScene *pScene, CScriptNode *pParent) +CRadiusSphereExtra::CRadiusSphereExtra(CScriptObject* pInstance, CScene* pScene, CScriptNode* pParent) : CScriptExtra(pInstance, pScene, pParent) - , mpRadius(nullptr) { mObjectType = pInstance->ObjectTypeID(); + CStructProperty* pProperties = pInstance->Template()->Properties(); switch (mObjectType) { case 0x63: // Repulsor (MP1) - mpRadius = TPropCast(pInstance->Properties()->PropertyByID(0x3)); + mRadius = CFloatRef(pInstance->PropertyData(), pProperties->ChildByID(3)); break; case 0x68: // RadialDamage (MP1) - mpRadius = TPropCast(pInstance->Properties()->PropertyByID(0x4)); + mRadius = CFloatRef(pInstance->PropertyData(), pProperties->ChildByID(0x4)); break; - case 0x5245504C: // "REPL" Repulsor (MP2/MP3) - case 0x52414444: // "RADD" RadialDamage (MP2/MP3/DKCR) - mpRadius = TPropCast(pInstance->Properties()->PropertyByID(0x78C507EB)); + case FOURCC('REPL'): // Repulsor (MP2/MP3) + case FOURCC('RADD'): // RadialDamage (MP2/MP3/DKCR) + mRadius = CFloatRef(pInstance->PropertyData(), pProperties->ChildByID(0x78C507EB)); break; } } -void CRadiusSphereExtra::AddToRenderer(CRenderer *pRenderer, const SViewInfo& rkViewInfo) +void CRadiusSphereExtra::AddToRenderer(CRenderer* pRenderer, const SViewInfo& rkViewInfo) { - if (!rkViewInfo.GameMode && (rkViewInfo.ShowFlags & eShowObjectGeometry) && mpRadius && mpParent->IsVisible() && mpParent->IsSelected()) + if (!rkViewInfo.GameMode && (rkViewInfo.ShowFlags & eShowObjectGeometry) && mRadius.IsValid() && mpParent->IsVisible() && mpParent->IsSelected()) { CAABox BoundingBox = Bounds(); @@ -42,7 +42,7 @@ void CRadiusSphereExtra::Draw(FRenderOptions /*Options*/, int /*ComponentIndex*/ glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); glDepthMask(GL_TRUE); - CDrawUtil::DrawWireSphere(mpInstance->Position(), mpRadius->Get(), Color()); + CDrawUtil::DrawWireSphere(mpInstance->Position(), mRadius, Color()); } CColor CRadiusSphereExtra::Color() const @@ -66,7 +66,7 @@ CColor CRadiusSphereExtra::Color() const CAABox CRadiusSphereExtra::Bounds() const { - CAABox Bounds = CAABox::skOne * 2.f * mpRadius->Get(); + CAABox Bounds = CAABox::skOne * 2.f * mRadius; Bounds += mpParent->AbsolutePosition(); return Bounds; } diff --git a/src/Core/ScriptExtra/CRadiusSphereExtra.h b/src/Core/ScriptExtra/CRadiusSphereExtra.h index 6f5c9180..008fc3fc 100644 --- a/src/Core/ScriptExtra/CRadiusSphereExtra.h +++ b/src/Core/ScriptExtra/CRadiusSphereExtra.h @@ -7,11 +7,11 @@ class CRadiusSphereExtra : public CScriptExtra { // Sphere visualization for objects that have a float radius property. u32 mObjectType; - TFloatProperty *mpRadius; + CFloatRef mRadius; public: - explicit CRadiusSphereExtra(CScriptObject *pInstance, CScene *pScene, CScriptNode *pParent = 0); - void AddToRenderer(CRenderer *pRenderer, const SViewInfo& rkViewInfo); + explicit CRadiusSphereExtra(CScriptObject* pInstance, CScene* pScene, CScriptNode* pParent = 0); + void AddToRenderer(CRenderer* pRenderer, const SViewInfo& rkViewInfo); void Draw(FRenderOptions Options, int ComponentIndex, ERenderCommand Command, const SViewInfo& rkViewInfo); CColor Color() const; CAABox Bounds() const; diff --git a/src/Core/ScriptExtra/CSandwormExtra.cpp b/src/Core/ScriptExtra/CSandwormExtra.cpp index a053f54b..705cc6a1 100644 --- a/src/Core/ScriptExtra/CSandwormExtra.cpp +++ b/src/Core/ScriptExtra/CSandwormExtra.cpp @@ -1,30 +1,30 @@ #include "CSandwormExtra.h" -CSandwormExtra::CSandwormExtra(CScriptObject *pInstance, CScene *pScene, CScriptNode *pParent) +CSandwormExtra::CSandwormExtra(CScriptObject* pInstance, CScene* pScene, CScriptNode* pParent) : CScriptExtra(pInstance, pScene, pParent) { // The back pincers need to be flipped 180 degrees - for (u32 iAttach = 0; iAttach < pParent->NumAttachments(); iAttach++) + for (u32 AttachIdx = 0; AttachIdx < pParent->NumAttachments(); AttachIdx++) { - CScriptAttachNode *pAttach = pParent->Attachment(iAttach); + CScriptAttachNode *pAttach = pParent->Attachment(AttachIdx); if (pAttach->LocatorName() == "L_back_claw" || pAttach->LocatorName() == "R_back_claw") pAttach->SetRotation(CVector3f(0,0,180)); } // Get pincers scale - mpPincersScaleProperty = TPropCast(pInstance->PropertyByIDString("0x3DB583AE")); - if (mpPincersScaleProperty) PropertyModified(mpPincersScaleProperty); + mPincersScale = CFloatRef(pInstance->PropertyData(), pInstance->Template()->Properties()->ChildByID(0x3DB583AE)); + if (mPincersScale.IsValid()) PropertyModified(mPincersScale.Property()); } -void CSandwormExtra::PropertyModified(IProperty *pProp) +void CSandwormExtra::PropertyModified(IProperty* pProp) { - if (pProp == mpPincersScaleProperty) + if (pProp == mPincersScale) { - for (u32 iAttach = 0; iAttach < mpScriptNode->NumAttachments(); iAttach++) + for (u32 AttachIdx = 0; AttachIdx < mpScriptNode->NumAttachments(); AttachIdx++) { - CScriptAttachNode *pAttach = mpScriptNode->Attachment(iAttach); - pAttach->SetScale(CVector3f(mpPincersScaleProperty->Get())); + CScriptAttachNode* pAttach = mpScriptNode->Attachment(AttachIdx); + pAttach->SetScale( CVector3f(mPincersScale) ); } } } diff --git a/src/Core/ScriptExtra/CSandwormExtra.h b/src/Core/ScriptExtra/CSandwormExtra.h index 2b65f64f..ca6e1776 100644 --- a/src/Core/ScriptExtra/CSandwormExtra.h +++ b/src/Core/ScriptExtra/CSandwormExtra.h @@ -6,11 +6,11 @@ class CSandwormExtra : public CScriptExtra { // Transform adjustments to Sandworm attachments. - TFloatProperty *mpPincersScaleProperty; + CFloatRef mPincersScale; public: - explicit CSandwormExtra(CScriptObject *pInstance, CScene *pScene, CScriptNode *pParent); - void PropertyModified(IProperty *pProp); + explicit CSandwormExtra(CScriptObject* pInstance, CScene* pScene, CScriptNode* pParent); + void PropertyModified(IProperty* pProp); }; #endif // CSANDWORMEXTRA_H diff --git a/src/Core/ScriptExtra/CScriptExtra.cpp b/src/Core/ScriptExtra/CScriptExtra.cpp index 3e2b4d20..bb96f589 100644 --- a/src/Core/ScriptExtra/CScriptExtra.cpp +++ b/src/Core/ScriptExtra/CScriptExtra.cpp @@ -56,7 +56,7 @@ CScriptExtra* CScriptExtra::CreateExtra(CScriptNode *pNode) case 0x53505041: // "SPPA" SplinePath (DKCR) case 0x5043544C: // "PCTL" PathControl (DKCR) case 0x434C5043: // "CLPC" ClingPathControl (DKCR) - if (pNode->Instance()->Area()->Game() == eReturns) + if (pNode->Instance()->Area()->Game() == EGame::DKCReturns) pExtra = new CSplinePathExtra(pObj, pNode->Scene(), pNode); break; diff --git a/src/Core/ScriptExtra/CSpacePirateExtra.cpp b/src/Core/ScriptExtra/CSpacePirateExtra.cpp index cb3e135a..dce89815 100644 --- a/src/Core/ScriptExtra/CSpacePirateExtra.cpp +++ b/src/Core/ScriptExtra/CSpacePirateExtra.cpp @@ -1,37 +1,33 @@ #include "CSpacePirateExtra.h" -CSpacePirateExtra::CSpacePirateExtra(CScriptObject *pInstance, CScene *pScene, CScriptNode *pParent) +CSpacePirateExtra::CSpacePirateExtra(CScriptObject* pInstance, CScene* pScene, CScriptNode* pParent) : CScriptExtra(pInstance, pScene ,pParent) - , mpPowerVuln(nullptr) - , mpWaveVuln(nullptr) - , mpIceVuln(nullptr) - , mpPlasmaVuln(nullptr) { - CPropertyStruct *pBaseStruct = pInstance->Properties(); - CPropertyStruct *pVulns = (CPropertyStruct*) pBaseStruct->PropertyByIDString("0x04:0x10"); + CStructProperty* pBaseStruct = pInstance->Template()->Properties(); + CStructProperty* pVulnerabilities = TPropCast(pBaseStruct->ChildByIDString("0x04:0x10")); - if (pVulns && pVulns->Type() == eStructProperty) + if (pVulnerabilities) { - mpPowerVuln = TPropCast(pVulns->PropertyByID(0x0)); - mpWaveVuln = TPropCast(pVulns->PropertyByID(0x2)); - mpIceVuln = TPropCast(pVulns->PropertyByID(0x1)); - mpPlasmaVuln = TPropCast(pVulns->PropertyByID(0x3)); + mPowerVulnerability = TEnumRef(pInstance, pVulnerabilities->ChildByID(0)); + mWaveVulnerability = TEnumRef(pInstance, pVulnerabilities->ChildByID(2)); + mIceVulnerability = TEnumRef(pInstance, pVulnerabilities->ChildByID(1)); + mPlasmaVulnerability = TEnumRef(pInstance, pVulnerabilities->ChildByID(3)); } } CColor CSpacePirateExtra::TevColor() { // Priority: Plasma -> Ice -> Power -> Wave - if (mpPlasmaVuln && mpPlasmaVuln->Get() == 1) + if (mPlasmaVulnerability.IsValid() && mPlasmaVulnerability.Get() == EVulnerabilityTypeMP1::Normal) return CColor::skRed; - if (mpIceVuln && mpIceVuln->Get() == 1) + if (mIceVulnerability.IsValid() && mIceVulnerability.Get() == EVulnerabilityTypeMP1::Normal) return CColor::skWhite; - if (mpPowerVuln && mpPowerVuln->Get() == 1) + if (mPowerVulnerability.IsValid() && mPowerVulnerability.Get() == EVulnerabilityTypeMP1::Normal) return CColor::skYellow; - if (mpWaveVuln && mpWaveVuln->Get() == 1) + if (mWaveVulnerability.IsValid() && mWaveVulnerability.Get() == EVulnerabilityTypeMP1::Normal) return CColor::skPurple; return CColor::skWhite; diff --git a/src/Core/ScriptExtra/CSpacePirateExtra.h b/src/Core/ScriptExtra/CSpacePirateExtra.h index e7dd1d2e..06c116fd 100644 --- a/src/Core/ScriptExtra/CSpacePirateExtra.h +++ b/src/Core/ScriptExtra/CSpacePirateExtra.h @@ -2,15 +2,27 @@ #define CSPACEPIRATEEXTRA_H #include "CScriptExtra.h" -#include "Core/Resource/Script/IProperty.h" +#include "Core/Resource/Script/Property/IProperty.h" + +enum class EVulnerabilityTypeMP1 +{ + DoubleDamage, + Normal, + Reflect, + Immune, + PassThru, + DirectDouble, + DirectNormal, + DirectImmune +}; class CSpacePirateExtra : public CScriptExtra { // Render beam troopers with the correct color - TEnumProperty *mpPowerVuln; - TEnumProperty *mpWaveVuln; - TEnumProperty *mpIceVuln; - TEnumProperty *mpPlasmaVuln; + TEnumRef mPowerVulnerability; + TEnumRef mWaveVulnerability; + TEnumRef mIceVulnerability; + TEnumRef mPlasmaVulnerability; public: explicit CSpacePirateExtra(CScriptObject *pInstance, CScene *pScene, CScriptNode *pParent = 0); diff --git a/src/Core/ScriptExtra/CSplinePathExtra.cpp b/src/Core/ScriptExtra/CSplinePathExtra.cpp index 93721729..5a933939 100644 --- a/src/Core/ScriptExtra/CSplinePathExtra.cpp +++ b/src/Core/ScriptExtra/CSplinePathExtra.cpp @@ -3,15 +3,15 @@ #include "Core/Resource/Script/CLink.h" #include "Core/Scene/CScene.h" -CSplinePathExtra::CSplinePathExtra(CScriptObject *pInstance, CScene *pScene, CScriptNode *pParent) +CSplinePathExtra::CSplinePathExtra(CScriptObject* pInstance, CScene* pScene, CScriptNode* pParent) : CScriptExtra(pInstance, pScene, pParent) { - mpPathColor = TPropCast(pInstance->Properties()->PropertyByID(0x00DD86E2)); + mPathColor = CColorRef(pInstance->PropertyData(), pInstance->Template()->Properties()->ChildByID(0x00DD86E2)); } -void CSplinePathExtra::PropertyModified(IProperty *pProperty) +void CSplinePathExtra::PropertyModified(IProperty* pProperty) { - if (pProperty == mpPathColor) + if (pProperty == mPathColor.Property()) { for (auto it = mWaypoints.begin(); it != mWaypoints.end(); it++) (*it)->CheckColor(); @@ -23,7 +23,7 @@ void CSplinePathExtra::PostLoad() AddWaypoints(); } -void CSplinePathExtra::FindAttachedWaypoints(std::set& rChecked, CWaypointExtra *pWaypoint) +void CSplinePathExtra::FindAttachedWaypoints(std::set& rChecked, CWaypointExtra* pWaypoint) { if (rChecked.find(pWaypoint) != rChecked.end()) return; @@ -41,23 +41,23 @@ void CSplinePathExtra::FindAttachedWaypoints(std::set& rChecked void CSplinePathExtra::AddWaypoints() { - if (mGame != eReturns) + if (mGame != EGame::DKCReturns) return; std::set CheckedWaypoints; - for (u32 iLink = 0; iLink < mpInstance->NumLinks(eOutgoing); iLink++) + for (u32 LinkIdx = 0; LinkIdx < mpInstance->NumLinks(eOutgoing); LinkIdx++) { - CLink *pLink = mpInstance->Link(eOutgoing, iLink); + CLink* pLink = mpInstance->Link(eOutgoing, LinkIdx); - if ( (pLink->State() == 0x49533030 && pLink->Message() == 0x41544348) || // InternalState00/Attach - (pLink->State() == 0x4D4F5450 && pLink->Message() == 0x41544348) ) // MotionPath/Attach + if ( (pLink->State() == FOURCC('IS00') && pLink->Message() == FOURCC('ATCH')) || // InternalState00/Attach + (pLink->State() == FOURCC('MOTP') && pLink->Message() == FOURCC('ATCH')) ) // MotionPath/Attach { - CScriptNode *pNode = mpScene->NodeForInstanceID(pLink->ReceiverID()); + CScriptNode* pNode = mpScene->NodeForInstanceID(pLink->ReceiverID()); - if (pNode && pNode->Instance()->ObjectTypeID() == 0x57415950) // Waypoint + if (pNode && pNode->Instance()->ObjectTypeID() == FOURCC('WAYP')) // Waypoint { - CWaypointExtra *pWaypoint = static_cast(pNode->Extra()); + CWaypointExtra* pWaypoint = static_cast(pNode->Extra()); FindAttachedWaypoints(CheckedWaypoints, pWaypoint); } } diff --git a/src/Core/ScriptExtra/CSplinePathExtra.h b/src/Core/ScriptExtra/CSplinePathExtra.h index b4915260..58172d56 100644 --- a/src/Core/ScriptExtra/CSplinePathExtra.h +++ b/src/Core/ScriptExtra/CSplinePathExtra.h @@ -11,20 +11,20 @@ class CWaypointExtra; class CSplinePathExtra : public CScriptExtra { // Recolor waypoint paths to match the editor color parameter - TColorProperty *mpPathColor; + CColorRef mPathColor; std::list mWaypoints; public: - explicit CSplinePathExtra(CScriptObject *pInstance, CScene *pScene, CScriptNode *pParent = 0); + explicit CSplinePathExtra(CScriptObject* pInstance, CScene* pScene, CScriptNode* pParent = 0); ~CSplinePathExtra() { ClearWaypoints(); } - inline CColor PathColor() const { return (mpPathColor ? mpPathColor->Get() : CColor::skBlack); } + inline CColor PathColor() const { return (mPathColor.IsValid() ? mPathColor.Get() : CColor::skBlack); } void PostLoad(); - void PropertyModified(IProperty *pProperty); + void PropertyModified(IProperty* pProperty); - void FindAttachedWaypoints(std::set& rChecked, CWaypointExtra *pWaypoint); + void FindAttachedWaypoints(std::set& rChecked, CWaypointExtra* pWaypoint); void AddWaypoints(); - void RemoveWaypoint(CWaypointExtra *pWaypoint); + void RemoveWaypoint(CWaypointExtra* pWaypoint); void ClearWaypoints(); }; diff --git a/src/Core/ScriptExtra/CWaypointExtra.cpp b/src/Core/ScriptExtra/CWaypointExtra.cpp index b84a5287..d6862f79 100644 --- a/src/Core/ScriptExtra/CWaypointExtra.cpp +++ b/src/Core/ScriptExtra/CWaypointExtra.cpp @@ -28,7 +28,7 @@ void CWaypointExtra::CheckColor() } // Fetch color from parent node's model (MP1/2/3) - else if (mGame < eReturns) + else if (mGame < EGame::DKCReturns) { CScriptNode *pScript = static_cast(mpParent); CModel *pModel = pScript->ActiveModel(); @@ -185,5 +185,5 @@ void CWaypointExtra::Draw(FRenderOptions /*Options*/, int ComponentIndex, ERende CColor CWaypointExtra::TevColor() { - return (mGame < eReturns ? CColor::skWhite : mColor); + return (mGame < EGame::DKCReturns ? CColor::skWhite : mColor); } diff --git a/src/Editor/CEditorApplication.h b/src/Editor/CEditorApplication.h index f1645cfc..f5aece9d 100644 --- a/src/Editor/CEditorApplication.h +++ b/src/Editor/CEditorApplication.h @@ -51,7 +51,7 @@ public: inline CGameProject* ActiveProject() const { return mpActiveProject; } inline CWorldEditor* WorldEditor() const { return mpWorldEditor; } inline CProjectSettingsDialog* ProjectDialog() const { return mpProjectDialog; } - inline EGame CurrentGame() const { return mpActiveProject ? mpActiveProject->Game() : eUnknownGame; } + inline EGame CurrentGame() const { return mpActiveProject ? mpActiveProject->Game() : EGame::Invalid; } inline void SetEditorTicksEnabled(bool Enabled) { Enabled ? mRefreshTimer.start(gkTickFrequencyMS) : mRefreshTimer.stop(); } inline bool AreEditorTicksEnabled() const { return mRefreshTimer.isActive(); } diff --git a/src/Editor/CExportGameDialog.cpp b/src/Editor/CExportGameDialog.cpp index 253dd568..693960fe 100644 --- a/src/Editor/CExportGameDialog.cpp +++ b/src/Editor/CExportGameDialog.cpp @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include @@ -24,8 +24,8 @@ CExportGameDialog::CExportGameDialog(const QString& rkIsoPath, const QString& rk , mpDisc(nullptr) , mpExporter(nullptr) , mDiscType(eDT_Normal) - , mGame(eUnknownGame) - , mRegion(eRegion_Unknown) + , mGame(EGame::Invalid) + , mRegion(ERegion::Unknown) , mBuildVer(0.f) , mWiiFrontend(false) , mExportSuccess(false) @@ -85,11 +85,10 @@ void CExportGameDialog::InitUI(QString ExportDir) mpUI->GameTitleLineEdit->setText( TO_QSTRING(mGameTitle) ); mpUI->GameIdLineEdit->setText( TO_QSTRING(mGameID) ); mpUI->BuildVersionLineEdit->setText( QString("%1 (%2)").arg(mBuildVer).arg( TO_QSTRING(GameInfo.GetBuildName(mBuildVer, mRegion)) )); - mpUI->RegionLineEdit->setText( mRegion == eRegion_NTSC ? "NTSC" : - mRegion == eRegion_PAL ? "PAL" : "JPN" ); + mpUI->RegionLineEdit->setText( TEnumReflection::ConvertValueToString(mRegion) ); // Disc tree widget - nod::Partition *pPartition = mpDisc->getDataPartition(); + nod::IPartition *pPartition = mpDisc->getDataPartition(); ASSERT(pPartition); QTreeWidgetItem *pTreeRoot = new QTreeWidgetItem((QTreeWidgetItem*) nullptr, QStringList(QString("Disc"))); @@ -126,15 +125,15 @@ bool CExportGameDialog::ValidateGame() switch (mGameID[3]) { case 'E': - mRegion = eRegion_NTSC; + mRegion = ERegion::NTSC; break; case 'P': - mRegion = eRegion_PAL; + mRegion = ERegion::PAL; break; case 'J': - mRegion = eRegion_JPN; + mRegion = ERegion::JPN; break; default: @@ -156,23 +155,23 @@ bool CExportGameDialog::ValidateGame() return false; } - mGame = ePrime; + mGame = EGame::Prime; break; case FOURCC('G2MX'): // Echoes, but also appears in the MP3 proto if (mGameID[4] == 'A' && mGameID[5] == 'B') - mGame = eCorruptionProto; + mGame = EGame::CorruptionProto; else - mGame = eEchoes; + mGame = EGame::Echoes; break; case FOURCC('RM3X'): - mGame = eCorruption; + mGame = EGame::Corruption; break; case FOURCC('SF8X'): - mGame = eReturns; + mGame = EGame::DKCReturns; break; case FOURCC('R3MX'): @@ -188,13 +187,13 @@ bool CExportGameDialog::ValidateGame() case FOURCC('R3IX'): // MP1 Wii de Asobu - mGame = ePrime; + mGame = EGame::Prime; mDiscType = eDT_WiiDeAsobu; if (!RequestWiiPortGame()) return false; break; case FOURCC('R32X'): - mGame = eEchoes; + mGame = EGame::Echoes; mDiscType = eDT_WiiDeAsobu; if (!RequestWiiPortGame()) return false; break; @@ -212,9 +211,9 @@ bool CExportGameDialog::RequestWiiPortGame() QDialog Dialog; Dialog.setWindowTitle("Select Game"); - bool IsTrilogy = (mGame == eUnknownGame); - bool HasMP1 = (IsTrilogy || mGame == ePrime); - bool HasMP2 = (IsTrilogy || mGame == eEchoes); + bool IsTrilogy = (mGame == EGame::Invalid); + bool HasMP1 = (IsTrilogy || mGame == EGame::Prime); + bool HasMP2 = (IsTrilogy || mGame == EGame::Echoes); bool HasMP3 = IsTrilogy; QString GameName = (IsTrilogy ? "Metroid Prime: Trilogy" : "Wii de Asobu"); @@ -243,20 +242,20 @@ bool CExportGameDialog::RequestWiiPortGame() switch (ComboBox.currentIndex()) { case 0: - mGame = eCorruption; + mGame = EGame::Corruption; mWiiFrontend = true; break; case 1: - mGame = (HasMP1 ? ePrime : eEchoes); + mGame = (HasMP1 ? EGame::Prime : EGame::Echoes); break; case 2: - mGame = eEchoes; + mGame = EGame::Echoes; break; case 3: - mGame = eCorruption; + mGame = EGame::Corruption; break; } @@ -270,7 +269,7 @@ float CExportGameDialog::FindBuildVersion() ASSERT(mpDisc != nullptr); // MP1 demo build doesn't have a build version - if (mGame == ePrimeDemo) return 0.f; + if (mGame == EGame::PrimeDemo) return 0.f; // Get DOL buffer std::unique_ptr pDolData = mpDisc->getDataPartition()->getDOLBuf(); @@ -314,7 +313,7 @@ void CExportGameDialog::RecursiveAddToTree(const nod::Node *pkNode, QTreeWidgetI if (pkLeft->getKind() != pkRight->getKind()) return pkLeft->getKind() == nod::Node::Kind::Directory; else - return TString(pkLeft->getName()).ToUpper() < TString(pkRight->getName()).ToUpper(); + return TString(pkLeft->getName().data()).ToUpper() < TString(pkRight->getName().data()).ToUpper(); }); // Add nodes to tree @@ -330,7 +329,7 @@ void CExportGameDialog::RecursiveAddToTree(const nod::Node *pkNode, QTreeWidgetI bool IsDir = pkNode->getKind() == nod::Node::Kind::Directory; - QTreeWidgetItem *pItem = new QTreeWidgetItem(pParent, QStringList(QString::fromStdString(pkNode->getName())) ); + QTreeWidgetItem *pItem = new QTreeWidgetItem(pParent, QStringList(QString::fromStdString(pkNode->getName().data())) ); pItem->setIcon(0, QIcon(IsDir ? skDirIcon : skFileIcon)); if (IsDir) diff --git a/src/Editor/CGeneratePropertyNamesDialog.cpp b/src/Editor/CGeneratePropertyNamesDialog.cpp new file mode 100644 index 00000000..bb9053e3 --- /dev/null +++ b/src/Editor/CGeneratePropertyNamesDialog.cpp @@ -0,0 +1,379 @@ +#include "CGeneratePropertyNamesDialog.h" +#include "ui_CGeneratePropertyNamesDialog.h" + +#include "Editor/Widgets/CCheckableTreeWidgetItem.h" +#include "UICommon.h" +#include +#include +#include +#include + +CGeneratePropertyNamesDialog::CGeneratePropertyNamesDialog(QWidget* pParent) + : QDialog(pParent) + , mpUI( new Ui::CGeneratePropertyNamesDialog ) + , mFutureWatcher( this ) + , mRunningNameGeneration( false ) + , mCanceledNameGeneration( false ) +{ + mpUI->setupUi(this); + mNotifier.SetProgressBar( mpUI->ProgressBar ); + + connect( mpUI->AddSuffixButton, SIGNAL(pressed()), this, SLOT(AddSuffix()) ); + connect( mpUI->RemoveSuffixButton, SIGNAL(pressed()), this, SLOT(DeleteSuffix()) ); + connect( mpUI->ClearIdPoolButton, SIGNAL(pressed()), this, SLOT(ClearIdPool()) ); + connect( mpUI->StartButton, SIGNAL(pressed()), this, SLOT(StartGeneration()) ); + connect( mpUI->CancelButton, SIGNAL(pressed()), this, SLOT(CancelGeneration()) ); + connect( mpUI->CheckAllButton, SIGNAL(pressed()), this, SLOT(CheckAll()) ); + connect( mpUI->UncheckAllButton, SIGNAL(pressed()), this, SLOT(UncheckAll()) ); + connect( mpUI->ApplyButton, SIGNAL(pressed()), this, SLOT(ApplyChanges()) ); + connect( mpUI->OutputTreeWidget, SIGNAL(CheckStateChanged(QTreeWidgetItem*)), + this, SLOT(OnTreeItemChecked(QTreeWidgetItem*)) ); + connect( mpUI->OutputTreeWidget, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), + this, SLOT(OnTreeItemDoubleClicked(QTreeWidgetItem*)) ); + + // Configure default tree view split sizes + // I don't know why it needs to be multiplied by 1.5, it just does + int TreeWidth = mpUI->OutputTreeWidget->width(); + mpUI->OutputTreeWidget->setColumnWidth(0, TreeWidth * 1.5); + mpUI->OutputTreeWidget->setHeaderHidden(false); + + // Allow the generator to initialize in the background while the user is getting set up + QtConcurrent::run(&mGenerator, &CPropertyNameGenerator::Warmup); +} + +CGeneratePropertyNamesDialog::~CGeneratePropertyNamesDialog() +{ + delete mpUI; +} + +/** Add a property to the ID pool */ +void CGeneratePropertyNamesDialog::AddToIDPool(IProperty* pProperty) +{ + if (!pProperty->UsesNameMap()) + { + Log::Error("Failed to add property " + pProperty->IDString(false) + " to the generator ID pool because it doesn't use the name map"); + return; + } + + u32 ID = pProperty->ID(); + const char* pkTypeName = pProperty->HashableTypeName(); + mIdPairs << SPropertyIdTypePair { ID, pkTypeName }; + + QString ItemText = QString("%1 [%2]").arg( *TString::HexString(pProperty->ID(), 8, false) ).arg( pkTypeName ); + mpUI->IdPoolList->addItem( ItemText ); + + // We probably don't want to call UpdateUI every single time we add a property, but + // we do need to call it somewhere to make sure the ID list shows up on the UI... + if (mpUI->IdPoolGroupBox->isHidden()) + { + UpdateUI(); + } +} + +/** Populate the ID pool with the children of the given property */ +void CGeneratePropertyNamesDialog::AddChildrenToIDPool(IProperty* pProperty, bool Recursive) +{ + for (u32 ChildIdx = 0; ChildIdx < pProperty->NumChildren(); ChildIdx++) + { + IProperty* pChild = pProperty->ChildByIndex(ChildIdx); + + // Skip children that already have valid property names + if (!pChild->HasAccurateName() && pChild->UsesNameMap()) + { + AddToIDPool(pChild); + } + + if (Recursive) + { + AddChildrenToIDPool(pChild, true); + } + } +} + +/** Show event override */ +void CGeneratePropertyNamesDialog::showEvent(QShowEvent*) +{ + UpdateUI(); +} + +/** Close event override */ +void CGeneratePropertyNamesDialog::closeEvent(QCloseEvent*) +{ + if (mRunningNameGeneration) + { + CancelGeneration(); + } + ClearIdPool(); +} + +/** Add an item to the suffix list */ +void CGeneratePropertyNamesDialog::AddSuffix() +{ + QListWidgetItem* pNewItem = new QListWidgetItem("New Suffix", mpUI->TypeSuffixesListWidget); + pNewItem->setFlags( Qt::ItemIsEditable | + Qt::ItemIsEnabled | + Qt::ItemIsSelectable ); + mpUI->TypeSuffixesListWidget->setCurrentItem(pNewItem, QItemSelectionModel::ClearAndSelect); + mpUI->TypeSuffixesListWidget->editItem(pNewItem); +} + +/** Deletes an item from the suffix list */ +void CGeneratePropertyNamesDialog::DeleteSuffix() +{ + if (mpUI->TypeSuffixesListWidget->selectedItems().size() > 0) + { + int Row = mpUI->TypeSuffixesListWidget->currentRow(); + delete mpUI->TypeSuffixesListWidget->takeItem(Row); + } +} + +/** Clear the ID pool */ +void CGeneratePropertyNamesDialog::ClearIdPool() +{ + mIdPairs.clear(); + mpUI->IdPoolList->clear(); + UpdateUI(); +} + +/** Start name generation */ +void CGeneratePropertyNamesDialog::StartGeneration() +{ + ASSERT(!mRunningNameGeneration); + mRunningNameGeneration = true; + mCanceledNameGeneration = false; + mTaskOutput.clear(); + mCheckedItems.clear(); + mpUI->OutputTreeWidget->clear(); + + // Load all templates so we can match as many properties as possible + NGameList::LoadAllGameTemplates(); + + // Configure the generator + SPropertyNameGenerationParameters Params; + + for (int RowIdx = 0; RowIdx < mpUI->TypeSuffixesListWidget->count(); RowIdx++) + { + QString ItemText = mpUI->TypeSuffixesListWidget->item(RowIdx)->text(); + Params.TypeNames.push_back( TO_TSTRING(ItemText) ); + } + + Params.MaxWords = mpUI->NumWordsSpinBox->value(); + Params.Prefix = TO_TSTRING( mpUI->PrefixLineEdit->text() ); + Params.Suffix = TO_TSTRING( mpUI->SuffixLineEdit->text() ); + Params.Casing = mpUI->CasingComboBox->currentEnum(); + Params.ValidIdPairs = mIdPairs.toStdVector(); + Params.ExcludeAccuratelyNamedProperties = mpUI->UnnamedOnlyCheckBox->isChecked(); + Params.TestIntsAsChoices = mpUI->TestIntsAsChoicesCheckBox->isChecked(); + Params.PrintToLog = mpUI->LogOutputCheckBox->isChecked(); + + // Run the task and configure ourselves so we can update correctly + connect( &mFutureWatcher, SIGNAL(finished()), this, SLOT(GenerationComplete()) ); + mFuture = QtConcurrent::run(&mGenerator, &CPropertyNameGenerator::Generate, Params, &mNotifier); + mFutureWatcher.setFuture(mFuture); + + mUpdateTimer.start(500); + connect( &mUpdateTimer, SIGNAL(timeout()), this, SLOT(CheckForNewResults()) ); + + UpdateUI(); +} + +/** Cancel name generation */ +void CGeneratePropertyNamesDialog::CancelGeneration() +{ + mNotifier.SetCanceled(true); + mCanceledNameGeneration = true; + UpdateUI(); +} + +/** Called when name generation is complete */ +void CGeneratePropertyNamesDialog::GenerationComplete() +{ + mRunningNameGeneration = false; + mCanceledNameGeneration = false; + mNotifier.SetCanceled(false); + mUpdateTimer.stop(); + + mTaskOutput = QList::fromStdList( + mGenerator.GetOutput() + ); + + mpUI->ProgressBar->setValue( mpUI->ProgressBar->maximum() ); + + disconnect( &mFutureWatcher, 0, this, 0 ); + disconnect( &mUpdateTimer, 0, this, 0 ); + UpdateUI(); +} + +/** Called when an item in the output tree has been checked or unchecked */ +void CGeneratePropertyNamesDialog::OnTreeItemChecked(QTreeWidgetItem* pItem) +{ + if (pItem->checkState(0) == Qt::Checked) + mCheckedItems.append(pItem); + else + mCheckedItems.removeOne(pItem); + + UpdateUI(); +} + +/** Called when an item in the output tree has been double clicked */ +void CGeneratePropertyNamesDialog::OnTreeItemDoubleClicked(QTreeWidgetItem* pItem) +{ + // Check whether this is an XML path + if (pItem->parent() != nullptr) + { + QString Text = pItem->text(0); + + if (Text.endsWith(".xml")) + { + TString TStrText = TO_TSTRING(Text); + TString DirPath = "../templates/" + TStrText.GetFileDirectory(); + TString AbsPath = FileUtil::MakeAbsolute(DirPath) + TStrText.GetFileName(); + UICommon::OpenInExternalApplication( TO_QSTRING(AbsPath) ); + } + } +} + +/** Check all items in the output tree */ +void CGeneratePropertyNamesDialog::CheckAll() +{ + mpUI->OutputTreeWidget->blockSignals(true); + mCheckedItems.clear(); + mCheckedItems.reserve( mpUI->OutputTreeWidget->topLevelItemCount() ); + + for (int RowIdx = 0; RowIdx < mpUI->OutputTreeWidget->topLevelItemCount(); RowIdx++) + { + QTreeWidgetItem* pItem = mpUI->OutputTreeWidget->topLevelItem(RowIdx); + pItem->setCheckState( 0, Qt::Checked ); + mCheckedItems << pItem; + } + + mpUI->OutputTreeWidget->blockSignals(false); + UpdateUI(); +} + +/** Uncheck all items in the output tree */ +void CGeneratePropertyNamesDialog::UncheckAll() +{ + mpUI->OutputGroupBox->blockSignals(true); + + for (int RowIdx = 0; RowIdx < mpUI->OutputTreeWidget->topLevelItemCount(); RowIdx++) + { + QTreeWidgetItem* pItem = mpUI->OutputTreeWidget->topLevelItem(RowIdx); + pItem->setCheckState( 0, Qt::Unchecked ); + } + + mCheckedItems.clear(); + mpUI->OutputTreeWidget->blockSignals(false); + UpdateUI(); +} + +/** Apply generated names on selected items */ +void CGeneratePropertyNamesDialog::ApplyChanges() +{ + // make sure the user really wants to do this + QString WarningText = + QString("Are you sure you want to rename %1 %2? This operation cannot be undone.") + .arg(mCheckedItems.size()) + .arg(mCheckedItems.size() == 1 ? "property" : "properties"); + + bool ReallyRename = UICommon::YesNoQuestion(this, "Warning", WarningText); + + if (!ReallyRename) + { + return; + } + + // Perform rename operation + for (int ItemIdx = 0; ItemIdx < mCheckedItems.size(); ItemIdx++) + { + QTreeWidgetItem* pItem = mCheckedItems[ItemIdx]; + u32 ID = TO_TSTRING( pItem->text(2) ).ToInt32(); + TString Type = TO_TSTRING( pItem->text(1) ); + TString NewName = TO_TSTRING( pItem->text(0) ); + + NPropertyMap::SetPropertyName( ID, *Type, *NewName ); + pItem->setText( 3, TO_QSTRING(NewName) ); + } + + NPropertyMap::SaveMap(); +} + +/** Check progress on name generation task and display results on the UI */ +void CGeneratePropertyNamesDialog::CheckForNewResults() +{ + const std::list& rkOutput = mGenerator.GetOutput(); + + QTreeWidget* pTreeWidget = mpUI->OutputTreeWidget; + int CurItemCount = pTreeWidget->topLevelItemCount(); + + // Add new items to the tree + if (rkOutput.size() > CurItemCount) + { + std::list::const_iterator Iter = rkOutput.cbegin(); + std::list::const_iterator End = rkOutput.cend(); + std::advance(Iter, CurItemCount); + + for (; Iter != End; Iter++) + { + const SGeneratedPropertyName& rkName = *Iter; + + // Add an item to the tree for this name + QStringList ColumnText; + ColumnText << TO_QSTRING( rkName.Name ) + << TO_QSTRING( rkName.Type ) + << TO_QSTRING( TString::HexString(rkName.ID) ) + << TO_QSTRING( NPropertyMap::GetPropertyName(rkName.ID, *rkName.Type) ); + + QTreeWidgetItem* pItem = new CCheckableTreeWidgetItem(pTreeWidget, ColumnText); + pItem->setFlags(Qt::ItemIsEnabled | + Qt::ItemIsSelectable | + Qt::ItemIsUserCheckable); + pItem->setCheckState(0, Qt::Unchecked); + + // Add children items + for (auto Iter = rkName.XmlList.begin(); Iter != rkName.XmlList.end(); Iter++) + { + QString XmlName = TO_QSTRING( *Iter ); + ColumnText.clear(); + ColumnText << XmlName; + + QTreeWidgetItem* pChild = new QTreeWidgetItem(pItem, ColumnText); + pChild->setFlags(Qt::ItemIsEnabled); + pChild->setFirstColumnSpanned(true); + } + } + } + + UpdateUI(); +} + +/** Updates the enabled status of various widgets */ +void CGeneratePropertyNamesDialog::UpdateUI() +{ + mpUI->SettingsGroupBox->setEnabled( !mRunningNameGeneration ); + mpUI->TypeSuffixesGroupBox->setEnabled( !mRunningNameGeneration ); + mpUI->TypeSuffixesGroupBox->setHidden( !mIdPairs.isEmpty() ); + mpUI->IdPoolGroupBox->setEnabled( !mRunningNameGeneration ); + mpUI->IdPoolGroupBox->setHidden( mIdPairs.isEmpty() ); + mpUI->StartButton->setEnabled( !mRunningNameGeneration ); + mpUI->CancelButton->setEnabled( mRunningNameGeneration && !mCanceledNameGeneration ); + + int TotalItems = mpUI->OutputTreeWidget->topLevelItemCount(); + bool HasResults = TotalItems > 0; + bool HasCheckedResults = HasResults && !mCheckedItems.isEmpty(); + mpUI->CheckAllButton->setEnabled( HasResults ); + mpUI->UncheckAllButton->setEnabled( HasResults ); + mpUI->ApplyButton->setEnabled( !mRunningNameGeneration && HasCheckedResults ); + + // Update label + if (HasResults) + { + mpUI->NumSelectedLabel->setText( + QString("%1 names, %2 selected") + .arg(TotalItems) + .arg(mCheckedItems.size()) + ); + } + else + mpUI->NumSelectedLabel->clear(); +} diff --git a/src/Editor/CGeneratePropertyNamesDialog.h b/src/Editor/CGeneratePropertyNamesDialog.h new file mode 100644 index 00000000..62b2393f --- /dev/null +++ b/src/Editor/CGeneratePropertyNamesDialog.h @@ -0,0 +1,119 @@ +#ifndef CGENERATEPROPERTYNAMESDIALOG_H +#define CGENERATEPROPERTYNAMESDIALOG_H + +#include "CProgressBarNotifier.h" +#include "Editor/Widgets/TEnumComboBox.h" +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +using CNameCasingComboBox = TEnumComboBox; + +namespace Ui { +class CGeneratePropertyNamesDialog; +} + +/** + * Dialog box for accessing property name generation functionality. + */ +class CGeneratePropertyNamesDialog : public QDialog +{ + Q_OBJECT + Ui::CGeneratePropertyNamesDialog* mpUI; + + /** The name generator */ + CPropertyNameGenerator mGenerator; + + /** Progress notifier for updating the progress bar */ + CProgressBarNotifier mNotifier; + + /** List of ID/type pairs in the ID pool */ + QVector mIdPairs; + + /** Future/future watcher for name generation task */ + QFuture mFuture; + QFutureWatcher mFutureWatcher; + + /** Timer for fetching updates from name generation task */ + QTimer mUpdateTimer; + + /** Copy of the output buffer from the name generator; only set after completion */ + QList mTaskOutput; + + /** Checked items in the output tree widget */ + QVector mCheckedItems; + + /** Whether name generation is running */ + bool mRunningNameGeneration; + + /** Whether name generation has been canceled */ + bool mCanceledNameGeneration; + +public: + explicit CGeneratePropertyNamesDialog(QWidget *pParent = 0); + ~CGeneratePropertyNamesDialog(); + + /** Add a property to the ID pool */ + void AddToIDPool(IProperty* pProperty); + + /** Populate the ID pool with the children of the given property */ + void AddChildrenToIDPool(IProperty* pProperty, bool Recursive); + + /** Populate the ID pool with enum values */ + void AddEnumValuesToIDPool(CEnumProperty* pEnum); + +public slots: + /** Show event override */ + virtual void showEvent(QShowEvent* pEvent); + + /** Close event override */ + virtual void closeEvent(QCloseEvent* pEvent); + + /** Add an item to the suffix list */ + void AddSuffix(); + + /** Deletes an item from the suffix list */ + void DeleteSuffix(); + + /** Clear the ID pool */ + void ClearIdPool(); + + /** Start name generation */ + void StartGeneration(); + + /** Cancel name generation */ + void CancelGeneration(); + + /** Called when name generation is complete */ + void GenerationComplete(); + + /** Called when an item in the output tree has been checked or unchecked */ + void OnTreeItemChecked(QTreeWidgetItem* pItem); + + /** Called when an item in the output tree has been double clicked */ + void OnTreeItemDoubleClicked(QTreeWidgetItem* pItem); + + /** Check all items in the output tree */ + void CheckAll(); + + /** Uncheck all items in the output tree */ + void UncheckAll(); + + /** Apply generated names on selected items */ + void ApplyChanges(); + + /** Check progress on name generation task and display results on the UI */ + void CheckForNewResults(); + + /** Updates the enabled status of various widgets */ + void UpdateUI(); +}; + +#endif // CGENERATEPROPERTYNAMESDIALOG_H diff --git a/src/Editor/CGeneratePropertyNamesDialog.ui b/src/Editor/CGeneratePropertyNamesDialog.ui new file mode 100644 index 00000000..d7ec0402 --- /dev/null +++ b/src/Editor/CGeneratePropertyNamesDialog.ui @@ -0,0 +1,455 @@ + + + CGeneratePropertyNamesDialog + + + + 0 + 0 + 693 + 604 + + + + Generate Property Names + + + + + + + + + + + 1 + 0 + + + + Settings + + + + + + + + Max words: + + + + + + + 2 + + + + + + + Prefix: + + + + + + + + + + Suffix: + + + + + + + + + + Casing: + + + + + + + + + + + + Print output to log + + + true + + + + + + + Exclude known properties + + + true + + + + + + + Test ints as choices + + + + + + + + + + + 1 + 0 + + + + Types + + + + + + + 10 + + + + true + + + QAbstractItemView::ScrollPerPixel + + + QAbstractItemView::ScrollPerPixel + + + + bool + + + ItemIsSelectable|ItemIsEditable|ItemIsEnabled + + + + + int + + + ItemIsSelectable|ItemIsEditable|ItemIsEnabled + + + + + float + + + ItemIsSelectable|ItemIsEditable|ItemIsEnabled + + + + + asset + + + ItemIsSelectable|ItemIsEditable|ItemIsEnabled + + + + + choice + + + ItemIsSelectable|ItemIsEditable|ItemIsEnabled + + + + + enum + + + ItemIsSelectable|ItemIsEditable|ItemIsEnabled + + + + + string + + + ItemIsSelectable|ItemIsEditable|ItemIsEnabled + + + + + sound + + + ItemIsSelectable|ItemIsEditable|ItemIsEnabled + + + + + Color + + + ItemIsSelectable|ItemIsEditable|ItemIsEnabled + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + :/icons/Plus.png:/icons/Plus.png + + + + + + + + + + + :/icons/Minus v2.png:/icons/Minus v2.png + + + + + + + + + + + + IDs + + + + + + true + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Clear + + + + + + + + + + + + + + + 3 + 0 + + + + Output + + + + + + + 10 + + + + QAbstractItemView::NoEditTriggers + + + false + + + true + + + QAbstractItemView::ScrollPerPixel + + + 10 + + + true + + + false + + + + Name + + + + + Type + + + + + ID + + + + + Current + + + + + + + + + + Check All + + + + + + + Uncheck All + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Apply + + + + + + + + + + + + + + + + 100000 + + + 0 + + + + + + + Start + + + + + + + Cancel + + + + + + + + + + CCheckableTreeWidget + QTreeWidget +
Editor/Widgets/CCheckableTreeWidget.h
+
+ + CNameCasingComboBox + QComboBox +
Editor/CGeneratePropertyNamesDialog.h
+
+
+ + + + +
diff --git a/src/Editor/CProgressBarNotifier.h b/src/Editor/CProgressBarNotifier.h new file mode 100644 index 00000000..78f3c6a6 --- /dev/null +++ b/src/Editor/CProgressBarNotifier.h @@ -0,0 +1,53 @@ +#ifndef CPROGRESSBARNOTIFIER_H +#define CPROGRESSBARNOTIFIER_H + +#include +#include +#include + +/** Progress notifier class that updates a QProgressBar. */ +class CProgressBarNotifier : public IProgressNotifier +{ + /** The progress bar we are relaying updates to */ + QProgressBar* mpProgressBar; + + /** Whether the user has requested to cancel */ + bool mCancel; + +public: + CProgressBarNotifier() + : IProgressNotifier() + , mpProgressBar(nullptr) + , mCancel(false) + {} + + inline void SetProgressBar(QProgressBar* pProgressBar) + { + mpProgressBar = pProgressBar; + } + + inline void SetCanceled(bool ShouldCancel) + { + mCancel = ShouldCancel; + } + + /** IProgressNotifier interface */ + virtual bool ShouldCancel() const + { + return mCancel; + } + +protected: + virtual void UpdateProgress(const TString &, const TString &, float ProgressPercent) + { + if (mpProgressBar) + { + int Alpha = Math::Lerp(mpProgressBar->minimum(), mpProgressBar->maximum(), ProgressPercent); + + // Defer setValue call so it runs on the correct thread + QMetaObject::invokeMethod(mpProgressBar, "setValue", Qt::AutoConnection, Q_ARG(int, Alpha)); + } + } +}; + +#endif // CPROGRESSBARNOTIFIER_H diff --git a/src/Editor/CProjectSettingsDialog.cpp b/src/Editor/CProjectSettingsDialog.cpp index 1082de49..9ad4e746 100644 --- a/src/Editor/CProjectSettingsDialog.cpp +++ b/src/Editor/CProjectSettingsDialog.cpp @@ -59,9 +59,10 @@ void CProjectSettingsDialog::ActiveProjectChanged(CGameProject *pProj) float BuildVer = pProj->BuildVersion(); ERegion Region = pProj->Region(); + TString RegionName = TEnumReflection::ConvertValueToString(Region); TString BuildName = pProj->GameInfo()->GetBuildName(BuildVer, Region); mpUI->BuildLineEdit->setText( QString("%1 (%2)").arg(BuildVer).arg( TO_QSTRING(BuildName) ) ); - mpUI->RegionLineEdit->setText( TO_QSTRING(GetRegionName(Region)) ); + mpUI->RegionLineEdit->setText( TO_QSTRING(RegionName) ); // Banner info COpeningBanner Banner(pProj); diff --git a/src/Editor/CPropertyNameValidator.cpp b/src/Editor/CPropertyNameValidator.cpp new file mode 100644 index 00000000..28a60f1e --- /dev/null +++ b/src/Editor/CPropertyNameValidator.cpp @@ -0,0 +1,49 @@ +#include "CPropertyNameValidator.h" +#include "UICommon.h" +#include + +CPropertyNameValidator::CPropertyNameValidator(QObject* pParent) + : QValidator(pParent) +{} + +/** Set the property to validate against */ +void CPropertyNameValidator::SetProperty(IProperty* pProp) +{ + mpProperty = pProp; + emit changed(); +} + +/** Set the type name override */ +void CPropertyNameValidator::SetTypeNameOverride(const QString& kNewTypeName) +{ + mTypeNameOverride = kNewTypeName; + emit changed(); +} + +/** Perform validation */ +QValidator::State CPropertyNameValidator::validate(QString& rInput, int&) const +{ + if (mpProperty) + { + TString TypeName = (mTypeNameOverride.isEmpty() ? mpProperty->HashableTypeName() : TO_TSTRING(mTypeNameOverride)); + + CCRC32 Hash; + Hash.Hash( rInput.toStdString().c_str() ); + Hash.Hash( *TypeName ); + u32 PropertyID = Hash.Digest(); + + if (PropertyID != mpProperty->ID()) + { + if (mpProperty->Type() == EPropertyType::Int) + { + CCRC32 Hash2; + Hash2.Hash( rInput.toStdString().c_str() ); + Hash2.Hash( "choice" ); + PropertyID = Hash2.Digest(); + } + } + return ( PropertyID == mpProperty->ID() ? QValidator::Acceptable : QValidator::Invalid ); + } + + return QValidator::Invalid; +} diff --git a/src/Editor/CPropertyNameValidator.h b/src/Editor/CPropertyNameValidator.h new file mode 100644 index 00000000..3e4d20c1 --- /dev/null +++ b/src/Editor/CPropertyNameValidator.h @@ -0,0 +1,32 @@ +#ifndef CPROPERTYNAMEVALIDATOR_H +#define CPROPERTYNAMEVALIDATOR_H + +#include +#include + +/** QValidator subclass that checks if a property name is valid */ +class CPropertyNameValidator : public QValidator +{ + Q_OBJECT + + /** The property being validated against */ + IProperty* mpProperty; + + /** String to use to override the type name. If empty, the property's normal type name is used. */ + QString mTypeNameOverride; + +public: + CPropertyNameValidator(QObject* pParent = 0); + + /** Perform validation */ + QValidator::State validate(QString& rInput, int& rPos) const; + +public slots: + /** Set the property to validate against */ + void SetProperty(IProperty* pProp); + + /** Set the type name override */ + void SetTypeNameOverride(const QString& kNewTypeName); +}; + +#endif // CPROPERTYNAMEVALIDATOR_H diff --git a/src/Editor/CUIRelay.h b/src/Editor/CUIRelay.h index d94ec70c..0203f004 100644 --- a/src/Editor/CUIRelay.h +++ b/src/Editor/CUIRelay.h @@ -25,6 +25,13 @@ public: // Note: All function calls should be deferred with QMetaObject::invokeMethod to ensure // that they run on the UI thread instead of whatever thread we happen to be on. + virtual void AsyncMessageBox(const TString& rkInfoBoxTitle, const TString& rkMessage) + { + QMetaObject::invokeMethod(this, "AsyncMessageBoxSlot", Qt::QueuedConnection, + Q_ARG(QString, TO_QSTRING(rkInfoBoxTitle)), + Q_ARG(QString, TO_QSTRING(rkMessage)) ); + } + virtual bool AskYesNoQuestion(const TString& rkInfoBoxTitle, const TString& rkQuestion) { bool RetVal; @@ -36,6 +43,11 @@ public: } public slots: + void AsyncMessageBoxSlot(const QString& rkInfoBoxTitle, const QString& rkMessage) + { + UICommon::InfoMsg(gpEdApp->WorldEditor(), rkInfoBoxTitle, rkMessage); + } + bool AskYesNoQuestionSlot(const QString& rkInfoBoxTitle, const QString& rkQuestion) { return UICommon::YesNoQuestion(gpEdApp->WorldEditor(), rkInfoBoxTitle, rkQuestion); diff --git a/src/Editor/Editor.pro b/src/Editor/Editor.pro index 9a64710a..c86ba1af 100644 --- a/src/Editor/Editor.pro +++ b/src/Editor/Editor.pro @@ -9,7 +9,9 @@ DEFINES += PWE_EDITOR RESOURCES += Icons.qrc win32: { - QMAKE_CXXFLAGS += /WX + QMAKE_CXXFLAGS += /WX \ + -std:c++17 + RC_ICONS += icons/AppIcon.ico QT += winextras } @@ -34,12 +36,9 @@ CONFIG(debug, debug|release) { LIBS += -L$$BUILD_DIR/Common/ -lCommond \ -L$$BUILD_DIR/Math/ -lMathd \ -L$$BUILD_DIR/Core/ -lCored \ - -L$$EXTERNALS_DIR/assimp/lib/ -lassimp-vc140-mtd \ - -L$$EXTERNALS_DIR/boost_1_63_0/lib64-msvc-14.0 -llibboost_filesystem-vc140-mt-gd-1_63 \ - -L$$EXTERNALS_DIR/lzo-2.09/lib/ -llzo2d \ - -L$$EXTERNALS_DIR/nodtool/build/debug/lib/ -lnod \ - -L$$EXTERNALS_DIR/nodtool/build/debug/logvisor/ -llogvisor \ - -L$$EXTERNALS_DIR/tinyxml2/lib/ -ltinyxml2d \ + -L$$EXTERNALS_DIR/assimp/lib/Debug -lassimp-vc140-mt \ + -L$$EXTERNALS_DIR/nod/lib/Debug -lnod \ + -L$$EXTERNALS_DIR/nod/logvisor/Debug -llogvisor \ -L$$EXTERNALS_DIR/zlib/lib/ -lzlibd # Debug Target Dependencies @@ -61,12 +60,9 @@ CONFIG(release, debug|release) { LIBS += -L$$BUILD_DIR/Common/ -lCommon \ -L$$BUILD_DIR/Math/ -lMath \ -L$$BUILD_DIR/Core/ -lCore \ - -L$$EXTERNALS_DIR/assimp/lib/ -lassimp-vc140-mt \ - -L$$EXTERNALS_DIR/boost_1_63_0/lib64-msvc-14.0 -llibboost_filesystem-vc140-mt-1_63 \ - -L$$EXTERNALS_DIR/lzo-2.09/lib/ -llzo2 \ - -L$$EXTERNALS_DIR/nodtool/build/release/lib/ -lnod \ - -L$$EXTERNALS_DIR/nodtool/build/release/logvisor -llogvisor \ - -L$$EXTERNALS_DIR/tinyxml2/lib/ -ltinyxml2 \ + -L$$EXTERNALS_DIR/assimp/lib/Release -lassimp-vc140-mt \ + -L$$EXTERNALS_DIR/nod/lib/Release -lnod \ + -L$$EXTERNALS_DIR/nod/logvisor/Release -llogvisor \ -L$$EXTERNALS_DIR/zlib/lib/ -lzlib # Release Target Dependencies @@ -78,18 +74,19 @@ CONFIG(release, debug|release) { } # Debug/Release Libs -LIBS += -L$$EXTERNALS_DIR/glew-2.0.0/lib/Release/x64 -lglew32s \ +LIBS += -L$$EXTERNALS_DIR/glew-2.1.0/lib/Release/x64 -lglew32s \ -lopengl32 # Include Paths INCLUDEPATH += $$PWE_MAIN_INCLUDE \ $$EXTERNALS_DIR/assimp/include \ - $$EXTERNALS_DIR/glew-2.0.0/include \ - $$EXTERNALS_DIR/lzo-2.09/include \ - $$EXTERNALS_DIR/nodtool/include \ - $$EXTERNALS_DIR/nodtool/logvisor/include \ - $$EXTERNALS_DIR/tinyxml2/include \ - $$EXTERNALS_DIR/zlib/include + $$EXTERNALS_DIR/CodeGen/include \ + $$EXTERNALS_DIR/glew-2.1.0/include \ + $$EXTERNALS_DIR/lzo-2.10/include \ + $$EXTERNALS_DIR/nod/include \ + $$EXTERNALS_DIR/nod/logvisor/include \ + $$EXTERNALS_DIR/tinyxml2 \ + $$EXTERNALS_DIR/zlib # Header Files HEADERS += \ @@ -196,7 +193,16 @@ HEADERS += \ Undo/CRenameDirectoryCommand.h \ CFileNameValidator.h \ Undo/ICreateDeleteDirectoryCommand.h \ - ResourceBrowser/CVirtualDirectoryTreeView.h + ResourceBrowser/CVirtualDirectoryTreeView.h \ + CPropertyNameValidator.h \ + Widgets/CSoftValidatorLineEdit.h \ + Widgets/CValidityLabel.h \ + CGeneratePropertyNamesDialog.h \ + CProgressBarNotifier.h \ + Widgets/CCheckableTreeWidgetItem.h \ + Widgets/CCheckableTreeWidget.h \ + Undo/IEditPropertyCommand.h \ + Widgets/TEnumComboBox.h # Source Files SOURCES += \ @@ -234,8 +240,6 @@ SOURCES += \ PropertyEdit/CPropertyDelegate.cpp \ PropertyEdit/CPropertyView.cpp \ WorldEditor/CInstancesModel.cpp \ - Undo/CEditScriptPropertyCommand.cpp \ - Undo/CResizeScriptArrayCommand.cpp \ WorldEditor/WEditorProperties.cpp \ Undo/CChangeLayerCommand.cpp \ WorldEditor/CTemplateEditDialog.cpp \ @@ -270,7 +274,10 @@ SOURCES += \ ResourceBrowser/CResourceTableModel.cpp \ ResourceBrowser/CResourceTableView.cpp \ ResourceBrowser/CVirtualDirectoryModel.cpp \ - ResourceBrowser/CVirtualDirectoryTreeView.cpp + ResourceBrowser/CVirtualDirectoryTreeView.cpp \ + CPropertyNameValidator.cpp \ + CGeneratePropertyNamesDialog.cpp \ + Undo/IEditPropertyCommand.cpp # UI Files FORMS += \ @@ -296,4 +303,11 @@ FORMS += \ CProjectSettingsDialog.ui \ WorldEditor/CPoiMapSidebar.ui \ CProgressDialog.ui \ - Widgets/CSelectResourcePanel.ui + Widgets/CSelectResourcePanel.ui \ + CGeneratePropertyNamesDialog.ui + +# Codegen +CODEGEN_DIR = $$EXTERNALS_DIR/CodeGen +CODEGEN_OUT_PATH = $$BUILD_DIR/Editor/codegen_build/auto_codegen.cpp +CODEGEN_SRC_PATH = $$PWD +include($$EXTERNALS_DIR/CodeGen/codegen.pri) diff --git a/src/Editor/ModelEditor/CModelEditorWindow.cpp b/src/Editor/ModelEditor/CModelEditorWindow.cpp index bd7d03a7..53416b62 100644 --- a/src/Editor/ModelEditor/CModelEditorWindow.cpp +++ b/src/Editor/ModelEditor/CModelEditorWindow.cpp @@ -31,7 +31,7 @@ CModelEditorWindow::CModelEditorWindow(CModel *pModel, QWidget *pParent) , mIgnoreSignals(false) { ui->setupUi(this); - ui->ActionSave->setEnabled( pModel->Game() == ePrime ); // we don't support saving games later than MP1 + ui->ActionSave->setEnabled( pModel->Game() == EGame::Prime ); // we don't support saving games later than MP1 REPLACE_WINDOWTITLE_APPVARS; ui->Viewport->SetNode(mpCurrentModelNode); @@ -740,7 +740,7 @@ void CModelEditorWindow::Import() } CModel *pModel = nullptr; - CMaterialSet *pSet = CMaterialLoader::ImportAssimpMaterials(pScene, ePrime); + CMaterialSet *pSet = CMaterialLoader::ImportAssimpMaterials(pScene, EGame::Prime); pModel = CModelLoader::ImportAssimpNode(pScene->mRootNode, pScene, *pSet); SetActiveModel(pModel); @@ -764,9 +764,10 @@ void CModelEditorWindow::ConvertToDDS() if (Input.isEmpty()) return; TString TexFilename = TO_TSTRING(Input); - CTexture *pTex = CTextureDecoder::LoadDDS( CFileInStream(TexFilename, IOUtil::eLittleEndian), nullptr ); - TString OutName = TexFilename.GetFilePathWithoutExtension() + ".dds"; + CFileInStream InTextureFile(TexFilename, IOUtil::eLittleEndian); + CTexture *pTex = CTextureDecoder::LoadTXTR( InTextureFile, nullptr ); + TString OutName = TexFilename.GetFilePathWithoutExtension() + ".dds"; CFileOutStream Out(OutName, IOUtil::eLittleEndian); if (!Out.IsValid()) QMessageBox::warning(this, "Error", "Couldn't open output DDS!"); @@ -786,7 +787,8 @@ void CModelEditorWindow::ConvertToTXTR() if (Input.isEmpty()) return; TString TexFilename = TO_TSTRING(Input); - CTexture *pTex = CTextureDecoder::LoadDDS(CFileInStream(TexFilename, IOUtil::eLittleEndian), nullptr); + CFileInStream InTextureFile = CFileInStream(TexFilename, IOUtil::eLittleEndian); + CTexture *pTex = CTextureDecoder::LoadDDS(InTextureFile, nullptr); TString OutName = TexFilename.GetFilePathWithoutExtension() + ".txtr"; if ((pTex->TexelFormat() != eDXT1) || (pTex->NumMipMaps() > 1)) diff --git a/src/Editor/PropertyEdit/CPropertyDelegate.cpp b/src/Editor/PropertyEdit/CPropertyDelegate.cpp index ff9a99c6..a284e398 100644 --- a/src/Editor/PropertyEdit/CPropertyDelegate.cpp +++ b/src/Editor/PropertyEdit/CPropertyDelegate.cpp @@ -10,8 +10,7 @@ #include "Editor/Widgets/WIntegralSpinBox.h" #include -#include -#include +#include #include #include @@ -54,10 +53,12 @@ QWidget* CPropertyDelegate::createEditor(QWidget *pParent, const QStyleOptionVie if (pProp) { - switch (pProp->Type()) + EPropertyType Type = mpModel->GetEffectiveFieldType(pProp); + + switch (Type) { - case eBoolProperty: + case EPropertyType::Bool: { QCheckBox *pCheckBox = new QCheckBox(pParent); CONNECT_RELAY(pCheckBox, rkIndex, toggled(bool)) @@ -65,39 +66,39 @@ QWidget* CPropertyDelegate::createEditor(QWidget *pParent, const QStyleOptionVie break; } - case eShortProperty: + case EPropertyType::Short: { WIntegralSpinBox *pSpinBox = new WIntegralSpinBox(pParent); pSpinBox->setMinimum(INT16_MIN); pSpinBox->setMaximum(INT16_MAX); - pSpinBox->setSuffix(TO_QSTRING(pProp->Template()->Suffix())); + pSpinBox->setSuffix(TO_QSTRING(pProp->Suffix())); CONNECT_RELAY(pSpinBox, rkIndex, valueChanged(int)) pOut = pSpinBox; break; } - case eLongProperty: + case EPropertyType::Int: { WIntegralSpinBox *pSpinBox = new WIntegralSpinBox(pParent); pSpinBox->setMinimum(INT32_MIN); pSpinBox->setMaximum(INT32_MAX); - pSpinBox->setSuffix(TO_QSTRING(pProp->Template()->Suffix())); + pSpinBox->setSuffix(TO_QSTRING(pProp->Suffix())); CONNECT_RELAY(pSpinBox, rkIndex, valueChanged(int)) pOut = pSpinBox; break; } - case eFloatProperty: + case EPropertyType::Float: { WDraggableSpinBox *pSpinBox = new WDraggableSpinBox(pParent); pSpinBox->setSingleStep(0.1); - pSpinBox->setSuffix(TO_QSTRING(pProp->Template()->Suffix())); + pSpinBox->setSuffix(TO_QSTRING(pProp->Suffix())); CONNECT_RELAY(pSpinBox, rkIndex, valueChanged(double)) pOut = pSpinBox; break; } - case eColorProperty: + case EPropertyType::Color: { WColorPicker *pColorPicker = new WColorPicker(pParent); CONNECT_RELAY(pColorPicker, rkIndex, ColorChanged(QColor)) @@ -105,7 +106,7 @@ QWidget* CPropertyDelegate::createEditor(QWidget *pParent, const QStyleOptionVie break; } - case eSoundProperty: + case EPropertyType::Sound: { WIntegralSpinBox *pSpinBox = new WIntegralSpinBox(pParent); pSpinBox->setMinimum(-1); @@ -115,7 +116,7 @@ QWidget* CPropertyDelegate::createEditor(QWidget *pParent, const QStyleOptionVie break; } - case eStringProperty: + case EPropertyType::String: { QLineEdit *pLineEdit = new QLineEdit(pParent); CONNECT_RELAY(pLineEdit, rkIndex, textEdited(QString)) @@ -123,34 +124,34 @@ QWidget* CPropertyDelegate::createEditor(QWidget *pParent, const QStyleOptionVie break; } - case eEnumProperty: + case EPropertyType::Enum: + case EPropertyType::Choice: { QComboBox *pComboBox = new QComboBox(pParent); + CEnumProperty* pEnum = TPropCast(pProp); - CEnumTemplate *pTemp = static_cast(pProp->Template()); - - for (u32 iEnum = 0; iEnum < pTemp->NumEnumerators(); iEnum++) - pComboBox->addItem(TO_QSTRING(pTemp->EnumeratorName(iEnum))); + for (u32 ValueIdx = 0; ValueIdx < pEnum->NumPossibleValues(); ValueIdx++) + pComboBox->addItem(TO_QSTRING(pEnum->ValueName(ValueIdx))); CONNECT_RELAY(pComboBox, rkIndex, currentIndexChanged(int)) pOut = pComboBox; break; } - case eAssetProperty: + case EPropertyType::Asset: { CResourceSelector *pSelector = new CResourceSelector(pParent); pSelector->SetFrameVisible(false); - CAssetTemplate *pTemp = static_cast(pProp->Template()); - pSelector->SetTypeFilter(pTemp->TypeFilter()); + CAssetProperty *pAsset = TPropCast(pProp); + pSelector->SetTypeFilter(pAsset->GetTypeFilter()); CONNECT_RELAY(pSelector, rkIndex, ResourceChanged(CResourceEntry*)) pOut = pSelector; break; } - case eArrayProperty: + case EPropertyType::Array: { // No relay here, would prefer user to be sure of their change before it's reflected on the UI WIntegralSpinBox *pSpinBox = new WIntegralSpinBox(pParent); @@ -163,41 +164,23 @@ QWidget* CPropertyDelegate::createEditor(QWidget *pParent, const QStyleOptionVie } } - // Check for sub-property of vector/color/character - else if (rkIndex.internalId() & 0x1) + // Check for sub-property of flags/animation set + else if (rkIndex.internalId() & 0x80000000) { pProp = mpModel->PropertyForIndex(rkIndex, true); + EPropertyType Type = mpModel->GetEffectiveFieldType(pProp); // Handle character - if (pProp->Type() == eCharacterProperty) + if (Type == EPropertyType::AnimationSet) pOut = CreateCharacterEditor(pParent, rkIndex); - // Handle bitfield - else if (pProp->Type() == eBitfieldProperty) + // Handle flags + else if (Type == EPropertyType::Flags) { QCheckBox *pCheckBox = new QCheckBox(pParent); CONNECT_RELAY(pCheckBox, rkIndex, toggled(bool)) pOut = pCheckBox; } - - // Handle vector/color - else - { - WDraggableSpinBox *pSpinBox = new WDraggableSpinBox(pParent); - pSpinBox->setSingleStep(0.1); - - // Limit to range of 0-1 on colors - pProp = mpModel->PropertyForIndex(rkIndex, true); - - if (pProp->Type() == eColorProperty) - { - pSpinBox->setMinimum(0.0); - pSpinBox->setMaximum(1.0); - } - - CONNECT_RELAY(pSpinBox, rkIndex, valueChanged(double)) - pOut = pSpinBox; - } } if (pOut) @@ -219,110 +202,126 @@ void CPropertyDelegate::setEditorData(QWidget *pEditor, const QModelIndex &rkInd { // Set editor data for regular property IProperty *pProp = mpModel->PropertyForIndex(rkIndex, false); + void* pData = mpModel->DataPointerForIndex(rkIndex); if (pProp) { if (!mEditInProgress) { - switch (pProp->Type()) + EPropertyType Type = mpModel->GetEffectiveFieldType(pProp); + + switch (Type) { - case eBoolProperty: + case EPropertyType::Bool: { QCheckBox *pCheckBox = static_cast(pEditor); - TBoolProperty *pBool = static_cast(pProp); - pCheckBox->setChecked(pBool->Get()); + CBoolProperty *pBool = TPropCast(pProp); + pCheckBox->setChecked( pBool->Value(pData) ); break; } - case eShortProperty: + case EPropertyType::Short: { WIntegralSpinBox *pSpinBox = static_cast(pEditor); if (!pSpinBox->hasFocus()) { - TShortProperty *pShort = static_cast(pProp); - pSpinBox->setValue(pShort->Get()); + CShortProperty *pShort = TPropCast(pProp); + pSpinBox->setValue( pShort->Value(pData) ); } break; } - case eLongProperty: - case eSoundProperty: + case EPropertyType::Int: { WIntegralSpinBox *pSpinBox = static_cast(pEditor); if (!pSpinBox->hasFocus()) { - TLongProperty *pLong = static_cast(pProp); - pSpinBox->setValue(pLong->Get()); + // Ints use static_cast since sometimes we treat other property types as ints + CIntProperty *pInt = static_cast(pProp); + pSpinBox->setValue( pInt->Value(pData) ); } break; } - case eFloatProperty: + case EPropertyType::Sound: + { + WIntegralSpinBox *pSpinBox = static_cast(pEditor); + + if (!pSpinBox->hasFocus()) + { + CSoundProperty *pSound = TPropCast(pProp); + pSpinBox->setValue( pSound->Value(pData) ); + } + + break; + } + + case EPropertyType::Float: { WDraggableSpinBox *pSpinBox = static_cast(pEditor); if (!pSpinBox->hasFocus()) { - TFloatProperty *pFloat = static_cast(pProp); - pSpinBox->setValue(pFloat->Get()); + CFloatProperty *pFloat = TPropCast(pProp); + pSpinBox->setValue( pFloat->Value(pData) ); } break; } - case eColorProperty: + case EPropertyType::Color: { WColorPicker *pColorPicker = static_cast(pEditor); - TColorProperty *pColor = static_cast(pProp); + CColorProperty *pColor = TPropCast(pProp); - CColor Color = pColor->Get(); + CColor Color = pColor->Value(pData); pColorPicker->SetColor(TO_QCOLOR(Color)); break; } - case eStringProperty: + case EPropertyType::String: { QLineEdit *pLineEdit = static_cast(pEditor); if (!pLineEdit->hasFocus()) { - TStringProperty *pString = static_cast(pProp); - pLineEdit->setText(TO_QSTRING(pString->Get())); + CStringProperty *pString = TPropCast(pProp); + pLineEdit->setText( TO_QSTRING(pString->Value(pData)) ); } break; } - case eEnumProperty: + case EPropertyType::Enum: + case EPropertyType::Choice: { QComboBox *pComboBox = static_cast(pEditor); - TEnumProperty *pEnum = static_cast(pProp); - CEnumTemplate *pTemp = static_cast(pProp->Template()); - pComboBox->setCurrentIndex(pTemp->EnumeratorIndex(pEnum->Get())); + CEnumProperty* pEnum = TPropCast(pProp); + pComboBox->setCurrentIndex( pEnum->ValueIndex( pEnum->Value(pData) ) ); break; } - case eAssetProperty: + case EPropertyType::Asset: { CResourceSelector *pSelector = static_cast(pEditor); - TAssetProperty *pAsset = static_cast(pProp); - pSelector->SetResource(pAsset->Get()); + CAssetProperty *pAsset = TPropCast(pProp); + pSelector->SetResource(pAsset->Value(pData)); break; } - case eArrayProperty: + case EPropertyType::Array: { WIntegralSpinBox *pSpinBox = static_cast(pEditor); if (!pSpinBox->hasFocus()) { CArrayProperty *pArray = static_cast(pProp); - pSpinBox->setValue(pArray->Count()); + pSpinBox->setValue( pArray->ArrayCount(pData) ); } break; @@ -332,54 +331,23 @@ void CPropertyDelegate::setEditorData(QWidget *pEditor, const QModelIndex &rkInd } } - // Set editor data for character/bitfield/vector/color sub-property - else if (rkIndex.internalId() & 0x1) + // Set editor data for animation set/flags sub-property + else if (rkIndex.internalId() & 0x80000000) { pProp = mpModel->PropertyForIndex(rkIndex, true); + EPropertyType Type = mpModel->GetEffectiveFieldType(pProp); - if (pProp->Type() == eCharacterProperty) + if (Type == EPropertyType::AnimationSet) SetCharacterEditorData(pEditor, rkIndex); - else if (pProp->Type() == eBitfieldProperty) + else if (Type == EPropertyType::Flags) { QCheckBox *pCheckBox = static_cast(pEditor); - TBitfieldProperty *pBitfield = static_cast(pProp); - u32 Mask = static_cast(pBitfield->Template())->FlagMask(rkIndex.row()); - bool Set = (pBitfield->Get() & Mask) != 0; + CFlagsProperty* pFlags = TPropCast(pProp); + u32 Mask = pFlags->FlagMask(rkIndex.row()); + bool Set = (pFlags->Value(pData) & Mask) != 0; pCheckBox->setChecked(Set); } - - else - { - WDraggableSpinBox *pSpinBox = static_cast(pEditor); - float Value; - - if (!pSpinBox->hasFocus()) - { - if (pProp->Type() == eVector3Property) - { - TVector3Property *pVector = static_cast(pProp); - CVector3f Vector = pVector->Get(); - - if (rkIndex.row() == 0) Value = Vector.X; - if (rkIndex.row() == 1) Value = Vector.Y; - if (rkIndex.row() == 2) Value = Vector.Z; - } - - else if (pProp->Type() == eColorProperty) - { - TColorProperty *pColor = static_cast(pProp); - CColor Color = pColor->Get(); - - if (rkIndex.row() == 0) Value = Color.R; - if (rkIndex.row() == 1) Value = Color.G; - if (rkIndex.row() == 2) Value = Color.B; - if (rkIndex.row() == 3) Value = Color.A; - } - - pSpinBox->setValue((double) Value); - } - } } } @@ -391,182 +359,177 @@ void CPropertyDelegate::setModelData(QWidget *pEditor, QAbstractItemModel* /*pMo if (!mpModel) return; if (!pEditor) return; - IProperty *pProp = mpModel->PropertyForIndex(rkIndex, false); - IPropertyValue *pOldValue = nullptr; + IEditPropertyCommand* pCommand = nullptr; + IProperty *pProp = mpModel->PropertyForIndex(rkIndex, true); + void* pData = mpModel->DataPointerForIndex(rkIndex); if (pProp) { - IPropertyValue *pRawValue = pProp->RawValue(); - pOldValue = pRawValue ? pRawValue->Clone() : nullptr; + EPropertyType Type = mpModel->GetEffectiveFieldType(pProp); - switch (pProp->Type()) + QVector Objects; + Objects << mpModel->GetScriptObject(); + + if (Type != EPropertyType::Array) { + // TODO: support this for non script object properties + pCommand = new CEditScriptPropertyCommand(pProp, mpEditor, Objects, rkIndex); + pCommand->SaveOldData(); - case eBoolProperty: - { - QCheckBox *pCheckBox = static_cast(pEditor); - TBoolProperty *pBool = static_cast(pProp); - pBool->Set(pCheckBox->isChecked()); - break; - } - - case eShortProperty: - { - WIntegralSpinBox *pSpinBox = static_cast(pEditor); - TShortProperty *pShort = static_cast(pProp); - pShort->Set(pSpinBox->value()); - break; - } - - case eLongProperty: - case eSoundProperty: - { - WIntegralSpinBox *pSpinBox = static_cast(pEditor); - TLongProperty *pLong = static_cast(pProp); - pLong->Set(pSpinBox->value()); - break; - } - - case eFloatProperty: - { - WDraggableSpinBox *pSpinBox = static_cast(pEditor); - TFloatProperty *pFloat = static_cast(pProp); - pFloat->Set((float) pSpinBox->value()); - break; - } - - case eColorProperty: - { - WColorPicker *pColorPicker = static_cast(pEditor); - TColorProperty *pColor = static_cast(pProp); - - QColor Color = pColorPicker->Color(); - pColor->Set(TO_CCOLOR(Color)); - break; - } - - case eStringProperty: - { - QLineEdit *pLineEdit = static_cast(pEditor); - TStringProperty *pString = static_cast(pProp); - pString->Set(TO_TSTRING(pLineEdit->text())); - break; - } - - case eEnumProperty: - { - QComboBox *pComboBox = static_cast(pEditor); - TEnumProperty *pEnum = static_cast(pProp); - CEnumTemplate *pTemp = static_cast(pProp->Template()); - pEnum->Set(pTemp->EnumeratorID(pComboBox->currentIndex())); - break; - } - - case eAssetProperty: - { - CResourceSelector *pSelector = static_cast(pEditor); - CResourceEntry *pEntry = pSelector->Entry(); - - TAssetProperty *pAsset = static_cast(pProp); - pAsset->Set(pEntry ? pEntry->ID() : CAssetID::InvalidID(mpEditor->CurrentGame())); - break; - } - - case eArrayProperty: - { - WIntegralSpinBox *pSpinBox = static_cast(pEditor); - CArrayProperty *pArray = static_cast(pProp); - int NewCount = pSpinBox->value(); - - if (pArray->Count() != NewCount) + // Handle sub-properties of flags and animation sets + if (rkIndex.internalId() & 0x80000000) { - CResizeScriptArrayCommand *pCmd = new CResizeScriptArrayCommand(pProp, mpEditor, mpModel, NewCount); - mpEditor->UndoStack()->push(pCmd); + if (Type == EPropertyType::AnimationSet) + SetCharacterModelData(pEditor, rkIndex); + + else if (Type == EPropertyType::Flags) + { + QCheckBox* pCheckBox = static_cast(pEditor); + CFlagsProperty* pFlags = static_cast(pProp); + u32 Mask = pFlags->FlagMask(rkIndex.row()); + + int Flags = pFlags->Value(pData); + if (pCheckBox->isChecked()) Flags |= Mask; + else Flags &= ~Mask; + pFlags->ValueRef(pData) = Flags; + } } - break; - } - - } - } - - // Check for character/bitfield/vector/color sub-properties - else if (rkIndex.internalId() & 0x1) - { - pProp = mpModel->PropertyForIndex(rkIndex, true); - - IPropertyValue *pRawValue = pProp->RawValue(); - pOldValue = pRawValue ? pRawValue->Clone() : nullptr; - - if (pProp->Type() == eCharacterProperty) - SetCharacterModelData(pEditor, rkIndex); - - else if (pProp->Type() == eBitfieldProperty) - { - QCheckBox *pCheckBox = static_cast(pEditor); - TBitfieldProperty *pBitfield = static_cast(pProp); - u32 Mask = static_cast(pProp->Template())->FlagMask(rkIndex.row()); - - int Flags = pBitfield->Get(); - if (pCheckBox->isChecked()) Flags |= Mask; - else Flags &= ~Mask; - pBitfield->Set(Flags); + + else + { + switch (Type) + { + + case EPropertyType::Bool: + { + QCheckBox *pCheckBox = static_cast(pEditor); + CBoolProperty* pBool = static_cast(pProp); + pBool->ValueRef(pData) = pCheckBox->isChecked(); + break; + } + + case EPropertyType::Short: + { + WIntegralSpinBox* pSpinBox = static_cast(pEditor); + CShortProperty* pShort = static_cast(pProp); + pShort->ValueRef(pData) = pSpinBox->value(); + break; + } + + case EPropertyType::Int: + { + // Ints use static_cast since sometimes we treat other property types as ints + WIntegralSpinBox* pSpinBox = static_cast(pEditor); + CIntProperty* pInt = static_cast(pProp); + pInt->ValueRef(pData) = pSpinBox->value(); + break; + } + + case EPropertyType::Sound: + { + WIntegralSpinBox* pSpinBox = static_cast(pEditor); + CSoundProperty* pSound = static_cast(pProp); + pSound->ValueRef(pData) = pSpinBox->value(); + break; + } + + case EPropertyType::Float: + { + WDraggableSpinBox* pSpinBox = static_cast(pEditor); + CFloatProperty* pFloat = static_cast(pProp); + pFloat->ValueRef(pData) = (float) pSpinBox->value(); + break; + } + + case EPropertyType::Color: + { + WColorPicker* pColorPicker = static_cast(pEditor); + CColorProperty* pColor = static_cast(pProp); + + QColor Color = pColorPicker->Color(); + pColor->ValueRef(pData) = TO_CCOLOR(Color); + break; + } + + case EPropertyType::String: + { + QLineEdit* pLineEdit = static_cast(pEditor); + CStringProperty* pString = static_cast(pProp); + pString->ValueRef(pData) = TO_TSTRING(pLineEdit->text()); + break; + } + + case EPropertyType::Enum: + case EPropertyType::Choice: + { + QComboBox* pComboBox = static_cast(pEditor); + CEnumProperty* pEnum = static_cast(pProp); + pEnum->ValueRef(pData) = pEnum->ValueID(pComboBox->currentIndex()); + break; + } + + case EPropertyType::Asset: + { + CResourceSelector* pSelector = static_cast(pEditor); + CResourceEntry* pEntry = pSelector->Entry(); + + CAssetProperty* pAsset = static_cast(pProp); + pAsset->ValueRef(pData) = (pEntry ? pEntry->ID() : CAssetID::InvalidID(pAsset->Game())); + break; + } + + } + } + + pCommand->SaveNewData(); } + // Array else { - WDraggableSpinBox *pSpinBox = static_cast(pEditor); + pCommand = new CResizeScriptArrayCommand(pProp, mpEditor, Objects, mpModel, rkIndex); + pCommand->SaveOldData(); - if (pProp->Type() == eVector3Property) + WIntegralSpinBox* pSpinBox = static_cast(pEditor); + CArrayProperty* pArray = static_cast(pProp); + int OldCount = pArray->ArrayCount(pData); + int NewCount = pSpinBox->value(); + + if (OldCount != NewCount) { - TVector3Property *pVector = static_cast(pProp); - CVector3f Value = pVector->Get(); - - if (rkIndex.row() == 0) Value.X = (float) pSpinBox->value(); - if (rkIndex.row() == 1) Value.Y = (float) pSpinBox->value(); - if (rkIndex.row() == 2) Value.Z = (float) pSpinBox->value(); - - pVector->Set(Value); + mpModel->ArrayAboutToBeResized(rkIndex, NewCount); + pArray->Resize(pData, NewCount); + mpModel->ArrayResized(rkIndex, OldCount); } - else if (pProp->Type() == eColorProperty) - { - TColorProperty *pColor = static_cast(pProp); - CColor Value = pColor->Get(); - - if (rkIndex.row() == 0) Value.R = (float) pSpinBox->value(); - if (rkIndex.row() == 1) Value.G = (float) pSpinBox->value(); - if (rkIndex.row() == 2) Value.B = (float) pSpinBox->value(); - if (rkIndex.row() == 3) Value.A = (float) pSpinBox->value(); - - pColor->Set(Value); - } + pCommand->SaveNewData(); } } - if (pProp && pOldValue) + if (pCommand) { // Check for edit in progress - bool Matches = pOldValue->Matches(pProp->RawValue()); + bool DataChanged = pCommand->IsNewDataDifferent(); - if (!Matches && mInRelayWidgetEdit && (pEditor->hasFocus() || pProp->Type() == eColorProperty)) + if (DataChanged && mInRelayWidgetEdit && (pEditor->hasFocus() || pProp->Type() == EPropertyType::Color)) mEditInProgress = true; - bool EditInProgress = mEditInProgress; + bool EditWasInProgress = mEditInProgress; // Check for edit finished - if (!mInRelayWidgetEdit || (!pEditor->hasFocus() && pProp->Type() != eColorProperty)) + if (!mInRelayWidgetEdit || (!pEditor->hasFocus() && pProp->Type() != EPropertyType::Color)) mEditInProgress = false; - // Create undo command - if (!Matches || EditInProgress) + // Push undo command + if (DataChanged || EditWasInProgress) { // Always consider the edit done for bool properties - CEditScriptPropertyCommand *pCommand = new CEditScriptPropertyCommand(pProp, mpEditor, pOldValue, (!mEditInProgress || pProp->Type() == eBoolProperty)); + pCommand->SetEditComplete(!mEditInProgress || pProp->Type() == EPropertyType::Bool); mpEditor->UndoStack()->push(pCommand); } else - delete pOldValue; + delete pCommand; } } @@ -589,20 +552,19 @@ bool CPropertyDelegate::eventFilter(QObject *pObject, QEvent *pEvent) // Character properties have separate functions because they're somewhat complicated - they have different layouts in different games QWidget* CPropertyDelegate::CreateCharacterEditor(QWidget *pParent, const QModelIndex& rkIndex) const { - TCharacterProperty *pProp = static_cast(mpModel->PropertyForIndex(rkIndex, true)); - CAnimationParameters Params = pProp->Get(); + CAnimationSetProperty* pAnimSetProp = TPropCast(mpModel->PropertyForIndex(rkIndex, true)); + CAnimationParameters Params = pAnimSetProp->Value(mpModel->DataPointerForIndex(rkIndex)); // Determine property type EPropertyType Type = DetermineCharacterPropType(Params.Version(), rkIndex); - if (Type == eUnknownProperty) return nullptr; // Create widget - if (Type == eAssetProperty) + if (Type == EPropertyType::Asset) { - CResourceSelector *pSelector = new CResourceSelector(pParent); + CResourceSelector* pSelector = new CResourceSelector(pParent); pSelector->SetFrameVisible(false); - if (Params.Version() <= eEchoes) + if (Params.Version() <= EGame::Echoes) pSelector->SetTypeFilter(mpEditor->CurrentGame(), "ANCS"); else pSelector->SetTypeFilter(mpEditor->CurrentGame(), "CHAR"); @@ -611,23 +573,22 @@ QWidget* CPropertyDelegate::CreateCharacterEditor(QWidget *pParent, const QModel return pSelector; } - if (Type == eEnumProperty) + else if (Type == EPropertyType::Enum || Type == EPropertyType::Choice) { - QComboBox *pComboBox = new QComboBox(pParent); - - CAnimSet *pAnimSet = Params.AnimSet(); + QComboBox* pComboBox = new QComboBox(pParent); + CAnimSet* pAnimSet = Params.AnimSet(); if (pAnimSet) { - for (u32 iChr = 0; iChr < pAnimSet->NumCharacters(); iChr++) - pComboBox->addItem(TO_QSTRING(pAnimSet->Character(iChr)->Name)); + for (u32 CharIdx = 0; CharIdx < pAnimSet->NumCharacters(); CharIdx++) + pComboBox->addItem(TO_QSTRING(pAnimSet->Character(CharIdx)->Name)); } CONNECT_RELAY(pComboBox, rkIndex, currentIndexChanged(int)); return pComboBox; } - if (Type == eLongProperty) + else if (Type == EPropertyType::Int) { WIntegralSpinBox *pSpinBox = new WIntegralSpinBox(pParent); CONNECT_RELAY(pSpinBox, rkIndex, valueChanged(int)); @@ -639,23 +600,23 @@ QWidget* CPropertyDelegate::CreateCharacterEditor(QWidget *pParent, const QModel void CPropertyDelegate::SetCharacterEditorData(QWidget *pEditor, const QModelIndex& rkIndex) const { - TCharacterProperty *pProp = static_cast(mpModel->PropertyForIndex(rkIndex, true)); - CAnimationParameters Params = pProp->Get(); + CAnimationSetProperty* pAnimSetProp = TPropCast(mpModel->PropertyForIndex(rkIndex, true)); + CAnimationParameters Params = pAnimSetProp->Value(mpModel->DataPointerForIndex(rkIndex)); EPropertyType Type = DetermineCharacterPropType(Params.Version(), rkIndex); - if (Type == eAssetProperty) + if (Type == EPropertyType::Asset) { static_cast(pEditor)->SetResource(Params.AnimSet()); } - else if (Type == eEnumProperty) + else if (Type == EPropertyType::Enum || Type == EPropertyType::Choice) { static_cast(pEditor)->setCurrentIndex(Params.CharacterIndex()); } - else if (Type == eLongProperty && !pEditor->hasFocus()) + else if (Type == EPropertyType::Int && !pEditor->hasFocus()) { - int UnkIndex = (Params.Version() <= eEchoes ? rkIndex.row() - 2 : rkIndex.row() - 1); + int UnkIndex = (Params.Version() <= EGame::Echoes ? rkIndex.row() - 2 : rkIndex.row() - 1); u32 Value = Params.Unknown(UnkIndex); static_cast(pEditor)->setValue(Value); } @@ -663,32 +624,32 @@ void CPropertyDelegate::SetCharacterEditorData(QWidget *pEditor, const QModelInd void CPropertyDelegate::SetCharacterModelData(QWidget *pEditor, const QModelIndex& rkIndex) const { - TCharacterProperty *pProp = static_cast(mpModel->PropertyForIndex(rkIndex, true)); - CAnimationParameters Params = pProp->Get(); + CAnimationSetProperty* pAnimSetProp = TPropCast(mpModel->PropertyForIndex(rkIndex, true)); + CAnimationParameters Params = pAnimSetProp->Value(mpModel->DataPointerForIndex(rkIndex)); EPropertyType Type = DetermineCharacterPropType(Params.Version(), rkIndex); - if (Type == eAssetProperty) + if (Type == EPropertyType::Asset) { CResourceEntry *pEntry = static_cast(pEditor)->Entry(); Params.SetResource( pEntry ? pEntry->ID() : CAssetID::InvalidID(mpEditor->CurrentGame()) ); } - else if (Type == eEnumProperty) + else if (Type == EPropertyType::Enum || Type == EPropertyType::Choice) { Params.SetCharIndex( static_cast(pEditor)->currentIndex() ); } - else if (Type == eLongProperty) + else if (Type == EPropertyType::Int) { - int UnkIndex = (Params.Version() <= eEchoes ? rkIndex.row() - 2 : rkIndex.row() - 1); + int UnkIndex = (Params.Version() <= EGame::Echoes ? rkIndex.row() - 2 : rkIndex.row() - 1); Params.SetUnknown(UnkIndex, static_cast(pEditor)->value() ); } - pProp->Set(Params); + pAnimSetProp->ValueRef(mpModel->DataPointerForIndex(rkIndex)) = Params; // If we just updated the resource, make sure all the sub-properties of the character are flagged as changed. // We want to do this -after- updating the anim params on the property, which is why we have a second type check. - if (Type == eAssetProperty) + if (Type == EPropertyType::Asset) { QModelIndex ParentIndex = rkIndex.parent(); mpModel->dataChanged(mpModel->index(1, 1, ParentIndex), mpModel->index(mpModel->rowCount(ParentIndex) - 1, 1, ParentIndex)); @@ -697,23 +658,23 @@ void CPropertyDelegate::SetCharacterModelData(QWidget *pEditor, const QModelInde EPropertyType CPropertyDelegate::DetermineCharacterPropType(EGame Game, const QModelIndex& rkIndex) const { - if (Game <= eEchoes) + if (Game <= EGame::Echoes) { - if (rkIndex.row() == 0) return eAssetProperty; - else if (rkIndex.row() == 1) return eEnumProperty; - else if (rkIndex.row() == 2) return eLongProperty; + if (rkIndex.row() == 0) return EPropertyType::Asset; + else if (rkIndex.row() == 1) return EPropertyType::Choice; + else if (rkIndex.row() == 2) return EPropertyType::Int; } - else if (Game <= eCorruption) + else if (Game <= EGame::Corruption) { - if (rkIndex.row() == 0) return eAssetProperty; - else if (rkIndex.row() == 1) return eLongProperty; + if (rkIndex.row() == 0) return EPropertyType::Asset; + else if (rkIndex.row() == 1) return EPropertyType::Int; } else { - if (rkIndex.row() == 0) return eAssetProperty; - else if (rkIndex.row() <= 2) return eLongProperty; + if (rkIndex.row() == 0) return EPropertyType::Asset; + else if (rkIndex.row() <= 2) return EPropertyType::Int; } - return eUnknownProperty; + return EPropertyType::Invalid; } // ************ PUBLIC SLOTS ************ diff --git a/src/Editor/PropertyEdit/CPropertyModel.cpp b/src/Editor/PropertyEdit/CPropertyModel.cpp index b7344a7e..90ff7d0d 100644 --- a/src/Editor/PropertyEdit/CPropertyModel.cpp +++ b/src/Editor/PropertyEdit/CPropertyModel.cpp @@ -1,83 +1,179 @@ #include "CPropertyModel.h" #include "Editor/UICommon.h" #include -#include -#include +#include #include #include CPropertyModel::CPropertyModel(QObject *pParent /*= 0*/) : QAbstractItemModel(pParent) - , mpBaseStruct(nullptr) + , mpProject(nullptr) + , mpRootProperty(nullptr) + , mpPropertyData(nullptr) , mBoldModifiedProperties(true) + , mShowNameValidity(false) + , mFirstUnusedID(-1) { } -void CPropertyModel::SetBaseStruct(CPropertyStruct *pBaseStruct) +int CPropertyModel::RecursiveBuildArrays(IProperty* pProperty, int ParentID) +{ + // Insert into an unused slot if one exists. Otherwise, append to the end of the array. + int MyID = -1; + + if (mFirstUnusedID >= 0) + { + MyID = mFirstUnusedID; + mFirstUnusedID = mProperties[MyID].ParentID; // on unused slots ParentID stores the ID of the next unused slot + } + else + { + MyID = mProperties.size(); + mProperties << SProperty(); + } + + mProperties[MyID].pProperty = pProperty; + mProperties[MyID].ParentID = ParentID; + + int RowNumber = (ParentID >= 0 ? mProperties[ParentID].ChildIDs.size() : 0); + mProperties[MyID].Index = createIndex(RowNumber, 0, MyID); + + if (pProperty->Type() == EPropertyType::Array) + { + CArrayProperty* pArray = TPropCast(pProperty); + u32 ArrayCount = pArray->ArrayCount(mpPropertyData); + void* pOldData = mpPropertyData; + + for (u32 ElementIdx = 0; ElementIdx < ArrayCount; ElementIdx++) + { + mpPropertyData = pArray->ItemPointer(pOldData, ElementIdx); + int NewChildID = RecursiveBuildArrays( pArray->ItemArchetype(), MyID ); + mProperties[MyID].ChildIDs.push_back(NewChildID); + } + + mpPropertyData = pOldData; + } + else + { + for (u32 ChildIdx = 0; ChildIdx < pProperty->NumChildren(); ChildIdx++) + { + int NewChildID = RecursiveBuildArrays( pProperty->ChildByIndex(ChildIdx), MyID ); + mProperties[MyID].ChildIDs.push_back(NewChildID); + } + } + + if (!pProperty->IsArrayArchetype()) + { + mPropertyToIDMap[pProperty] = MyID; + } + + return MyID; +} + +void CPropertyModel::ConfigureIntrinsic(CGameProject* pProject, IProperty* pRootProperty, void* pPropertyData) { beginResetModel(); - mpBaseStruct = pBaseStruct; + + mpProject = pProject; + mpObject = nullptr; + mpRootProperty = pRootProperty; + mpPropertyData = pPropertyData; + + mProperties.clear(); + mPropertyToIDMap.clear(); + mFirstUnusedID = -1; + + if (pRootProperty) + RecursiveBuildArrays(pRootProperty, -1); + endResetModel(); } -IProperty* CPropertyModel::PropertyForIndex(const QModelIndex& rkIndex, bool HandleFlaggedPointers) const +void CPropertyModel::ConfigureScript(CGameProject* pProject, IProperty* pRootProperty, CScriptObject* pObject) { - if (!rkIndex.isValid()) return mpBaseStruct; + ConfigureIntrinsic(pProject, pRootProperty, pObject ? pObject->PropertyData() : nullptr); + mpObject = pObject; +} - if (rkIndex.internalId() & 0x1) +IProperty* CPropertyModel::PropertyForIndex(const QModelIndex& rkIndex, bool HandleFlaggedIndices) const +{ + if (!rkIndex.isValid()) return mpRootProperty; + + int Index = rkIndex.internalId(); + + if (Index & 0x80000000) { - if (HandleFlaggedPointers) - { - void *pID = (void*) (rkIndex.internalId() & ~0x1); - return static_cast(pID); - } + if (HandleFlaggedIndices) + Index &= ~0x80000000; else return nullptr; } - return static_cast(rkIndex.internalPointer()); + return mProperties[Index].pProperty; } QModelIndex CPropertyModel::IndexForProperty(IProperty *pProp) const { - if (pProp == mpBaseStruct) return QModelIndex(); - - QVector RowNumbers; - IProperty *pChild = pProp; - CPropertyStruct *pParent = pProp->Parent(); - - while (pParent) + // Array archetype properties cannot be associated with a single index because the same IProperty + // is used for every element of the array. So instead fetch the index for the array itself. + if (pProp->IsArrayArchetype()) { - // Check for array with one sub-property - CPropertyStruct *pGrandparent = pParent->Parent(); - if (pGrandparent && pGrandparent->Type() == eArrayProperty && pParent->Count() == 1) - { - pChild = pParent; - pParent = pGrandparent; - continue; - } + while (pProp && pProp->IsArrayArchetype()) + pProp = pProp->Parent(); - // Find row index for this child property - for (u32 iChild = 0; iChild < pParent->Count(); iChild++) - { - if (pParent->PropertyByIndex(iChild) == pChild) - { - RowNumbers << iChild; - break; - } - } - - pChild = pParent; - pParent = pGrandparent; + ASSERT(pProp != nullptr && pProp->Type() == EPropertyType::Array); } - // Find the corresponding QModelIndex in the same spot - QModelIndex Index = QModelIndex(); + if (pProp == mpRootProperty) return QModelIndex(); - for (int iChild = RowNumbers.size() - 1; iChild >= 0; iChild--) - Index = index(RowNumbers[iChild], 0, Index); + int ID = mPropertyToIDMap[pProp]; + ASSERT(ID >= 0); - return Index; + return mProperties[ID].Index; +} + +void* CPropertyModel::DataPointerForIndex(const QModelIndex& rkIndex) const +{ + // Going to be the base pointer in 99% of cases, but we need to account for arrays in some cases + int ID = rkIndex.internalId() & ~0x80000000; + + if (!mProperties[ID].pProperty->IsArrayArchetype()) + return mpPropertyData; + + // Head up the hierarchy until we find a non-array property, keeping track of array indices along the way + // Static arrays to avoid memory allocations, we never have more than 2 nested arrays + CArrayProperty* ArrayProperties[2]; + int ArrayIndices[2]; + int MaxIndex = -1; + + IProperty* pProperty = mProperties[ID].pProperty; + + while (pProperty->IsArrayArchetype()) + { + CArrayProperty* pArray = TPropCast(pProperty->Parent()); + + if (pArray) + { + MaxIndex++; + ArrayProperties[MaxIndex] = pArray; + ArrayIndices[MaxIndex] = mProperties[ID].Index.row(); + } + + ID = mProperties[ID].ParentID; + pProperty = pProperty->Parent(); + } + + // Now fetch the correct pointer from the array properties + void* pOutData = mpPropertyData; + + for (int i = MaxIndex; i >= 0; i--) + { + CArrayProperty* pArray = ArrayProperties[i]; + int ArrayIndex = ArrayIndices[i]; + pOutData = pArray->ItemPointer(pOutData, ArrayIndex); + } + + return pOutData; } int CPropertyModel::columnCount(const QModelIndex& /*rkParent*/) const @@ -87,38 +183,31 @@ int CPropertyModel::columnCount(const QModelIndex& /*rkParent*/) const int CPropertyModel::rowCount(const QModelIndex& rkParent) const { - if (!mpBaseStruct) return 0; - if (!rkParent.isValid()) return mpBaseStruct->Count(); + if (!mpRootProperty) return 0; + if (!rkParent.isValid()) return mpRootProperty->NumChildren(); if (rkParent.column() != 0) return 0; - if (rkParent.internalId() & 0x1) return 0; + if (rkParent.internalId() & 0x80000000) return 0; IProperty *pProp = PropertyForIndex(rkParent, false); + int ID = rkParent.internalId(); switch (pProp->Type()) { - case eStructProperty: - case eArrayProperty: - return static_cast(pProp)->Count(); + case EPropertyType::Flags: + return TPropCast(pProp)->NumFlags(); - case eBitfieldProperty: - return static_cast(pProp->Template())->NumFlags(); - - case eVector3Property: - return 3; - - case eColorProperty: - return 4; - - case eCharacterProperty: + case EPropertyType::AnimationSet: { - CAnimationParameters Params = static_cast(pProp)->Get(); - if (Params.Version() <= eEchoes) return 3; - if (Params.Version() <= eCorruption) return 2; + void* pData = DataPointerForIndex(rkParent); + CAnimationParameters Params = TPropCast(pProp)->Value(pData); + + if (Params.Version() <= EGame::Echoes) return 3; + if (Params.Version() <= EGame::Corruption) return 2; return 4; } default: - return 0; + return mProperties[ID].ChildIDs.size(); } } @@ -139,84 +228,41 @@ QVariant CPropertyModel::data(const QModelIndex& rkIndex, int Role) const if (Role == Qt::DisplayRole || (Role == Qt::ToolTipRole && rkIndex.column() == 1) ) { - if (rkIndex.internalId() & 0x1) + if (rkIndex.internalId() & 0x80000000) { IProperty *pProp = PropertyForIndex(rkIndex, true); + EPropertyType Type = pProp->Type(); - if (pProp->Type() == eColorProperty) + if (Type == EPropertyType::Flags) { - if (rkIndex.column() == 0) - { - if (rkIndex.row() == 0) return "R"; - if (rkIndex.row() == 1) return "G"; - if (rkIndex.row() == 2) return "B"; - if (rkIndex.row() == 3) return "A"; - } - - else if (rkIndex.column() == 1) - { - TStringList Strings = pProp->ToString().Split(" ,"); - - int i = 0; - for (auto it = Strings.begin(); it != Strings.end(); it++) - { - if (i == rkIndex.row()) return TO_QSTRING(*it); - i++; - } - } - } - - else if (pProp->Type() == eVector3Property) - { - if (rkIndex.column() == 0) - { - if (rkIndex.row() == 0) return "X"; - if (rkIndex.row() == 1) return "Y"; - if (rkIndex.row() == 2) return "Z"; - } - - else if (rkIndex.column() == 1) - { - TStringList Strings = pProp->ToString().Split(" ,"); - - int i = 0; - for (auto it = Strings.begin(); it != Strings.end(); it++) - { - if (i == rkIndex.row()) return TO_QSTRING(*it); - i++; - } - } - } - - else if (pProp->Type() == eBitfieldProperty) - { - CBitfieldTemplate *pBitfield = static_cast(pProp->Template()); + CFlagsProperty* pFlags = TPropCast(pProp); if (rkIndex.column() == 0) - return TO_QSTRING(pBitfield->FlagName(rkIndex.row())); + return TO_QSTRING( pFlags->FlagName(rkIndex.row()) ); if (rkIndex.column() == 1) { if (Role == Qt::DisplayRole) return ""; else - return TO_QSTRING(TString::HexString(pBitfield->FlagMask(rkIndex.row()))); + return TO_QSTRING(TString::HexString( pFlags->FlagMask(rkIndex.row()) )); } } - else if (pProp->Type() == eCharacterProperty) + else if (Type == EPropertyType::AnimationSet) { - TCharacterProperty *pChar = static_cast(pProp); - CAnimationParameters Params = pChar->Get(); + void* pData = DataPointerForIndex(rkIndex); + CAnimationSetProperty* pAnimSet = TPropCast(pProp); + CAnimationParameters Params = pAnimSet->Value(pData); // There are three different layouts for this property - one for MP1/2, one for MP3, and one for DKCR - if (Params.Version() <= eEchoes) + if (Params.Version() <= EGame::Echoes) { if (rkIndex.column() == 0) { if (rkIndex.row() == 0) return "AnimSet"; if (rkIndex.row() == 1) return "Character"; - if (rkIndex.row() == 2) return "Default Anim"; + if (rkIndex.row() == 2) return "DefaultAnim"; } // For column 1, rows 0/1 have persistent editors so we only handle 2 @@ -224,12 +270,12 @@ QVariant CPropertyModel::data(const QModelIndex& rkIndex, int Role) const return QString::number(Params.Unknown(0)); } - else if (Params.Version() <= eCorruption) + else if (Params.Version() <= EGame::Corruption) { if (rkIndex.column() == 0) { if (rkIndex.row() == 0) return "Character"; - if (rkIndex.row() == 1) return "Default Anim"; + if (rkIndex.row() == 1) return "DefaultAnim"; } // Same deal here, only handle row 1 @@ -242,8 +288,8 @@ QVariant CPropertyModel::data(const QModelIndex& rkIndex, int Role) const if (rkIndex.column() == 0) { if (rkIndex.row() == 0) return "Character"; - else if (rkIndex.row() == 1) return "Default Anim"; - else return "Unknown " + QString::number(rkIndex.row() - 1); + else if (rkIndex.row() == 1) return "DefaultAnim"; + else return "Unknown" + QString::number(rkIndex.row() - 1); } if (rkIndex.column() == 1 && rkIndex.row() > 0) @@ -261,21 +307,11 @@ QVariant CPropertyModel::data(const QModelIndex& rkIndex, int Role) const // Check for arrays IProperty *pParent = pProp->Parent(); - if (pParent) + if (pParent && pParent->Type() == EPropertyType::Array) { - // For direct array sub-properties, display the element name instead of the property name (the property name is the array name) - if (pProp->Type() == eStructProperty && pParent->Type() == eArrayProperty) - { - TString ElementName = static_cast(pParent)->ElementName(); - return QString("%1 %2").arg(TO_QSTRING(ElementName)).arg(rkIndex.row() + 1); - } - - // Check whether the parent struct is an array element with one sub-property - if (pParent->Type() == eStructProperty && pParent->Parent() && pParent->Parent()->Type() == eArrayProperty) - { - if (static_cast(pParent)->Count() == 1) - return QString("%1 %2").arg(TO_QSTRING(pProp->Name())).arg(rkIndex.row() + 1); - } + // For direct array sub-properties, display the element index after the name + TString ElementName = pProp->Name(); + return QString("%1 %2").arg( TO_QSTRING(ElementName) ).arg(rkIndex.row() + 1); } // Display property name for everything else @@ -284,22 +320,26 @@ QVariant CPropertyModel::data(const QModelIndex& rkIndex, int Role) const if (rkIndex.column() == 1) { - switch (pProp->Type()) + void* pData = DataPointerForIndex(rkIndex); + EPropertyType Type = GetEffectiveFieldType(pProp); + + switch (Type) { // Enclose vector property text in parentheses - case eVector3Property: - return "(" + TO_QSTRING(pProp->ToString()) + ")"; + case EPropertyType::Vector: + { + CVector3f Value = TPropCast(pProp)->Value(pData); + return TO_QSTRING("(" + Value.ToString() + ")"); + } // Display the AGSC/sound name for sounds - case eSoundProperty: + case EPropertyType::Sound: { - TSoundProperty *pSound = static_cast(pProp); - u32 SoundID = pSound->Get(); + CSoundProperty* pSound = TPropCast(pProp); + u32 SoundID = pSound->Value(pData); if (SoundID == -1) return "[None]"; - CGameProject *pProj = pSound->Instance()->Area()->Entry()->Project(); - SSoundInfo SoundInfo = pProj->AudioManager()->GetSoundInfo(SoundID); - + SSoundInfo SoundInfo = mpProject->AudioManager()->GetSoundInfo(SoundID); QString Out = QString::number(SoundID); if (SoundInfo.DefineID == -1) @@ -319,40 +359,42 @@ QVariant CPropertyModel::data(const QModelIndex& rkIndex, int Role) const } // Display character name for characters - case eCharacterProperty: - return TO_QSTRING(static_cast(pProp)->Get().GetCurrentCharacterName()); + case EPropertyType::AnimationSet: + return TO_QSTRING(TPropCast(pProp)->Value(pData).GetCurrentCharacterName()); // Display enumerator name for enums (but only on ToolTipRole) - case eEnumProperty: + case EPropertyType::Choice: + case EPropertyType::Enum: if (Role == Qt::ToolTipRole) { - TEnumProperty *pEnum = static_cast(pProp); - CEnumTemplate *pTemp = static_cast(pEnum->Template()); - return TO_QSTRING(pTemp->EnumeratorName( pTemp->EnumeratorIndex(pEnum->Get()) )); + CEnumProperty *pEnum = TPropCast(pProp); + u32 ValueID = pEnum->Value(pData); + u32 ValueIndex = pEnum->ValueIndex(ValueID); + return TO_QSTRING( pEnum->ValueName(ValueIndex) ); } else return ""; // Display the element count for arrays - case eArrayProperty: + case EPropertyType::Array: { - u32 Count = static_cast(pProp)->Count(); + u32 Count = TPropCast(pProp)->Value(pData); return QString("%1 element%2").arg(Count).arg(Count != 1 ? "s" : ""); } - // Display "[MayaSpline]" for MayaSplines (todo: proper support) - case eMayaSplineProperty: - return "[MayaSpline]"; + // Display "[spline]" for splines (todo: proper support) + case EPropertyType::Spline: + return "[spline]"; // No display text on properties with persistent editors - case eBoolProperty: - case eAssetProperty: - case eColorProperty: + case EPropertyType::Bool: + case EPropertyType::Asset: + case EPropertyType::Color: if (Role == Qt::DisplayRole) return ""; // fall through // Display property value to string for everything else default: - return TO_QSTRING(pProp->ToString() + pProp->Template()->Suffix()); + return TO_QSTRING(pProp->ValueAsString(pData) + pProp->Suffix()); } } } @@ -360,26 +402,27 @@ QVariant CPropertyModel::data(const QModelIndex& rkIndex, int Role) const if (Role == Qt::ToolTipRole && rkIndex.column() == 0) { - if (!(rkIndex.internalId() & 0x1)) + if (!(rkIndex.internalId() & 0x80000000)) { // Add name IProperty *pProp = PropertyForIndex(rkIndex, false); QString DisplayText = data(rkIndex, Qt::DisplayRole).toString(); - QString Text = QString("
%1 (%2)").arg(DisplayText).arg(TO_QSTRING(PropEnumToPropString(pProp->Type()))); + QString TypeName = pProp->HashableTypeName(); + QString Text = QString("%1 (%2)").arg(DisplayText).arg(TypeName); // Add uncooked notification - if (pProp->Template()->CookPreference() == eNeverCook) + if (pProp->CookPreference() == ECookPreference::Never) { Text.prepend("[uncooked]"); } // Add description - TString Desc = pProp->Template()->Description(); + TString Desc = pProp->Description(); if (!Desc.IsEmpty()) Text += "
" + TO_QSTRING(Desc); - // MayaSpline notification - if (pProp->Type() == eMayaSplineProperty) - Text += "
(NOTE: MayaSpline properties are currently unsupported for editing)"; + // Spline notification + if (pProp->Type() == EPropertyType::Spline) + Text += "
(NOTE: Spline properties are currently unsupported for editing)"; return Text; } @@ -394,43 +437,10 @@ QVariant CPropertyModel::data(const QModelIndex& rkIndex, int Role) const { IProperty *pProp = PropertyForIndex(rkIndex, true); - if (!pProp->IsInArray()) + if (!pProp->IsArrayArchetype()) { - if (rkIndex.internalId() & 0x1) - { - if (pProp->Type() == eVector3Property) - { - TVector3Property *pVec = static_cast(pProp); - TVector3Template *pTemp = static_cast(pProp->Template()); - - CVector3f Value = pVec->Get(); - CVector3f Default = pTemp->GetDefaultValue(); - - if (rkIndex.row() == 0) Bold = (Value.X != Default.X); - if (rkIndex.row() == 1) Bold = (Value.Y != Default.Y); - if (rkIndex.row() == 2) Bold = (Value.Z != Default.Z); - } - - else if (pProp->Type() == eColorProperty) - { - TColorProperty *pColor = static_cast(pProp); - TColorTemplate *pTemp = static_cast(pProp->Template()); - - CColor Value = pColor->Get(); - CColor Default = pTemp->GetDefaultValue(); - - if (rkIndex.row() == 0) Bold = (Value.R != Default.R); - if (rkIndex.row() == 1) Bold = (Value.G != Default.G); - if (rkIndex.row() == 2) Bold = (Value.B != Default.B); - if (rkIndex.row() == 3) Bold = (Value.A != Default.A); - } - } - - else - { - Bold = !pProp->MatchesDefault(); - } - } + Bold = !pProp->MatchesDefault(mpPropertyData); + } } Font.setBold(Bold); @@ -442,6 +452,21 @@ QVariant CPropertyModel::data(const QModelIndex& rkIndex, int Role) const return QSize(0, 23); } + if (Role == Qt::ForegroundRole) + { + if (mShowNameValidity && mpRootProperty->ScriptTemplate()->Game() >= EGame::EchoesDemo) + { + IProperty *pProp = PropertyForIndex(rkIndex, true); + + if (pProp) + { + static const QColor skRightColor = QColor(128, 255, 128); + static const QColor skWrongColor = QColor(255, 128, 128); + return QBrush( pProp->HasAccurateName() ? skRightColor : skWrongColor ); + } + } + } + return QVariant::Invalid; } @@ -452,33 +477,19 @@ QModelIndex CPropertyModel::index(int Row, int Column, const QModelIndex& rkPare return QModelIndex(); // Check property for children - IProperty *pParent = (rkParent.isValid() ? PropertyForIndex(rkParent, false) : mpBaseStruct); + IProperty* pParent = (rkParent.isValid() ? PropertyForIndex(rkParent, false) : mpRootProperty); + EPropertyType ParentType = pParent->Type(); + int ParentID = rkParent.internalId(); - // Struct - if (pParent->Type() == eStructProperty) + if (ParentType == EPropertyType::Flags || ParentType == EPropertyType::AnimationSet) { - IProperty *pProp = static_cast(pParent)->PropertyByIndex(Row); - return createIndex(Row, Column, pProp); + return createIndex(Row, Column, ParentID | 0x80000000); } - - // Array - if (pParent->Type() == eArrayProperty) + else { - IProperty *pProp = static_cast(pParent)->PropertyByIndex(Row); - - // If this array element only has one sub-property then let's just skip the redundant tree node and show the sub-property directly. - CPropertyStruct *pStruct = static_cast(pProp); - if (pStruct->Count() == 1) - pProp = pStruct->PropertyByIndex(0); - - return createIndex(Row, Column, pProp); + int ChildID = mProperties[ParentID].ChildIDs[Row]; + return createIndex(Row, Column, ChildID); } - - // Other property - if (pParent->Type() == eColorProperty || pParent->Type() == eVector3Property || pParent->Type() == eBitfieldProperty || pParent->Type() == eCharacterProperty) - return createIndex(Row, Column, u64(pParent) | 0x1); - - return QModelIndex(); } QModelIndex CPropertyModel::parent(const QModelIndex& rkChild) const @@ -487,39 +498,17 @@ QModelIndex CPropertyModel::parent(const QModelIndex& rkChild) const if (!rkChild.isValid()) return QModelIndex(); - // Find parent property - IProperty *pParent; + int ID = int(rkChild.internalId()); - if (rkChild.internalId() & 0x1) - pParent = PropertyForIndex(rkChild, true); + if (ID & 0x80000000) + ID &= ~0x80000000; else - pParent = PropertyForIndex(rkChild, false)->Parent(); + ID = mProperties[ID].ParentID; - if (pParent == mpBaseStruct) + if (ID >= 0) + return mProperties[ID].Index; + else return QModelIndex(); - - // Iterate over grandfather properties until we find the row - CPropertyStruct *pGrandparent = pParent->Parent(); - - // Check for array with one sub-property - if (pGrandparent->Type() == eArrayProperty) - { - CPropertyStruct *pStruct = static_cast(pParent); - - if (pStruct->Count() == 1) - { - pParent = pGrandparent; - pGrandparent = pGrandparent->Parent(); - } - } - - for (u32 iProp = 0; iProp < pGrandparent->Count(); iProp++) - { - if (pGrandparent->PropertyByIndex(iProp) == pParent) - return createIndex(iProp, 0, pParent); - } - - return QModelIndex(); } Qt::ItemFlags CPropertyModel::flags(const QModelIndex& rkIndex) const @@ -528,7 +517,7 @@ Qt::ItemFlags CPropertyModel::flags(const QModelIndex& rkIndex) const else return (Qt::ItemIsEnabled | Qt::ItemIsEditable); } -void CPropertyModel::NotifyPropertyModified(class CScriptObject*, IProperty *pProp) +void CPropertyModel::NotifyPropertyModified(class CScriptObject*, IProperty* pProp) { NotifyPropertyModified(IndexForProperty(pProp)); } @@ -538,7 +527,7 @@ void CPropertyModel::NotifyPropertyModified(const QModelIndex& rkIndex) if (rowCount(rkIndex) != 0) emit dataChanged( index(0, 0, rkIndex), index(rowCount(rkIndex) - 1, 1, rkIndex)); - if (rkIndex.internalId() & 0x1) + if (rkIndex.internalId() & 0x80000000) { QModelIndex Parent = rkIndex.parent(); QModelIndex Col0 = Parent.sibling(Parent.row(), 0); @@ -556,32 +545,130 @@ void CPropertyModel::NotifyPropertyModified(const QModelIndex& rkIndex) void CPropertyModel::ArrayAboutToBeResized(const QModelIndex& rkIndex, u32 NewSize) { QModelIndex Index = rkIndex.sibling(rkIndex.row(), 0); - CArrayProperty *pArray = static_cast(PropertyForIndex(Index, false)); + IProperty* pProperty = PropertyForIndex(Index, false); + CArrayProperty* pArray = TPropCast(pProperty); + ASSERT(pArray); - if (pArray && pArray->Type() == eArrayProperty) + void* pArrayData = DataPointerForIndex(Index); + u32 OldSize = pArray->ArrayCount(pArrayData); + + if (NewSize != OldSize) { - u32 OldSize = pArray->Count(); - - if (NewSize != OldSize) - { - if (NewSize > OldSize) - beginInsertRows(Index, OldSize, NewSize - 1); - else - beginRemoveRows(Index, NewSize, OldSize - 1); - } + if (NewSize > OldSize) + beginInsertRows(Index, OldSize, NewSize - 1); + else + beginRemoveRows(Index, NewSize, OldSize - 1); } } void CPropertyModel::ArrayResized(const QModelIndex& rkIndex, u32 OldSize) { - CArrayProperty *pArray = static_cast(PropertyForIndex(rkIndex, false)); - u32 NewSize = pArray->Count(); + QModelIndex Index = rkIndex.sibling(rkIndex.row(), 0); + IProperty* pProperty = PropertyForIndex(Index, false); + CArrayProperty* pArray = TPropCast(pProperty); + ASSERT(pArray); + + void* pArrayData = DataPointerForIndex(Index); + u32 NewSize = pArray->ArrayCount(pArrayData); if (NewSize != OldSize) { - if (pArray->Count() > OldSize) + int ID = Index.internalId(); + + if (NewSize > OldSize) + { + // add new elements + void* pOldData = mpPropertyData; + + for (u32 ElementIdx = OldSize; ElementIdx < NewSize; ElementIdx++) + { + mpPropertyData = pArray->ItemPointer(pArrayData, ElementIdx); + int NewChildID = RecursiveBuildArrays( pArray->ItemArchetype(), ID ); + mProperties[ID].ChildIDs.push_back(NewChildID); + } + + mpPropertyData = pOldData; endInsertRows(); + } else + { + // remove old elements + for (u32 ElementIdx = NewSize; ElementIdx < OldSize; ElementIdx++) + { + int ChildID = mProperties[ID].ChildIDs[ElementIdx]; + ClearSlot(ChildID); + } + + mProperties[ID].ChildIDs.resize(NewSize); endRemoveRows(); + } } } + + +void CPropertyModel::ClearSlot(int ID) +{ + for (int ChildIdx = 0; ChildIdx < mProperties[ID].ChildIDs.size(); ChildIdx++) + { + ClearSlot(mProperties[ID].ChildIDs[ChildIdx]); + } + + mProperties[ID].ChildIDs.clear(); + mProperties[ID].Index = QModelIndex(); + mProperties[ID].ParentID = mFirstUnusedID; + mProperties[ID].pProperty = nullptr; + mFirstUnusedID = ID; +} + +/** Determine the effective property type to use. Allows some types to be treated as other types. */ +EPropertyType CPropertyModel::GetEffectiveFieldType(IProperty* pProperty) const +{ + EPropertyType Out = pProperty->Type(); + + switch (Out) + { + + // Allow Choice/Enum properties to be edited as Int properties if they don't have any values set. + case EPropertyType::Choice: + case EPropertyType::Enum: + { + CChoiceProperty* pChoice = TPropCast(pProperty); + + if (pChoice->NumPossibleValues() == 0) + { + Out = EPropertyType::Int; + } + + break; + } + + // Same deal with Flag properties + case EPropertyType::Flags: + { + CFlagsProperty* pFlags = TPropCast(pProperty); + + if (pFlags->NumFlags() == 0) + { + Out = EPropertyType::Int; + } + + break; + } + + } + + return Out; +} + +void CPropertyModel::SetShowPropertyNameValidity(bool Enable) +{ + mShowNameValidity = Enable; + + // Emit data changed so that name colors are updated; + QVector Roles; + Roles << Qt::ForegroundRole; + + QModelIndex TopLeft = index(0, 0, QModelIndex()); + QModelIndex BottomRight = index( rowCount(QModelIndex()) - 1, 0, QModelIndex()); + emit dataChanged(TopLeft, BottomRight, Roles); +} diff --git a/src/Editor/PropertyEdit/CPropertyModel.h b/src/Editor/PropertyEdit/CPropertyModel.h index d05f3071..64dbb059 100644 --- a/src/Editor/PropertyEdit/CPropertyModel.h +++ b/src/Editor/PropertyEdit/CPropertyModel.h @@ -1,23 +1,43 @@ #ifndef CPROPERTYMODEL_H #define CPROPERTYMODEL_H +#include #include -#include #include class CPropertyModel : public QAbstractItemModel { Q_OBJECT - CPropertyStruct *mpBaseStruct; + struct SProperty + { + IProperty* pProperty; + QModelIndex Index; + int ParentID; + std::vector ChildIDs; + }; + QVector mProperties; + QMap mPropertyToIDMap; + int mFirstUnusedID; + + CGameProject* mpProject; + CScriptObject* mpObject; // may be null + IProperty* mpRootProperty; + void* mpPropertyData; + bool mBoldModifiedProperties; + bool mShowNameValidity; QFont mFont; + int RecursiveBuildArrays(IProperty* pProperty, int ParentID); + public: CPropertyModel(QObject *pParent = 0); - void SetBaseStruct(CPropertyStruct *pBaseStruct); - IProperty* PropertyForIndex(const QModelIndex& rkIndex, bool HandleFlaggedPointers) const; + void ConfigureIntrinsic(CGameProject* pProject, IProperty* pRootProperty, void* pPropertyData); + void ConfigureScript(CGameProject* pProject, IProperty* pRootProperty, CScriptObject* pObject); + IProperty* PropertyForIndex(const QModelIndex& rkIndex, bool HandleFlaggedIndices) const; QModelIndex IndexForProperty(IProperty *pProp) const; + void* DataPointerForIndex(const QModelIndex& rkIndex) const; int columnCount(const QModelIndex& rkParent) const; int rowCount(const QModelIndex& rkParent) const; @@ -30,9 +50,14 @@ public: void ArrayAboutToBeResized(const QModelIndex& rkIndex, u32 NewSize); void ArrayResized(const QModelIndex& rkIndex, u32 OldSize); void ResizeArray(const QModelIndex& rkIndex, u32 NewSize); + void ClearSlot(int ID); + + EPropertyType GetEffectiveFieldType(IProperty* pProperty) const; + void SetShowPropertyNameValidity(bool Enable); inline void SetFont(QFont Font) { mFont = Font; } inline void SetBoldModifiedProperties(bool Enable) { mBoldModifiedProperties = Enable; } + inline CScriptObject* GetScriptObject() const { return mpObject; } public slots: void NotifyPropertyModified(class CScriptObject *pInst, IProperty *pProp); diff --git a/src/Editor/PropertyEdit/CPropertyView.cpp b/src/Editor/PropertyEdit/CPropertyView.cpp index 30114f2e..0561a8e0 100644 --- a/src/Editor/PropertyEdit/CPropertyView.cpp +++ b/src/Editor/PropertyEdit/CPropertyView.cpp @@ -1,7 +1,7 @@ #include "CPropertyView.h" #include "CPropertyDelegate.h" #include "Editor/WorldEditor/CTemplateEditDialog.h" -#include +#include #include #include @@ -19,9 +19,22 @@ CPropertyView::CPropertyView(QWidget *pParent) setModel(mpModel); setContextMenuPolicy(Qt::CustomContextMenu); + + mpShowNameValidityAction = new QAction("Show whether property name is correct", this); + mpShowNameValidityAction->setCheckable(true); + mpShowNameValidityAction->setChecked(false); + connect(mpShowNameValidityAction, SIGNAL(triggered(bool)), this, SLOT(ToggleShowNameValidity(bool))); + mpEditTemplateAction = new QAction("Edit template", this); connect(mpEditTemplateAction, SIGNAL(triggered()), this, SLOT(EditPropertyTemplate())); + mpGenNamesForPropertyAction = new QAction("Generate names for this property", this); + mpGenNamesForSiblingsAction = new QAction(this); // Text set in CreateContextMenu() + mpGenNamesForChildrenAction = new QAction(this); // Text set in CreateContextMenu() + connect(mpGenNamesForPropertyAction, SIGNAL(triggered(bool)), this, SLOT(GenerateNamesForProperty())); + connect(mpGenNamesForSiblingsAction, SIGNAL(triggered(bool)), this, SLOT(GenerateNamesForSiblings())); + connect(mpGenNamesForChildrenAction, SIGNAL(triggered(bool)), this, SLOT(GenerateNamesForChildren())); + connect(this, SIGNAL(expanded(QModelIndex)), this, SLOT(SetPersistentEditors(QModelIndex))); connect(this, SIGNAL(clicked(QModelIndex)), this, SLOT(edit(QModelIndex))); connect(this, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(CreateContextMenu(QPoint))); @@ -78,11 +91,24 @@ void CPropertyView::SetEditor(CWorldEditor *pEditor) connect(mpEditor, SIGNAL(PropertyModified(CScriptObject*,IProperty*)), mpModel, SLOT(NotifyPropertyModified(CScriptObject*,IProperty*))); } +void CPropertyView::SetIntrinsicProperties(CStructRef InProperties) +{ + mpObject = nullptr; + mpModel->SetBoldModifiedProperties(false); // todo, we prob want this, but can't set default properties on non script yet + mpModel->ConfigureIntrinsic(nullptr, InProperties.Property(), InProperties.DataPointer()); + SetPersistentEditors(QModelIndex()); +} + void CPropertyView::SetInstance(CScriptObject *pObj) { mpObject = pObj; - mpModel->SetBoldModifiedProperties(mpEditor ? (mpEditor->CurrentGame() > ePrime) : true); - mpModel->SetBaseStruct(pObj ? pObj->Properties() : nullptr); + mpModel->SetBoldModifiedProperties(mpEditor ? (mpEditor->CurrentGame() > EGame::Prime) : true); + + if (pObj) + mpModel->ConfigureScript(pObj->Area()->Entry()->Project(), pObj->Template()->Properties(), pObj); + else + mpModel->ConfigureScript(nullptr, nullptr, nullptr); + SetPersistentEditors(QModelIndex()); // Auto-expand EditorProperties @@ -107,20 +133,20 @@ void CPropertyView::UpdateEditorProperties(const QModelIndex& rkParent) if (pProp) { // For structs, update sub-properties. - if (pProp->Type() == eStructProperty) + if (pProp->Type() == EPropertyType::Struct) { - CStructTemplate *pStruct = static_cast(pProp->Template()); + CStructProperty *pStruct = TPropCast(pProp); - // As an optimization, in MP2+, we don't need to update unless this is a single struct or if + // As an optimization, in MP2+, we don't need to update unless this is an atomic struct or if // it's EditorProperties, because other structs never have editor properties in them. // In MP1 this isn't the case so we need to update every struct regardless - if ((Game <= ePrime) || (pStruct->IsSingleProperty() || pStruct->PropertyID() == 0x255A4580)) + if ((Game <= EGame::Prime) || (pStruct->IsAtomic() || pStruct->ID() == 0x255A4580)) UpdateEditorProperties(Index0); else continue; } - else if (mpObject->IsEditorProperty(pProp)) + else if (mpObject && mpObject->IsEditorProperty(pProp)) { mpModel->dataChanged(Index1, Index1); @@ -143,33 +169,39 @@ void CPropertyView::SetPersistentEditors(const QModelIndex& rkParent) { QModelIndex ChildIndex = mpModel->index(iChild, 1, rkParent); IProperty *pProp = mpModel->PropertyForIndex(ChildIndex, false); - EPropertyType Type = (pProp ? pProp->Type() : eInvalidProperty); + EPropertyType Type = (pProp ? pProp->Type() : EPropertyType::Invalid); // Handle persistent editors under character properties - if (!pProp && ChildIndex.internalId() & 0x1) + if (!pProp && ChildIndex.internalId() & 0x80000000) { pProp = mpModel->PropertyForIndex(ChildIndex, true); - if (pProp->Type() == eCharacterProperty) + if (pProp->Type() == EPropertyType::AnimationSet) { - EGame Game = static_cast(pProp)->Get().Version(); + EGame Game = mpObject->Area()->Game(); Type = mpDelegate->DetermineCharacterPropType(Game, ChildIndex); } - if (pProp->Type() == eBitfieldProperty) - Type = eBoolProperty; + if (pProp->Type() == EPropertyType::Flags) + Type = EPropertyType::Bool; } switch (Type) { - case eBoolProperty: - case eEnumProperty: - case eColorProperty: - case eAssetProperty: + case EPropertyType::Bool: + case EPropertyType::Color: + case EPropertyType::Asset: openPersistentEditor(ChildIndex); break; - case eStructProperty: + + case EPropertyType::Enum: + case EPropertyType::Choice: + if (TPropCast(pProp)->NumPossibleValues() > 0) + openPersistentEditor(ChildIndex); + break; + + case EPropertyType::Struct: setFirstColumnSpanned(iChild, rkParent, true); break; } @@ -196,32 +228,96 @@ void CPropertyView::ClosePersistentEditors(const QModelIndex& rkIndex) void CPropertyView::OnPropertyModified(const QModelIndex& rkIndex) { // Check for a character resource being changed. If that's the case we need to remake the persistent editors. - IProperty *pProp = mpModel->PropertyForIndex(rkIndex, true); + IProperty* pProperty = mpModel->PropertyForIndex(rkIndex, true); - if (pProp->Type() == eCharacterProperty /*&& rkIndex.internalId() & 0x1*/) + if (pProperty->Type() == EPropertyType::AnimationSet /*&& rkIndex.internalId() & 0x1*/) { ClosePersistentEditors(rkIndex); SetPersistentEditors(rkIndex); } } +void CPropertyView::RefreshView() +{ + SetInstance(mpObject); +} + void CPropertyView::CreateContextMenu(const QPoint& rkPos) { QModelIndex Index = indexAt(rkPos); if (Index.isValid() && Index.column() == 0) { - IProperty *pProp = mpModel->PropertyForIndex(Index, true); - mpMenuProperty = pProp; + IProperty* pProperty = mpModel->PropertyForIndex(Index, true); + mpMenuProperty = pProperty; QMenu Menu; - Menu.addAction(mpEditTemplateAction); + + if (!pProperty->IsIntrinsic()) + { + Menu.addAction(mpEditTemplateAction); + } + + if (mpEditor->CurrentGame() >= EGame::EchoesDemo) + { + Menu.addAction(mpShowNameValidityAction); + } + + // Add options for generating property names + if (pProperty->UsesNameMap()) + { + Menu.addSeparator(); + Menu.addAction(mpGenNamesForPropertyAction); + + if (!pProperty->IsRootParent()) + { + QString TypeName = TO_QSTRING( pProperty->Parent()->RootArchetype()->Name() ); + mpGenNamesForSiblingsAction->setText( QString("Generate names for %1 properties").arg(TypeName) ); + Menu.addAction(mpGenNamesForSiblingsAction); + } + + if (pProperty->Type() == EPropertyType::Struct && !pProperty->IsAtomic()) + { + QString TypeName = TO_QSTRING( pProperty->RootArchetype()->Name() ); + mpGenNamesForChildrenAction->setText( QString("Generate names for %1 properties").arg(TypeName) ); + Menu.addAction(mpGenNamesForChildrenAction); + } + } + Menu.exec(viewport()->mapToGlobal(rkPos)); } } +void CPropertyView::ToggleShowNameValidity(bool ShouldShow) +{ + mpModel->SetShowPropertyNameValidity(ShouldShow); +} + void CPropertyView::EditPropertyTemplate() { - CTemplateEditDialog Dialog(mpMenuProperty->Template(), mpEditor); + CTemplateEditDialog Dialog(mpMenuProperty, mpEditor); + connect(&Dialog, SIGNAL(PerformedTypeConversion()), this, SLOT(RefreshView())); Dialog.exec(); } + + +void CPropertyView::GenerateNamesForProperty() +{ + CGeneratePropertyNamesDialog* pDialog = mpEditor->NameGeneratorDialog(); + pDialog->AddToIDPool(mpMenuProperty); + pDialog->show(); +} + +void CPropertyView::GenerateNamesForSiblings() +{ + CGeneratePropertyNamesDialog* pDialog = mpEditor->NameGeneratorDialog(); + pDialog->AddChildrenToIDPool(mpMenuProperty->Parent(), false); + pDialog->show(); +} + +void CPropertyView::GenerateNamesForChildren() +{ + CGeneratePropertyNamesDialog* pDialog = mpEditor->NameGeneratorDialog(); + pDialog->AddChildrenToIDPool(mpMenuProperty, false); + pDialog->show(); +} diff --git a/src/Editor/PropertyEdit/CPropertyView.h b/src/Editor/PropertyEdit/CPropertyView.h index 29602de0..abced927 100644 --- a/src/Editor/PropertyEdit/CPropertyView.h +++ b/src/Editor/PropertyEdit/CPropertyView.h @@ -16,13 +16,18 @@ class CPropertyView : public QTreeView CScriptObject *mpObject; IProperty *mpMenuProperty; + QAction *mpShowNameValidityAction; QAction *mpEditTemplateAction; + QAction *mpGenNamesForPropertyAction; + QAction *mpGenNamesForSiblingsAction; + QAction *mpGenNamesForChildrenAction; public: CPropertyView(QWidget *pParent = 0); void setModel(QAbstractItemModel *pModel); bool event(QEvent *pEvent); void SetEditor(CWorldEditor *pEditor); + void SetIntrinsicProperties(CStructRef InProperties); void SetInstance(CScriptObject *pObj); void UpdateEditorProperties(const QModelIndex& rkParent); @@ -33,8 +38,14 @@ public slots: void ClosePersistentEditors(const QModelIndex& rkIndex); void OnPropertyModified(const QModelIndex& rkIndex); + void RefreshView(); void CreateContextMenu(const QPoint& rkPos); + void ToggleShowNameValidity(bool ShouldShow); void EditPropertyTemplate(); + + void GenerateNamesForProperty(); + void GenerateNamesForSiblings(); + void GenerateNamesForChildren(); }; #endif // CPROPERTYVIEW_H diff --git a/src/Editor/ResourceBrowser/CResourceBrowser.cpp b/src/Editor/ResourceBrowser/CResourceBrowser.cpp index 94de4c23..57b85a97 100644 --- a/src/Editor/ResourceBrowser/CResourceBrowser.cpp +++ b/src/Editor/ResourceBrowser/CResourceBrowser.cpp @@ -63,6 +63,7 @@ CResourceBrowser::CResourceBrowser(QWidget *pParent) mpProxyModel = new CResourceProxyModel(this); mpProxyModel->setSourceModel(mpModel); mpUI->ResourceTableView->setModel(mpProxyModel); + mpUI->ResourceTableView->resizeRowsToContents(); QHeaderView *pHeader = mpUI->ResourceTableView->horizontalHeader(); pHeader->setSectionResizeMode(0, QHeaderView::Stretch); @@ -158,6 +159,7 @@ CResourceBrowser::CResourceBrowser(QWidget *pParent) connect(mpUI->ResourceTableView->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)), this, SLOT(OnResourceSelectionChanged(QModelIndex))); connect(mpProxyModel, SIGNAL(rowsInserted(QModelIndex,int,int)), mpUI->ResourceTableView, SLOT(resizeRowsToContents())); connect(mpProxyModel, SIGNAL(layoutChanged(QList,QAbstractItemModel::LayoutChangeHint)), mpUI->ResourceTableView, SLOT(resizeRowsToContents())); + connect(mpProxyModel, SIGNAL(modelReset()), mpUI->ResourceTableView, SLOT(resizeRowsToContents())); connect(mpFilterAllBox, SIGNAL(toggled(bool)), this, SLOT(OnFilterTypeBoxTicked(bool))); connect(gpEdApp, SIGNAL(ActiveProjectChanged(CGameProject*)), this, SLOT(UpdateStore())); } @@ -874,6 +876,9 @@ void CResourceBrowser::UpdateFilter() UpdateDescriptionLabel(); mpProxyModel->SetSearchString( TO_TSTRING(mpUI->SearchBar->text()) ); mpProxyModel->invalidate(); + + // not sure why I need to do this here? but the resize mode seems to get reset otherwise + mpUI->ResourceTableView->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch); } void CResourceBrowser::UpdateUndoActionStates() diff --git a/src/Editor/Undo/CCloneSelectionCommand.cpp b/src/Editor/Undo/CCloneSelectionCommand.cpp index c3343106..897f7abc 100644 --- a/src/Editor/Undo/CCloneSelectionCommand.cpp +++ b/src/Editor/Undo/CCloneSelectionCommand.cpp @@ -63,7 +63,7 @@ void CCloneSelectionCommand::redo() CScriptObject *pInstance = pScript->Instance(); CScriptObject *pCloneInst = mpEditor->ActiveArea()->SpawnInstance(pInstance->Template(), pInstance->Layer()); - pCloneInst->Properties()->Copy(pInstance->Properties()); + pCloneInst->CopyProperties(pInstance); pCloneInst->EvaluateProperties(); CScriptNode *pCloneNode = mpEditor->Scene()->CreateScriptNode(pCloneInst); diff --git a/src/Editor/Undo/CDeleteSelectionCommand.cpp b/src/Editor/Undo/CDeleteSelectionCommand.cpp index cb51b899..dc72a585 100644 --- a/src/Editor/Undo/CDeleteSelectionCommand.cpp +++ b/src/Editor/Undo/CDeleteSelectionCommand.cpp @@ -101,9 +101,9 @@ void CDeleteSelectionCommand::undo() rNode.pArea->AddInstanceToArea(pInstance); rNode.pLayer->AddInstance(pInstance, rNode.LayerIndex); - if (!pInstance->PositionProperty()) pNode->SetPosition(rNode.Position); - if (!pInstance->RotationProperty()) pNode->SetRotation(rNode.Rotation); - if (!pInstance->ScaleProperty()) pNode->SetScale(rNode.Scale); + pNode->SetPosition(rNode.Position); + pNode->SetRotation(rNode.Rotation); + pNode->SetScale(rNode.Scale); NewNodes << pNode; NewInstanceIDs << pInstance->InstanceID(); diff --git a/src/Editor/Undo/CEditScriptPropertyCommand.cpp b/src/Editor/Undo/CEditScriptPropertyCommand.cpp deleted file mode 100644 index b1b12f08..00000000 --- a/src/Editor/Undo/CEditScriptPropertyCommand.cpp +++ /dev/null @@ -1,55 +0,0 @@ -#include "CEditScriptPropertyCommand.h" -#include "EUndoCommand.h" - -CEditScriptPropertyCommand::CEditScriptPropertyCommand(IProperty *pProp, CWorldEditor *pEditor, IPropertyValue *pOldValue, bool IsDone, const QString& rkCommandName /*= "Edit Property"*/) - : IUndoCommand(rkCommandName) - , mpProp(pProp) - , mpEditor(pEditor) - , mCommandEnded(IsDone) -{ - mpOldValue = pOldValue; - mpNewValue = pProp->RawValue()->Clone(); -} - -CEditScriptPropertyCommand::~CEditScriptPropertyCommand() -{ - delete mpOldValue; - delete mpNewValue; -} - -int CEditScriptPropertyCommand::id() const -{ - return eEditScriptPropertyCmd; -} - -bool CEditScriptPropertyCommand::mergeWith(const QUndoCommand *pkOther) -{ - if (!mCommandEnded && pkOther->id() == eEditScriptPropertyCmd) - { - const CEditScriptPropertyCommand *pkCmd = static_cast(pkOther); - - if (pkCmd->mpProp == mpProp) - { - mpNewValue->Copy(pkCmd->mpNewValue); - mCommandEnded = pkCmd->mCommandEnded; - return true; - } - } - - return false; -} - -void CEditScriptPropertyCommand::undo() -{ - IProperty *pProp = *mpProp; - pProp->RawValue()->Copy(mpOldValue); - mpEditor->OnPropertyModified(pProp); - mCommandEnded = true; -} - -void CEditScriptPropertyCommand::redo() -{ - IProperty *pProp = *mpProp; - pProp->RawValue()->Copy(mpNewValue); - mpEditor->OnPropertyModified(pProp); -} diff --git a/src/Editor/Undo/CEditScriptPropertyCommand.h b/src/Editor/Undo/CEditScriptPropertyCommand.h index 63efad5c..e4c9f8ad 100644 --- a/src/Editor/Undo/CEditScriptPropertyCommand.h +++ b/src/Editor/Undo/CEditScriptPropertyCommand.h @@ -1,27 +1,81 @@ #ifndef CEDITSCRIPTPROPERTYCOMMAND_H #define CEDITSCRIPTPROPERTYCOMMAND_H -#include "IUndoCommand.h" +#include "IEditPropertyCommand.h" #include "ObjReferences.h" -#include "Editor/PropertyEdit/CPropertyModel.h" #include "Editor/WorldEditor/CWorldEditor.h" -class CEditScriptPropertyCommand : public IUndoCommand +class CEditScriptPropertyCommand : public IEditPropertyCommand { - CWorldEditor *mpEditor; - CPropertyPtr mpProp; - IPropertyValue *mpOldValue; - IPropertyValue *mpNewValue; - bool mCommandEnded; +protected: + QVector mInstances; + CWorldEditor* mpEditor; + QModelIndex mIndex; public: - CEditScriptPropertyCommand(IProperty *pProp, CWorldEditor *pEditor, IPropertyValue *pOldValue, bool IsDone, const QString& rkCommandName = "Edit Property"); - ~CEditScriptPropertyCommand(); - int id() const; - bool mergeWith(const QUndoCommand *pkOther); - void undo(); - void redo(); - bool AffectsCleanState() const { return true; } + CEditScriptPropertyCommand(IProperty* pProperty, + CWorldEditor* pEditor, + const QVector& rkInstances, + QModelIndex Index = QModelIndex(), + const QString& rkCommandName = "Edit Property") + : IEditPropertyCommand(pProperty, rkCommandName) + , mpEditor(pEditor) + , mIndex(Index) + { + // If the property being passed in is part of an array archetype, then we MUST have a QModelIndex. + // Without the index, there's no way to identify the correct child being edited. + if (!Index.isValid() && pProperty && pProperty->IsArrayArchetype()) + { + while (pProperty && pProperty->IsArrayArchetype()) + { + pProperty = pProperty->Parent(); + } + ASSERT(pProperty && !pProperty->IsArrayArchetype()); + } + + // Convert CScriptObject pointers to CInstancePtrs + mInstances.reserve( rkInstances.size() ); + + for (int i = 0; i < rkInstances.size(); i++) + mInstances.push_back( CInstancePtr(rkInstances[i]) ); + } + + virtual void GetObjectDataPointers(QVector& rOutPointers) const override + { + // todo: support multiple objects being edited at once on the property view + if (mIndex.isValid()) + { + ASSERT(mInstances.size() == 1); + rOutPointers << mInstances[0]->PropertyData(); + return; + } + + // grab instance pointers + ASSERT(!mpProperty->IsArrayArchetype()); + + rOutPointers.resize(mInstances.size()); + + for (int i = 0; i < mInstances.size(); i++) + rOutPointers[i] = mInstances[i]->PropertyData(); + } + + virtual void undo() override + { + IEditPropertyCommand::undo(); + NotifyWorldEditor(); + } + + virtual void redo() override + { + IEditPropertyCommand::redo(); + NotifyWorldEditor(); + } + + void NotifyWorldEditor() + { + for (int InstanceIdx = 0; InstanceIdx < mInstances.size(); InstanceIdx++) + mpEditor->OnPropertyModified(*mInstances[InstanceIdx], mpProperty); + } }; #endif // CEDITSCRIPTPROPERTYCOMMAND_H diff --git a/src/Editor/Undo/CResizeScriptArrayCommand.cpp b/src/Editor/Undo/CResizeScriptArrayCommand.cpp deleted file mode 100644 index d36b2e06..00000000 --- a/src/Editor/Undo/CResizeScriptArrayCommand.cpp +++ /dev/null @@ -1,71 +0,0 @@ -#include "CResizeScriptArrayCommand.h" - -CResizeScriptArrayCommand::CResizeScriptArrayCommand(IProperty *pProp, CWorldEditor *pEditor, CPropertyModel *pModel, int NewSize) - : IUndoCommand("Edit Property") - , mpEditor(pEditor) - , mpArray(pProp) - , mpModel(pModel) - , mOldSize(static_cast(pProp)->Count()) - , mNewSize(NewSize) -{ - mNewSizeLarger = mNewSize > mOldSize; - - if (!mNewSizeLarger) - { - CArrayProperty *pArray = static_cast(pProp); - - for (int iSub = mNewSize; iSub < mOldSize; iSub++) - { - mDeletedProperties << pArray->PropertyByIndex(iSub)->Clone(nullptr); - } - } -} - -CResizeScriptArrayCommand::~CResizeScriptArrayCommand() -{ - foreach (IProperty *pProp, mDeletedProperties) - delete pProp; -} - -void CResizeScriptArrayCommand::undo() -{ - if (mNewSize != mOldSize) - { - // Update parents - CArrayProperty *pArray = static_cast(*mpArray); - - foreach (IProperty *pProp, mDeletedProperties) - pProp->SetParent(pArray); - - // Resize array - QModelIndex Index = mpModel->IndexForProperty(pArray); - mpModel->ArrayAboutToBeResized(Index, (u32) mOldSize); - pArray->Resize(mOldSize); - - if (!mNewSizeLarger) - { - int NumNewElements = mOldSize - mNewSize; - - for (int iSub = 0; iSub < NumNewElements; iSub++) - { - u32 Idx = iSub + mNewSize; - pArray->PropertyByIndex(Idx)->Copy(mDeletedProperties[iSub]); - } - } - - mpModel->ArrayResized(Index, (u32) mNewSize); - } -} - -void CResizeScriptArrayCommand::redo() -{ - // Whether we're increasing or decreasing in size, there's no need to restore deleted properties on redo. - if (mNewSize != mOldSize) - { - CArrayProperty *pArray = static_cast(*mpArray); - QModelIndex Index = mpModel->IndexForProperty(pArray); - mpModel->ArrayAboutToBeResized(Index, (u32) mNewSize); - pArray->Resize(mNewSize); - mpModel->ArrayResized(Index, (u32) mOldSize); - } -} diff --git a/src/Editor/Undo/CResizeScriptArrayCommand.h b/src/Editor/Undo/CResizeScriptArrayCommand.h index a5b89ec3..b219d15a 100644 --- a/src/Editor/Undo/CResizeScriptArrayCommand.h +++ b/src/Editor/Undo/CResizeScriptArrayCommand.h @@ -1,30 +1,93 @@ #ifndef CRESIZESCRIPTARRAYCOMMAND_H #define CRESIZESCRIPTARRAYCOMMAND_H -#include "IUndoCommand.h" -#include "ObjReferences.h" -#include "Editor/PropertyEdit/CPropertyModel.h" -#include "Editor/WorldEditor/CWorldEditor.h" -#include +#include "CEditScriptPropertyCommand.h" -// todo: make this more general... it shouldn't be relying on a CPropertyModel pointer -class CResizeScriptArrayCommand : public IUndoCommand +class CResizeScriptArrayCommand : public CEditScriptPropertyCommand { - CWorldEditor *mpEditor; - CPropertyPtr mpArray; - QVector mDeletedProperties; - CPropertyModel *mpModel; + /** Property model the edit was performed on */ + CPropertyModel* mpModel; - int mOldSize; - int mNewSize; - bool mNewSizeLarger; + /** Old/new model row counts; we store this here to support editing arrays on multiple instances at once */ + int mOldRowCount; + int mNewRowCount; public: - CResizeScriptArrayCommand(IProperty *pProp, CWorldEditor *pEditor, CPropertyModel *pModel, int NewSize); - ~CResizeScriptArrayCommand(); - void undo(); - void redo(); - bool AffectsCleanState() const { return true; } + CResizeScriptArrayCommand(IProperty* pProperty, + CWorldEditor* pEditor, + const QVector& rkInstances, + CPropertyModel* pModel = nullptr, + QModelIndex Index = QModelIndex(), + const QString& rkCommandName = "Resize Array" + ) + : CEditScriptPropertyCommand(pProperty, pEditor, rkInstances, Index, rkCommandName) + , mpModel(nullptr) + , mOldRowCount(-1) + , mNewRowCount(-1) + { + if (Index.isValid()) + { + ASSERT(pModel != nullptr); + mpModel = pModel; + } + } + + bool mergeWith(const QUndoCommand *pkOther) + { + return false; + } + + virtual void SaveOldData() override + { + CEditScriptPropertyCommand::SaveOldData(); + + if (mpModel) + { + mOldRowCount = mpModel->rowCount(mIndex); + } + } + + virtual void SaveNewData() override + { + CEditScriptPropertyCommand::SaveNewData(); + + if (mpModel) + { + mNewRowCount = mpModel->rowCount(mIndex); + } + } + + // Note in some cases undo/redo may be called when the change has already been applied outside of the undo command + // This is why we need to check the array's actual current size instead of assuming it will match one of the arrays + void undo() + { + if (mpModel) + { + mpModel->ArrayAboutToBeResized(mIndex, mOldRowCount); + } + + CEditScriptPropertyCommand::undo(); + + if (mpModel) + { + mpModel->ArrayResized(mIndex, mNewRowCount); + } + } + + void redo() + { + if (mpModel) + { + mpModel->ArrayAboutToBeResized(mIndex, mNewRowCount); + } + + CEditScriptPropertyCommand::redo(); + + if (mpModel) + { + mpModel->ArrayResized(mIndex, mOldRowCount); + } + } }; #endif // CRESIZESCRIPTARRAYCOMMAND_H diff --git a/src/Editor/Undo/EUndoCommand.h b/src/Editor/Undo/EUndoCommand.h index b33e7ed0..41f1ae25 100644 --- a/src/Editor/Undo/EUndoCommand.h +++ b/src/Editor/Undo/EUndoCommand.h @@ -8,7 +8,7 @@ enum EUndoCommand eTranslateNodeCmd, eRotateNodeCmd, eScaleNodeCmd, - eEditScriptPropertyCmd + eEditPropertyCmd }; #endif // EUNDOCOMMAND diff --git a/src/Editor/Undo/IEditPropertyCommand.cpp b/src/Editor/Undo/IEditPropertyCommand.cpp new file mode 100644 index 00000000..a1266d27 --- /dev/null +++ b/src/Editor/Undo/IEditPropertyCommand.cpp @@ -0,0 +1,122 @@ +#include "IEditPropertyCommand.h" + +/** Save the current state of the object properties to the given data buffer */ +void IEditPropertyCommand::SaveObjectStateToArray(std::vector& rVector) +{ + CVectorOutStream MemStream(&rVector, IOUtil::kSystemEndianness); + CBasicBinaryWriter Writer(&MemStream, CSerialVersion(IArchive::skCurrentArchiveVersion, 0, mpProperty->Game())); + + QVector DataPointers; + GetObjectDataPointers(DataPointers); + + foreach (void* pData, DataPointers) + { + mpProperty->SerializeValue(pData, Writer); + } +} + +/** Restore the state of the object properties from the given data buffer */ +void IEditPropertyCommand::RestoreObjectStateFromArray(std::vector& rArray) +{ + CBasicBinaryReader Reader(rArray.data(), rArray.size(), CSerialVersion(IArchive::skCurrentArchiveVersion, 0, mpProperty->Game())); + + QVector DataPointers; + GetObjectDataPointers(DataPointers); + + foreach (void* pData, DataPointers) + { + mpProperty->SerializeValue(pData, Reader); + } +} + +IEditPropertyCommand::IEditPropertyCommand( + IProperty* pProperty, + const QString& rkCommandName /*= "Edit Property"*/ + ) + : IUndoCommand(rkCommandName) + , mpProperty(pProperty) + , mSavedOldData(false) + , mSavedNewData(false) +{ + ASSERT(mpProperty); +} + +void IEditPropertyCommand::SaveOldData() +{ + SaveObjectStateToArray(mOldData); + mSavedOldData = true; +} + +void IEditPropertyCommand::SaveNewData() +{ + SaveObjectStateToArray(mNewData); + mSavedNewData = true; +} + +bool IEditPropertyCommand::IsNewDataDifferent() +{ + if (mOldData.size() != mNewData.size()) return true; + return memcmp(mOldData.data(), mNewData.data(), mNewData.size()) != 0; +} + +void IEditPropertyCommand::SetEditComplete(bool IsComplete) +{ + mCommandEnded = IsComplete; +} + +/** IUndoCommand/QUndoCommand interface */ +int IEditPropertyCommand::id() const +{ + return eEditPropertyCmd; +} + +bool IEditPropertyCommand::mergeWith(const QUndoCommand *pkOther) +{ + if (!mCommandEnded) + { + const IEditPropertyCommand* pkCmd = dynamic_cast(pkOther); + + if (pkCmd && pkCmd->mpProperty == mpProperty) + { + QVector MyPointers; + GetObjectDataPointers(MyPointers); + + QVector TheirPointers; + pkCmd->GetObjectDataPointers(TheirPointers); + + if (TheirPointers.size() == MyPointers.size()) + { + for (int PtrIdx = 0; PtrIdx < MyPointers.size(); PtrIdx++) + { + if (MyPointers[PtrIdx] != TheirPointers[PtrIdx]) + return false; + } + + // Match + mNewData = pkCmd->mNewData; + mCommandEnded = pkCmd->mCommandEnded; + return true; + } + } + } + + return false; +} + +void IEditPropertyCommand::undo() +{ + ASSERT(mSavedOldData && mSavedNewData); + RestoreObjectStateFromArray(mOldData); + mCommandEnded = true; +} + +void IEditPropertyCommand::redo() +{ + ASSERT(mSavedOldData && mSavedNewData); + RestoreObjectStateFromArray(mNewData); +} + +bool IEditPropertyCommand::AffectsCleanState() const +{ + return true; +} diff --git a/src/Editor/Undo/IEditPropertyCommand.h b/src/Editor/Undo/IEditPropertyCommand.h new file mode 100644 index 00000000..59222ed5 --- /dev/null +++ b/src/Editor/Undo/IEditPropertyCommand.h @@ -0,0 +1,49 @@ +#ifndef IEDITPROPERTYCOMMAND_H +#define IEDITPROPERTYCOMMAND_H + +#include "IUndoCommand.h" +#include "EUndoCommand.h" +#include "Editor/PropertyEdit/CPropertyModel.h" + +class IEditPropertyCommand : public IUndoCommand +{ +protected: + // Has to be std::vector for compatibility with CVectorOutStream + std::vector mOldData; + std::vector mNewData; + + IProperty* mpProperty; + bool mCommandEnded; + bool mSavedOldData; + bool mSavedNewData; + + /** Save the current state of the object properties to the given data buffer */ + void SaveObjectStateToArray(std::vector& rVector); + + /** Restore the state of the object properties from the given data buffer */ + void RestoreObjectStateFromArray(std::vector& rArray); + +public: + IEditPropertyCommand( + IProperty* pProperty, + const QString& rkCommandName = "Edit Property" + ); + + virtual void SaveOldData(); + virtual void SaveNewData(); + + bool IsNewDataDifferent(); + void SetEditComplete(bool IsComplete); + + /** Interface */ + virtual void GetObjectDataPointers(QVector& rOutPointers) const = 0; + + /** IUndoCommand/QUndoCommand interface */ + int id() const; + bool mergeWith(const QUndoCommand *pkOther); + void undo(); + void redo(); + bool AffectsCleanState() const; +}; + +#endif // IEDITPROPERTYCOMMAND_H diff --git a/src/Editor/Undo/ObjReferences.h b/src/Editor/Undo/ObjReferences.h index e862562d..fd3ee307 100644 --- a/src/Editor/Undo/ObjReferences.h +++ b/src/Editor/Undo/ObjReferences.h @@ -111,35 +111,6 @@ public: } }; -class CPropertyPtr -{ - CInstancePtr mpInstance; - TIDString mPropertyID; - bool mValid; - -public: - CPropertyPtr() { SetProperty(nullptr); } - CPropertyPtr(IProperty *pProp) { SetProperty(pProp); } - - inline void SetProperty(IProperty *pProp) - { - mpInstance = pProp ? pProp->Instance() : nullptr; - mPropertyID = pProp ? pProp->IDString(true) : ""; - mValid = pProp ? true : false; - } - - inline CInstancePtr InstancePtr() const { return mpInstance; } - inline TIDString PropertyID() const { return mPropertyID; } - inline IProperty* operator* () const { return mValid ? mpInstance->PropertyByIDString(mPropertyID) : nullptr; } - inline IProperty* operator->() const { return mValid ? mpInstance->PropertyByIDString(mPropertyID) : nullptr; } - inline CPropertyPtr& operator=(IProperty *pProp) { SetProperty(pProp); return *this; } - - inline bool operator==(const CPropertyPtr& rkOther) const - { - return (mpInstance == rkOther.mpInstance && mPropertyID == rkOther.mPropertyID); - } -}; - class CLinkPtr { CInstancePtr mpInstance; @@ -170,7 +141,6 @@ public: DEFINE_PTR_LIST_CLASS(CNodePtrList, CNodePtr, CSceneNode*) DEFINE_PTR_LIST_CLASS(CInstancePtrList, CInstancePtr, CScriptObject*) -DEFINE_PTR_LIST_CLASS(CPropertyPtrList, CPropertyPtr, IProperty*) DEFINE_PTR_LIST_CLASS(CLinkPtrList, CLinkPtr, CLink*) #endif // OBJREFERENCES diff --git a/src/Editor/Widgets/CCheckableTreeWidget.h b/src/Editor/Widgets/CCheckableTreeWidget.h new file mode 100644 index 00000000..4d6292eb --- /dev/null +++ b/src/Editor/Widgets/CCheckableTreeWidget.h @@ -0,0 +1,22 @@ +#ifndef CCHECKABLETREEWIDGET_H +#define CCHECKABLETREEWIDGET_H + +#include + +/** + * QTreeWidget subclass that emits a signal when an item is checked or unchecked. + * Items must be instantiated as CCheckableTreeWidgetItem, not QTreeWidgetItem. +*/ +class CCheckableTreeWidget : public QTreeWidget +{ + Q_OBJECT + +signals: + void CheckStateChanged(QTreeWidgetItem* pItem); + +public: + CCheckableTreeWidget(QWidget* pParent = 0) + : QTreeWidget(pParent) {} +}; + +#endif // CCHECKABLETREEWIDGET_H diff --git a/src/Editor/Widgets/CCheckableTreeWidgetItem.h b/src/Editor/Widgets/CCheckableTreeWidgetItem.h new file mode 100644 index 00000000..e99e2980 --- /dev/null +++ b/src/Editor/Widgets/CCheckableTreeWidgetItem.h @@ -0,0 +1,59 @@ +#ifndef CCHECKABLETREEWIDGETITEM_H +#define CCHECKABLETREEWIDGETITEM_H + +#include "CCheckableTreeWidget.h" +#include + +/** QTreeWidgetItem subclass that emits a signal when checked/unchecked. */ +class CCheckableTreeWidgetItem : public QTreeWidgetItem +{ +public: + /** Constructors */ + CCheckableTreeWidgetItem(int type = Type) + : QTreeWidgetItem(type) {} + + CCheckableTreeWidgetItem(const QStringList& strings, int type = Type) + : QTreeWidgetItem(strings, type) {} + + CCheckableTreeWidgetItem(QTreeWidget* parent, int type = Type) + : QTreeWidgetItem(parent, type) {} + + CCheckableTreeWidgetItem(QTreeWidget* parent, const QStringList& strings, int type = Type) + : QTreeWidgetItem(parent, strings, type) {} + + CCheckableTreeWidgetItem(QTreeWidget* parent, QTreeWidgetItem* preceding, int type = Type) + : QTreeWidgetItem(parent, preceding, type) {} + + CCheckableTreeWidgetItem(QTreeWidgetItem* parent, int type = Type) + : QTreeWidgetItem(parent, type) {} + + CCheckableTreeWidgetItem(QTreeWidgetItem* parent, const QStringList& strings, int type = Type) + : QTreeWidgetItem(parent, strings, type) {} + + CCheckableTreeWidgetItem(QTreeWidgetItem* parent, QTreeWidgetItem* preceding, int type = Type) + : QTreeWidgetItem(parent, preceding, type) {} + + CCheckableTreeWidgetItem(const QTreeWidgetItem& other) + : QTreeWidgetItem(other) {} + + /** setData override to catch check state changes */ + virtual void setData(int Column, int Role, const QVariant& rkValue) + { + Qt::CheckState OldState = checkState(0); + QTreeWidgetItem::setData(Column, Role, rkValue); + Qt::CheckState NewState = checkState(0); + + if (OldState != NewState) + { + CCheckableTreeWidget* pCheckableTree = + qobject_cast(treeWidget()); + + if (pCheckableTree) + { + pCheckableTree->CheckStateChanged(this); + } + } + } +}; + +#endif // CCHECKABLETREEWIDGETITEM_H diff --git a/src/Editor/Widgets/CSoftValidatorLineEdit.h b/src/Editor/Widgets/CSoftValidatorLineEdit.h new file mode 100644 index 00000000..e2b476f3 --- /dev/null +++ b/src/Editor/Widgets/CSoftValidatorLineEdit.h @@ -0,0 +1,127 @@ +#ifndef CSOFTVALIDATORLINEEDIT_H +#define CSOFTVALIDATORLINEEDIT_H + +#include "CTimedLineEdit.h" +#include + +/** + * A QLineEdit subclass that can use a QValidator to check if the input meets certain criteria. + * If the criteria is met, the line edit has a green outline; otherwise, a red outline. + * Unlike the normal QLineEdit validator, the effects of this are strictly cosmetic. + */ +class CSoftValidatorLineEdit : public CTimedLineEdit +{ + Q_OBJECT + + /** The validator that input is checked against */ + QValidator* mpSoftValidator; + + /** Whether to only validate when the user stops typing. Good for slow validators. */ + bool mOnlyValidateOnFinishedTyping; + + /** Whether the current input is valid */ + bool mInputIsValid; + +signals: + /** Emitted when the validity of the input changes */ + void SoftValidityChanged(bool NewValid); + +protected slots: + /** Internal update function */ + void InternalUpdate() + { + bool NewValidity = false; + + if ( mpSoftValidator ) + { + QString Text = text(); + int DummyPos; + + if ( mpSoftValidator->validate(Text, DummyPos) == QValidator::Acceptable ) + { + NewValidity = true; + setStyleSheet("border: 1px solid green"); + } + else + { + NewValidity = false; + setStyleSheet("border: 1px solid red"); + } + } + else + { + NewValidity = true; + setStyleSheet(""); + } + + if (NewValidity != mInputIsValid) + { + mInputIsValid = NewValidity; + emit SoftValidityChanged(mInputIsValid); + } + } + +public: + CSoftValidatorLineEdit(QWidget *pParent = 0) + : CTimedLineEdit(pParent) + , mpSoftValidator(nullptr) + , mOnlyValidateOnFinishedTyping(false) + , mInputIsValid(true) + {} + + /** Set the soft validator to use */ + void SetSoftValidator(QValidator* pValidator) + { + if (mpSoftValidator) + { + disconnect(mpSoftValidator); + mpSoftValidator = nullptr; + } + + if (pValidator) + { + mpSoftValidator = pValidator; + connect(mpSoftValidator, SIGNAL(changed()), this, SLOT(InternalUpdate())); + } + + InternalUpdate(); + } + + /** Set whether the input should only be validated when the user finishes typing. */ + void SetOnlyDoSoftValidationOnFinishedTyping(bool Enable) + { + mOnlyValidateOnFinishedTyping = Enable; + + if (!mOnlyValidateOnFinishedTyping) + InternalUpdate(); + } + + /** Check whether the input is valid */ + inline bool IsInputValid() const + { + return mInputIsValid; + } + +public slots: + virtual void OnTextChanged() + { + CTimedLineEdit::OnTextChanged(); + + if (!mOnlyValidateOnFinishedTyping) + { + InternalUpdate(); + } + } + + virtual void OnTimeout() + { + CTimedLineEdit::OnTimeout(); + + if (mOnlyValidateOnFinishedTyping) + { + InternalUpdate(); + } + } +}; + +#endif // CSOFTVALIDATORLINEEDIT_H diff --git a/src/Editor/Widgets/CValidityLabel.h b/src/Editor/Widgets/CValidityLabel.h new file mode 100644 index 00000000..ddd80036 --- /dev/null +++ b/src/Editor/Widgets/CValidityLabel.h @@ -0,0 +1,71 @@ +#ifndef CVALIDITYLABEL_H +#define CVALIDITYLABEL_H + +#include + +/** QLabel subclass that displays different text in either red or green depending on a flag. */ +class CValidityLabel : public QLabel +{ + Q_OBJECT + + /** String to display if valid */ + QString mValidString; + + /** String to display if invalid */ + QString mInvalidString; + + /** Whether we are displaying the valid or invalid string */ + bool mValid; + +public: + CValidityLabel(QWidget* pParent = 0) + : QLabel(pParent) + { + SetValid(true); + } + + CValidityLabel(const QString& rkValidText, const QString& rkInvalidText, QWidget* pParent = 0) + : QLabel( rkValidText, pParent ) + , mValidString( rkValidText ) + , mInvalidString( rkInvalidText ) + { + SetValid(true); + } + + /** Configure the strings to display */ + void SetValidityText(const QString& rkValidText, const QString& rkInvalidText) + { + mValidString = rkValidText; + mInvalidString = rkInvalidText; + setText(mValid ? mValidString : mInvalidString); + } + + /** Returns whether we are valid */ + inline bool IsValid() const + { + return mValid; + } + +public slots: + /** Updates the label as either valid or invalid */ + void SetValid(bool Valid) + { + mValid = Valid; + QPalette NewPalette; + + if (mValid) + { + NewPalette.setColor( foregroundRole(), Qt::green ); + setText(mValidString); + } + else + { + NewPalette.setColor( foregroundRole(), Qt::red ); + setText(mInvalidString); + } + + setPalette(NewPalette); + } +}; + +#endif // CVALIDITYLABEL_H diff --git a/src/Editor/Widgets/TEnumComboBox.h b/src/Editor/Widgets/TEnumComboBox.h new file mode 100644 index 00000000..19dee2e2 --- /dev/null +++ b/src/Editor/Widgets/TEnumComboBox.h @@ -0,0 +1,38 @@ +#ifndef TENUMCOMBOBOX_H +#define TENUMCOMBOBOX_H + +#include +#include + +/** + * Combo box subclass that auto-fills with an enum + * No custom signals because Q_OBJECT macro doesn't support templates + */ +template +class TEnumComboBox : public QComboBox +{ + /** Vector forming an index -> enum mapping */ + QVector mValueList; + +public: + /** Constructor */ + explicit TEnumComboBox(QWidget* pParent = 0) + : QComboBox(pParent) + { + for (TEnumReflection::CIterator It; It; ++It) + { + if (It.Value() != TEnumReflection::ErrorValue()) + { + addItem( It.Name() ); + mValueList << It.Value(); + } + } + } + + EnumT currentEnum() const + { + return mValueList[ currentIndex() ]; + } +}; + +#endif // TENUMCOMBOBOX_H diff --git a/src/Editor/Widgets/WScanPreviewPanel.cpp b/src/Editor/Widgets/WScanPreviewPanel.cpp index a9f0fbe0..e7c1d3fc 100644 --- a/src/Editor/Widgets/WScanPreviewPanel.cpp +++ b/src/Editor/Widgets/WScanPreviewPanel.cpp @@ -45,7 +45,7 @@ void WScanPreviewPanel::SetResource(CResource *pRes) ui->ScanTypeLabel->setText("Important"); else { - if (pScan->Game() <= ePrime) + if (pScan->Game() <= EGame::Prime) ui->ScanTypeLabel->setText("Normal"); else ui->ScanTypeLabel->setText("Normal"); @@ -81,7 +81,7 @@ void WScanPreviewPanel::SetResource(CResource *pRes) ui->ScanTextWidget->SetResource(pScan->ScanText()); // Show logbook category? (Yes on MP1, no on MP2+) - if (pScan->Game() <= ePrime) + if (pScan->Game() <= EGame::Prime) { ui->CategoryInfoLabel->show(); ui->ScanCategoryLabel->show(); diff --git a/src/Editor/WorldEditor/CCollisionRenderSettingsDialog.cpp b/src/Editor/WorldEditor/CCollisionRenderSettingsDialog.cpp index 5a1e99bb..4e8f50d6 100644 --- a/src/Editor/WorldEditor/CCollisionRenderSettingsDialog.cpp +++ b/src/Editor/WorldEditor/CCollisionRenderSettingsDialog.cpp @@ -53,17 +53,17 @@ void CCollisionRenderSettingsDialog::SetupWidgets() mpUi->HideAiBlockCheckBox->setChecked(rSettings.HideMaterial.HasFlag(eCF_AiBlock)); // Toggle visibility of game-exclusive widgets - mpUi->SurfaceTypeCheckBox->setHidden( Game == eReturns ); - mpUi->StandableTrisCheckBox->setHidden( Game == eReturns ); - mpUi->AreaBoundsCheckBox->setHidden( Game == eReturns ); - mpUi->BackfacesCheckBox->setHidden( Game == eReturns ); + mpUi->SurfaceTypeCheckBox->setHidden( Game == EGame::DKCReturns ); + mpUi->StandableTrisCheckBox->setHidden( Game == EGame::DKCReturns ); + mpUi->AreaBoundsCheckBox->setHidden( Game == EGame::DKCReturns ); + mpUi->BackfacesCheckBox->setHidden( Game == EGame::DKCReturns ); - mpUi->VisibilityGroupBox->setHidden( Game == eReturns ); - mpUi->HideShootThruCheckBox->setHidden( Game == eReturns ); - mpUi->HideCameraThruCheckBox->setHidden( Game == eReturns ); - mpUi->HideScanThruCheckBox->setHidden( Game == eReturns ); - mpUi->HideAiWalkThruCheckBox->setHidden( Game == eReturns ); - mpUi->HideAiBlockCheckBox->setHidden( Game < eEchoesDemo || Game == eReturns ); + mpUi->VisibilityGroupBox->setHidden( Game == EGame::DKCReturns ); + mpUi->HideShootThruCheckBox->setHidden( Game == EGame::DKCReturns ); + mpUi->HideCameraThruCheckBox->setHidden( Game == EGame::DKCReturns ); + mpUi->HideScanThruCheckBox->setHidden( Game == EGame::DKCReturns ); + mpUi->HideAiWalkThruCheckBox->setHidden( Game == EGame::DKCReturns ); + mpUi->HideAiBlockCheckBox->setHidden( Game < EGame::EchoesDemo || Game == EGame::DKCReturns ); } void CCollisionRenderSettingsDialog::OnHideMaskChanged(QString NewMask) diff --git a/src/Editor/WorldEditor/CInstancesModel.cpp b/src/Editor/WorldEditor/CInstancesModel.cpp index 75483e9b..fb35f39f 100644 --- a/src/Editor/WorldEditor/CInstancesModel.cpp +++ b/src/Editor/WorldEditor/CInstancesModel.cpp @@ -1,6 +1,7 @@ #include "CInstancesModel.h" #include "Editor/UICommon.h" #include +#include #include #include #include @@ -31,7 +32,7 @@ CInstancesModel::CInstancesModel(CWorldEditor *pEditor, QObject *pParent) , mpEditor(pEditor) , mpScene(pEditor->Scene()) , mpArea(nullptr) - , mpCurrentMaster(nullptr) + , mpCurrentGame(nullptr) , mModelType(eLayers) , mShowColumnEnabled(true) , mChangingLayout(false) @@ -364,12 +365,9 @@ void CInstancesModel::OnActiveProjectChanged(CGameProject *pProj) if (mModelType == eTypes) { if (pProj) - { - EGame ProjGame = pProj->Game(); - mpCurrentMaster = CMasterTemplate::MasterForGame(ProjGame); - } + mpCurrentGame = NGameList::GetGameTemplate( pProj->Game() ); else - mpCurrentMaster = nullptr; + mpCurrentGame = nullptr; GenerateList(); } @@ -476,7 +474,7 @@ void CInstancesModel::NodeDeleted() void CInstancesModel::PropertyModified(CScriptObject *pInst, IProperty *pProp) { - if (pInst->InstanceNameProperty() == pProp) + if (pProp->Name() == "Name") { QModelIndex ScriptRoot = index(0, 0, QModelIndex()); @@ -570,13 +568,13 @@ void CInstancesModel::GenerateList() mTemplateList.clear(); - if (mpCurrentMaster) + if (mpCurrentGame) { - u32 NumTemplates = mpCurrentMaster->NumScriptTemplates(); + u32 NumTemplates = mpCurrentGame->NumScriptTemplates(); for (u32 iTemp = 0; iTemp < NumTemplates; iTemp++) { - CScriptTemplate *pTemp = mpCurrentMaster->TemplateByIndex(iTemp); + CScriptTemplate *pTemp = mpCurrentGame->TemplateByIndex(iTemp); if (pTemp->NumObjects() > 0) mTemplateList << pTemp; diff --git a/src/Editor/WorldEditor/CInstancesModel.h b/src/Editor/WorldEditor/CInstancesModel.h index 270143cf..6fdd7fc5 100644 --- a/src/Editor/WorldEditor/CInstancesModel.h +++ b/src/Editor/WorldEditor/CInstancesModel.h @@ -2,7 +2,7 @@ #define CTYPESINSTANCEMODEL_H #include "CWorldEditor.h" -#include +#include #include #include @@ -35,7 +35,7 @@ private: CWorldEditor *mpEditor; CScene *mpScene; CGameArea *mpArea; - CMasterTemplate *mpCurrentMaster; + CGameTemplate *mpCurrentGame; EInstanceModelType mModelType; QList mTemplateList; QStringList mBaseItems; diff --git a/src/Editor/WorldEditor/CLinkDialog.cpp b/src/Editor/WorldEditor/CLinkDialog.cpp index b91d3d17..fff95781 100644 --- a/src/Editor/WorldEditor/CLinkDialog.cpp +++ b/src/Editor/WorldEditor/CLinkDialog.cpp @@ -10,7 +10,7 @@ CLinkDialog::CLinkDialog(CWorldEditor *pEditor, QWidget *pParent /*= 0*/) : QDialog(pParent) , ui(new Ui::CLinkDialog) , mpEditor(pEditor) - , mpMaster(nullptr) + , mpGame(nullptr) , mpSender(nullptr) , mpReceiver(nullptr) , mSenderStateModel(CStateMessageModel::eStates, this) @@ -77,13 +77,13 @@ void CLinkDialog::EditLink(CLink *pLink) ui->ReceiverMessageComboBox->setCurrentIndex(mReceiverMessageModel.MessageIndex(pLink->Message())); } -void CLinkDialog::SetMaster(CMasterTemplate *pMaster) +void CLinkDialog::SetGame(CGameTemplate *pGame) { - if (mpMaster != pMaster) + if (mpGame != pGame) { - mpMaster = pMaster; - mSenderStateModel.SetMasterTemplate(pMaster); - mReceiverMessageModel.SetMasterTemplate(pMaster); + mpGame = pGame; + mSenderStateModel.SetGameTemplate(pGame); + mReceiverMessageModel.SetGameTemplate(pGame); } } diff --git a/src/Editor/WorldEditor/CLinkDialog.h b/src/Editor/WorldEditor/CLinkDialog.h index c3b57e59..c6f12a40 100644 --- a/src/Editor/WorldEditor/CLinkDialog.h +++ b/src/Editor/WorldEditor/CLinkDialog.h @@ -12,7 +12,7 @@ class CLinkDialog : public QDialog Q_OBJECT CWorldEditor *mpEditor; - CMasterTemplate *mpMaster; + CGameTemplate *mpGame; CScriptObject *mpSender; CScriptObject *mpReceiver; CLink *mpEditLink; @@ -34,7 +34,7 @@ public: void NewLink(CScriptObject *pSender, CScriptObject *pReceiver); void EditLink(CLink *pLink); - void SetMaster(CMasterTemplate *pMaster); + void SetGame(CGameTemplate *pGame); void SetSender(CScriptObject *pSender); void SetReceiver(CScriptObject *pReceiver); u32 State() const; diff --git a/src/Editor/WorldEditor/CLinkModel.cpp b/src/Editor/WorldEditor/CLinkModel.cpp index b118f459..2774e263 100644 --- a/src/Editor/WorldEditor/CLinkModel.cpp +++ b/src/Editor/WorldEditor/CLinkModel.cpp @@ -1,7 +1,7 @@ #include "CLinkModel.h" #include "Editor/UICommon.h" #include -#include +#include CLinkModel::CLinkModel(QObject *pParent) : QAbstractTableModel(pParent) @@ -67,13 +67,13 @@ QVariant CLinkModel::data(const QModelIndex& rkIndex, int Role) const case 1: // Column 1 - State { - TString StateName = mpObject->MasterTemplate()->StateByID(pLink->State()).Name; + TString StateName = mpObject->GameTemplate()->StateByID(pLink->State()).Name; return UICommon::ToQString(StateName); } case 2: // Column 2 - Message { - TString MessageName = mpObject->MasterTemplate()->MessageByID(pLink->Message()).Name; + TString MessageName = mpObject->GameTemplate()->MessageByID(pLink->Message()).Name; return UICommon::ToQString(MessageName); } diff --git a/src/Editor/WorldEditor/CPoiMapSidebar.cpp b/src/Editor/WorldEditor/CPoiMapSidebar.cpp index 5a75d6f9..622a3294 100644 --- a/src/Editor/WorldEditor/CPoiMapSidebar.cpp +++ b/src/Editor/WorldEditor/CPoiMapSidebar.cpp @@ -5,7 +5,8 @@ #include #include -#include +#include +#include #include #include @@ -339,7 +340,7 @@ void CPoiMapSidebar::StopPicking() void CPoiMapSidebar::OnInstanceListButtonClicked() { EGame Game = Editor()->CurrentGame(); - CScriptTemplate *pPoiTemplate = CMasterTemplate::MasterForGame(Game)->TemplateByID("POIN"); + CScriptTemplate *pPoiTemplate = NGameList::GetGameTemplate(Game)->TemplateByID("POIN"); CPoiListDialog Dialog(pPoiTemplate, &mSourceModel, Editor()->Scene(), this); Dialog.exec(); diff --git a/src/Editor/WorldEditor/CStateMessageModel.h b/src/Editor/WorldEditor/CStateMessageModel.h index 0b95a115..9017a64d 100644 --- a/src/Editor/WorldEditor/CStateMessageModel.h +++ b/src/Editor/WorldEditor/CStateMessageModel.h @@ -2,11 +2,11 @@ #define CSTATEMESSAGEMODEL_H #include "Editor/UICommon.h" -#include +#include #include #include -// todo: support pulling states/messages from script templates instead of master +// todo: support pulling states/messages from script templates instead of game class CStateMessageModel : public QAbstractListModel { Q_OBJECT @@ -35,7 +35,7 @@ private: }; QList mEntries; - CMasterTemplate *mpMaster; + CGameTemplate *mpGame; CScriptTemplate *mpScript; EType mType; @@ -43,7 +43,7 @@ public: explicit CStateMessageModel(EType Type, QObject *pParent = 0) : QAbstractListModel(pParent) , mType(Type) - , mpMaster(nullptr) + , mpGame(nullptr) , mpScript(nullptr) {} @@ -62,27 +62,27 @@ public: else return QVariant::Invalid; } - void SetMasterTemplate(CMasterTemplate *pMaster) + void SetGameTemplate(CGameTemplate *pGame) { beginResetModel(); - mpMaster = pMaster; + mpGame = pGame; mEntries.clear(); if (mType == eStates) { - for (u32 iState = 0; iState < pMaster->NumStates(); iState++) + for (u32 iState = 0; iState < pGame->NumStates(); iState++) { - SState State = pMaster->StateByIndex(iState); + SState State = pGame->StateByIndex(iState); mEntries << SEntry(State.ID, TO_QSTRING(State.Name)); } } else { - for (u32 iMsg = 0; iMsg < pMaster->NumMessages(); iMsg++) + for (u32 iMsg = 0; iMsg < pGame->NumMessages(); iMsg++) { - SMessage Message = pMaster->MessageByIndex(iMsg); + SMessage Message = pGame->MessageByIndex(iMsg); mEntries << SEntry(Message.ID, TO_QSTRING(Message.Name)); } } diff --git a/src/Editor/WorldEditor/CTemplateEditDialog.cpp b/src/Editor/WorldEditor/CTemplateEditDialog.cpp index 4b6b5670..e8887d09 100644 --- a/src/Editor/WorldEditor/CTemplateEditDialog.cpp +++ b/src/Editor/WorldEditor/CTemplateEditDialog.cpp @@ -2,256 +2,345 @@ #include "ui_CTemplateEditDialog.h" #include "Editor/UICommon.h" -#include -#include -#include +#include +#include +#include -CTemplateEditDialog::CTemplateEditDialog(IPropertyTemplate *pTemplate, QWidget *pParent) +#include + +CTemplateEditDialog::CTemplateEditDialog(IProperty *pProperty, QWidget *pParent) : QDialog(pParent) - , ui(new Ui::CTemplateEditDialog) - , mpTemplate(pTemplate) - , mGame(pTemplate->Game()) - , mOriginalName(pTemplate->Name()) - , mOriginalDescription(pTemplate->Description()) + , mpUI(new Ui::CTemplateEditDialog) + , mpValidator(new CPropertyNameValidator(this)) + , mpProperty(pProperty) + , mGame(pProperty->Game()) + , mOriginalName(pProperty->Name()) + , mOriginalDescription(pProperty->Description()) + , mOriginalAllowTypeNameOverride(false) + , mOriginalNameWasValid(true) { - ui->setupUi(this); + mpUI->setupUi(this); - ui->IDDisplayLabel->setText(TO_QSTRING(pTemplate->IDString(false))); - ui->PathDisplayLabel->setText(TO_QSTRING(pTemplate->IDString(true))); - ui->NameLineEdit->setText(TO_QSTRING(pTemplate->Name())); - ui->DescriptionTextEdit->setPlainText(TO_QSTRING(pTemplate->Description())); + mpUI->IDDisplayLabel->setText(TO_QSTRING(pProperty->IDString(false))); + mpUI->PathDisplayLabel->setText(TO_QSTRING(pProperty->IDString(true))); + mpUI->NameLineEdit->setText(TO_QSTRING(pProperty->Name())); + mpUI->DescriptionTextEdit->setPlainText(TO_QSTRING(pProperty->Description())); - if (mGame <= ePrime) + EPropertyType Type = pProperty->Type(); + + // Configure type name. Type name overrides are sourced from the name of the property archetype, + // so this field should only be editable for properties that have an archetype. + bool AllowTypeNameEdit = (pProperty->RootArchetype()->IsRootParent()); + + if (AllowTypeNameEdit) { - ui->TemplatesGroupBox->hide(); - ui->RenameAllCheckBox->setText("Rename all copies of this property"); + connect( mpUI->TypenameLineEdit, SIGNAL(textChanged(QString)), this, SLOT(RefreshTypeNameOverride()) ); + mOriginalTypeName = pProperty->RootArchetype()->Name(); + mpUI->TypenameLineEdit->setText( TO_QSTRING(mOriginalTypeName) ); + } + else + { + mpUI->TypenameLabel->setHidden(true); + mpUI->TypenameLineEdit->setHidden(true); + } + + // Configure type name override option + if (Type == EPropertyType::Enum || Type == EPropertyType::Choice) + { + CEnumProperty* pEnum = TPropCast(pProperty); + mOriginalAllowTypeNameOverride = pEnum->OverridesTypeName(); + mpUI->OverrideTypeNameCheckBox->setChecked( mOriginalAllowTypeNameOverride ); + connect( mpUI->OverrideTypeNameCheckBox, SIGNAL(toggled(bool)), this, SLOT(RefreshTypeNameOverride()) ); + } + else + { + mpUI->OverrideTypeNameCheckBox->setHidden(true); + mpUI->OverrideTypeNameCheckBox->setChecked(true); + } + RefreshTypeNameOverride(); + + // Configure convert button + if (Type == EPropertyType::Int || Type == EPropertyType::Choice || Type == EPropertyType::Flags || Type == EPropertyType::Sound) + { + QMenu* pConvertMenu = new QMenu(this); + if (Type != EPropertyType::Int) pConvertMenu->addAction("Int", this, SLOT(ConvertToInt())); + if (Type != EPropertyType::Choice) pConvertMenu->addAction("Choice", this, SLOT(ConvertToChoice())); + if (Type != EPropertyType::Flags) pConvertMenu->addAction("Flags", this, SLOT(ConvertToFlags())); + if (Type != EPropertyType::Sound) pConvertMenu->addAction("Sound", this, SLOT(ConvertToSound())); + mpUI->TypeConversionButton->setMenu(pConvertMenu); + } + else + { + mpUI->TypeConversionWidget->setHidden(true); + } + + // Hide templates list for MP1 + if (mGame <= EGame::Prime) + { + mpUI->TemplatesGroupBox->hide(); + mpUI->RenameAllCheckBox->setText("Rename all copies of this property"); + mpUI->ValidityLabel->hide(); resize(width(), minimumHeight()); } else { - CTemplateLoader::LoadAllGames(); - std::vector TemplateList = CMasterTemplate::XMLsUsingID(pTemplate->PropertyID()); + NGameList::LoadAllGameTemplates(); - for (u32 iTemp = 0; iTemp < TemplateList.size(); iTemp++) - ui->TemplatesListWidget->addItem(TO_QSTRING(TemplateList[iTemp])); + std::set Templates; + NPropertyMap::RetrieveXMLsWithProperty( pProperty->ID(), pProperty->HashableTypeName(), Templates ); + + for (auto Iter = Templates.begin(); Iter != Templates.end(); Iter++) + mpUI->TemplatesListWidget->addItem(TO_QSTRING(*Iter)); + + mpUI->ValidityLabel->SetValidityText("Hash match! Property name is likely correct.", "Hash mismatch! Property name is likely wrong."); + connect(mpUI->NameLineEdit, SIGNAL( SoftValidityChanged(bool) ), mpUI->ValidityLabel, SLOT( SetValid(bool) ) ); + + mpValidator->SetProperty(pProperty); + mpUI->NameLineEdit->SetSoftValidator(mpValidator); + mOriginalNameWasValid = mpUI->NameLineEdit->IsInputValid(); } - TString Source; - - if (mpTemplate->Type() == eStructProperty || mpTemplate->Type() == eArrayProperty) - Source = static_cast(mpTemplate)->SourceFile(); - else if (mpTemplate->Type() == eEnumProperty) - Source = static_cast(mpTemplate)->SourceFile(); - else if (mpTemplate->Type() == eBitfieldProperty) - Source = static_cast(mpTemplate)->SourceFile(); + TString Source = mpProperty->GetTemplateFileName(); if (Source.IsEmpty()) - { - CStructTemplate *pParent = mpTemplate->Parent(); - while (pParent) - { - Source = pParent->SourceFile(); - if (!Source.IsEmpty()) break; - pParent = pParent->Parent(); - } - } + Source = "None"; - if (Source.IsEmpty()) - { - if (mpTemplate->ScriptTemplate()) - Source = mpTemplate->ScriptTemplate()->SourceFile(); - if (Source.IsEmpty()) - Source = "None"; - } + mpUI->SourceFileDisplayLabel->setText(TO_QSTRING(Source)); - ui->SourceFileDisplayLabel->setText(TO_QSTRING(Source)); - - connect(ui->ButtonBox, SIGNAL(accepted()), this, SLOT(ApplyChanges())); - connect(ui->ButtonBox, SIGNAL(rejected()), this, SLOT(close())); + connect(mpUI->ButtonBox, SIGNAL(accepted()), this, SLOT(ApplyChanges())); + connect(mpUI->ButtonBox, SIGNAL(rejected()), this, SLOT(close())); } CTemplateEditDialog::~CTemplateEditDialog() { - delete ui; + delete mpUI; } // ************ PUBLIC SLOTS ************ void CTemplateEditDialog::ApplyChanges() { - FindEquivalentProperties(mpTemplate); + // Make sure the user *really* wants to change the property if the hash used to be correct and now isn't... + if (mOriginalNameWasValid && !mpUI->NameLineEdit->IsInputValid()) + { + bool ReallyApply = UICommon::YesNoQuestion(this, "Name mismatch", + "The new property name does not match the property ID. It is very likely that the original name was correct and the new one isn't. Are you sure you want to change it?"); - bool NeedsListResave = false; - bool RenameAll = ui->RenameAllCheckBox->isChecked(); + if (!ReallyApply) + return; + } - TString NewName = TO_TSTRING(ui->NameLineEdit->text()); + FindEquivalentProperties(mpProperty); + + bool RenameAll = mpUI->RenameAllCheckBox->isChecked(); + + // Update name + TString NewName = TO_TSTRING(mpUI->NameLineEdit->text()); if (NewName.IsEmpty()) NewName = "Unknown"; if (mOriginalName != NewName) { // Rename properties - if (RenameAll && (mGame >= eEchoesDemo || mpTemplate->IsFromStructTemplate())) + if (RenameAll && (mGame >= EGame::EchoesDemo || mpProperty->Archetype() != nullptr)) { - CMasterTemplate::RenameProperty(mpTemplate, NewName); - - // Add modified templates to pending resave list - const std::vector *pList = CMasterTemplate::TemplatesWithMatchingID(mpTemplate); - - if (pList) - { - for (u32 iTemp = 0; iTemp < pList->size(); iTemp++) - AddTemplate( pList->at(iTemp) ); - } + NPropertyMap::SetPropertyName(mpProperty->ID(), mpProperty->HashableTypeName(), *NewName); } - - mpTemplate->SetName(NewName); // If mpTemplate has an overridden name then CMasterTemplate::RenameProperty won't touch it - - if (RenameAll && mGame >= eEchoesDemo) - NeedsListResave = true; } - TString NewDescription = TO_TSTRING(ui->DescriptionTextEdit->toPlainText()); + // Update description + TString NewDescription = TO_TSTRING(mpUI->DescriptionTextEdit->toPlainText()); UpdateDescription(NewDescription); + // Update type name + TString NewTypeName = TO_TSTRING(mpUI->TypenameLineEdit->text()); + bool AllowTypeNameOverride = mpUI->OverrideTypeNameCheckBox->isChecked(); + UpdateTypeName(NewTypeName, AllowTypeNameOverride); + // Resave templates - foreach (CScriptTemplate *pScript, mScriptTemplatesToResave) - CTemplateWriter::SaveScriptTemplate(pScript); - - foreach (CStructTemplate *pStruct, mStructTemplatesToResave) - CTemplateWriter::SaveStructTemplate(pStruct); - - if (NeedsListResave) - CTemplateWriter::SavePropertyList(); - + NGameList::SaveTemplates(); + NPropertyMap::SaveMap(); close(); } -// ************ PROTECTED ************ -void CTemplateEditDialog::AddTemplate(IPropertyTemplate *pTemp) +void CTemplateEditDialog::RefreshTypeNameOverride() { - if (pTemp->IsFromStructTemplate()) + if (mpUI->OverrideTypeNameCheckBox->isChecked()) { - TString Source = pTemp->FindStructSource(); - - if (!Source.IsEmpty()) - { - CStructTemplate *pStruct = pTemp->MasterTemplate()->StructAtSource(Source); - - if (!mStructTemplatesToResave.contains(pStruct)) - mStructTemplatesToResave << pStruct; - } + QString OverrideName = mpUI->TypenameLineEdit->text(); + mpValidator->SetTypeNameOverride(OverrideName); } - else { - CScriptTemplate *pScript = pTemp->ScriptTemplate(); + mpValidator->SetTypeNameOverride(""); + } +} - if (pScript) +void CTemplateEditDialog::ConvertPropertyType(EPropertyType Type) +{ + const char* pkCurType = TEnumReflection::ConvertValueToString(mpProperty->Type()); + const char* pkNewType = TEnumReflection::ConvertValueToString(Type); + + if ( + UICommon::YesNoQuestion(this, "Warning", + QString("You are converting %1 %2 property to %3. This cannot be undone. Are you sure?") + .arg( TString::IsVowel(pkCurType[0]) ? "an" : "a" ) + .arg( pkCurType ) + .arg( pkNewType ) ) + ) + { + if( mpProperty->ConvertType(Type) ) { - if (!mScriptTemplatesToResave.contains(pScript)) - mScriptTemplatesToResave << pScript; + mpProperty = nullptr; + emit PerformedTypeConversion(); + close(); } - else { - Log::Error("Can't determine where property " + pTemp->IDString(true) + " comes from"); + UICommon::ErrorMsg(this, "Type conversion failed; conversion between these types is not supported."); } } } +void CTemplateEditDialog::ConvertToInt() +{ + ConvertPropertyType( EPropertyType::Int ); +} + +void CTemplateEditDialog::ConvertToChoice() +{ + ConvertPropertyType( EPropertyType::Choice ); +} + +void CTemplateEditDialog::ConvertToSound() +{ + ConvertPropertyType( EPropertyType::Sound ); +} + +void CTemplateEditDialog::ConvertToFlags() +{ + ConvertPropertyType( EPropertyType::Flags ); +} + +// ************ PROTECTED ************ void CTemplateEditDialog::UpdateDescription(const TString& rkNewDesc) { - mpTemplate->SetDescription(rkNewDesc); - AddTemplate(mpTemplate); + mpProperty->SetDescription(rkNewDesc); // Update all copies of this property in memory with the new description - TString SourceFile = mpTemplate->FindStructSource(); + TString SourceFile = mpProperty->GetTemplateFileName(); if (!SourceFile.IsEmpty()) { - const std::vector *pkTemplates = CMasterTemplate::TemplatesWithMatchingID(mpTemplate); + std::list Templates; + NPropertyMap::RetrievePropertiesWithID(mpProperty->ID(), mpProperty->HashableTypeName(), Templates); - if (pkTemplates) + for (auto Iter = Templates.begin(); Iter != Templates.end(); Iter++) { - for (u32 iTemp = 0; iTemp < pkTemplates->size(); iTemp++) - { - IPropertyTemplate *pTemp = pkTemplates->at(iTemp); + IProperty* pProperty = *Iter; - if (pTemp->FindStructSource() == SourceFile && pTemp->Description() == mOriginalDescription) - pTemp->SetDescription(rkNewDesc); - } + if (pProperty->GetTemplateFileName() == SourceFile && pProperty->Description() == mOriginalDescription) + pProperty->SetDescription(rkNewDesc); } } // Update equivalent properties with new description - foreach (IPropertyTemplate *pTemp, mEquivalentProperties) + foreach (IProperty* pProperty, mEquivalentProperties) { - pTemp->SetDescription(rkNewDesc); - AddTemplate(pTemp); + pProperty->SetDescription(rkNewDesc); } } -void CTemplateEditDialog::FindEquivalentProperties(IPropertyTemplate *pTemp) +void CTemplateEditDialog::UpdateTypeName(const TString& kNewTypeName, bool AllowOverride) { - if (mGame <= ePrime) return; - - // Find the equivalent version of this property in other games. - CScriptTemplate *pScript = pTemp->ScriptTemplate(); - TString Source = pTemp->FindStructSource(); - - // Determine struct-relative ID string - TIDString IDString; - - if (Source.IsEmpty()) - IDString = pTemp->IDString(true); - - else + if (mOriginalTypeName != kNewTypeName || mOriginalAllowTypeNameOverride != AllowOverride) { - IDString = pTemp->IDString(false); - CStructTemplate *pParent = pTemp->Parent(); - - while (pParent) + if (FileUtil::IsValidName(kNewTypeName, false)) { - if (!pParent->SourceFile().IsEmpty()) break; - IDString.Prepend(pParent->IDString(false) + ":"); - pParent = pParent->Parent(); - } - } + bool WasUnknown = mOriginalTypeName.Contains("Unknown") || mOriginalTypeName.Contains("Struct"); - QList MasterList = QList::fromStdList(CMasterTemplate::MasterList()); - - if (Source.IsEmpty()) - { - u32 ObjectID = pScript->ObjectID(); - - foreach (CMasterTemplate *pMaster, MasterList) - { - if (pMaster == pTemp->MasterTemplate() || pMaster->Game() <= ePrime) continue; - CScriptTemplate *pNewScript = pMaster->TemplateByID(ObjectID); - - if (pNewScript) + // Get a list of properties to update. + for (int GameIdx = 0; GameIdx < (int) EGame::Max; GameIdx++) { - IPropertyTemplate *pNewTemp = pNewScript->BaseStruct()->PropertyByIDString(IDString); + if (WasUnknown && (EGame) GameIdx != mpProperty->Game()) + continue; - if (pNewTemp) - mEquivalentProperties << pNewTemp; + CGameTemplate* pGame = NGameList::GetGameTemplate( (EGame) GameIdx ); + + if (pGame) + { + IProperty* pArchetype = pGame->FindPropertyArchetype(mOriginalTypeName); + + if (pArchetype) + { + pGame->RenamePropertyArchetype(mOriginalTypeName, kNewTypeName); + + if (pArchetype->Type() == EPropertyType::Enum || pArchetype->Type() == EPropertyType::Choice) + { + CEnumProperty* pEnum = TPropCast(pArchetype); + pEnum->SetOverrideTypeName(AllowOverride); + } + } + } } } - } - - else - { - foreach (CMasterTemplate *pMaster, MasterList) + else if (mOriginalTypeName != kNewTypeName) { - if (pMaster == pTemp->MasterTemplate() || pMaster->Game() <= ePrime) continue; - CStructTemplate *pStruct = pMaster->StructAtSource(Source); + UICommon::ErrorMsg(this, QString("Type rename failed because the name you entered \"%1\" is invalid.").arg(TO_QSTRING(kNewTypeName))); + } + } +} - if (pStruct) +void CTemplateEditDialog::FindEquivalentProperties(IProperty* pProperty) +{ + // This function creates a list of properties in other games that are equivalent to this one. + // In this case "equivalent" means same template file and same ID string. + // Since MP1 doesn't have property IDs, we don't apply this to MP1. + if (mGame <= EGame::Prime) return; + + // Find the lowest-level archetype and retrieve the ID string relative to that archetype's XML file. + while (pProperty->Archetype()) + { + pProperty = pProperty->Archetype(); + } + TString Name = pProperty->Name(); + TIDString IDString = pProperty->IDString(true); + CScriptTemplate* pScript = pProperty->ScriptTemplate(); + + // Now iterate over all games, check for an equivalent property in an equivalent XML file. + for (int GameIdx = 0; GameIdx < (int) EGame::Max; GameIdx++) + { + EGame Game = (EGame) GameIdx; + if (Game <= EGame::Prime || Game == mGame) continue; + + CGameTemplate* pGame = NGameList::GetGameTemplate(Game); + + // Check for equivalent properties in a script template + CStructProperty* pStruct = nullptr; + + if (pScript) + { + u32 ObjectID = pScript->ObjectID(); + CScriptTemplate* pEquivalentScript = pGame->TemplateByID(ObjectID); + + if (pEquivalentScript) { - IPropertyTemplate *pNewTemp = pStruct->PropertyByIDString(IDString); + pStruct = pEquivalentScript->Properties(); + } + } + // Check for equivalent properties in a property template + else + { + pStruct = TPropCast( pGame->FindPropertyArchetype(Name) ); + } - if (pNewTemp) - mEquivalentProperties << pNewTemp; + // If we have a struct, check if thestruct contains an equivalent property. + if (pStruct) + { + IProperty* pEquivalentProperty = pStruct->ChildByIDString( IDString ); + + if (pEquivalentProperty) + { + mEquivalentProperties << pEquivalentProperty; } } } diff --git a/src/Editor/WorldEditor/CTemplateEditDialog.h b/src/Editor/WorldEditor/CTemplateEditDialog.h index 8fbe1607..944f0e06 100644 --- a/src/Editor/WorldEditor/CTemplateEditDialog.h +++ b/src/Editor/WorldEditor/CTemplateEditDialog.h @@ -1,8 +1,9 @@ #ifndef CTEMPLATEEDITDIALOG_H #define CTEMPLATEEDITDIALOG_H -#include -#include +#include "Editor/CPropertyNameValidator.h" +#include +#include #include namespace Ui { @@ -12,30 +13,43 @@ class CTemplateEditDialog; class CTemplateEditDialog : public QDialog { Q_OBJECT - Ui::CTemplateEditDialog *ui; + Ui::CTemplateEditDialog* mpUI; + CPropertyNameValidator* mpValidator; - IPropertyTemplate *mpTemplate; + IProperty *mpProperty; EGame mGame; TString mOriginalName; TString mOriginalDescription; + TString mOriginalTypeName; + bool mOriginalAllowTypeNameOverride; + bool mOriginalNameWasValid; // These members help track what templates need to be updated and resaved after the user clicks OK - QVector mScriptTemplatesToResave; - QVector mStructTemplatesToResave; - QVector mEquivalentProperties; + QVector mEquivalentProperties; public: - CTemplateEditDialog(IPropertyTemplate *pTemplate, QWidget *pParent = 0); + CTemplateEditDialog(IProperty* pProperty, QWidget *pParent = 0); ~CTemplateEditDialog(); +signals: + void PerformedTypeConversion(); + public slots: void ApplyChanges(); + void RefreshTypeNameOverride(); + +protected slots: + void ConvertPropertyType(EPropertyType Type); + void ConvertToInt(); + void ConvertToChoice(); + void ConvertToSound(); + void ConvertToFlags(); protected: - void AddTemplate(IPropertyTemplate *pTemp); void UpdateDescription(const TString& rkNewDesc); - void FindEquivalentProperties(IPropertyTemplate *pTemp); + void UpdateTypeName(const TString& kNewTypeName, bool AllowOverride); + void FindEquivalentProperties(IProperty *pProperty); }; #endif // CTEMPLATEEDITDIALOG_H diff --git a/src/Editor/WorldEditor/CTemplateEditDialog.ui b/src/Editor/WorldEditor/CTemplateEditDialog.ui index cd480b6a..737d0046 100644 --- a/src/Editor/WorldEditor/CTemplateEditDialog.ui +++ b/src/Editor/WorldEditor/CTemplateEditDialog.ui @@ -13,9 +13,9 @@ Edit Template - + - + @@ -62,48 +62,6 @@ - - - - Name: - - - - - - - - - - Description: - - - - - - - - 0 - 0 - - - - - 0 - 60 - - - - - 16777215 - 60 - - - - - - - @@ -124,8 +82,132 @@ + + + + Name: + + + + + + + 0 + + + + + + + + + 7 + 50 + false + + + + Valid + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + + + Description: + + + + + + + + 0 + 0 + + + + + 0 + 60 + + + + + 16777215 + 60 + + + + true + + + + + + + + + + Type Name: + + + + + + + + + + Use type name for ID hashes + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Horizontal + + + + 221 + 20 + + + + + + + + Convert to... + + + + + + @@ -205,6 +287,18 @@ + + + CSoftValidatorLineEdit + QLineEdit +
Editor/Widgets/CSoftValidatorLineEdit.h
+
+ + CValidityLabel + QLabel +
Editor/Widgets/CValidityLabel.h
+
+
diff --git a/src/Editor/WorldEditor/CTemplateListView.h b/src/Editor/WorldEditor/CTemplateListView.h index c6461ea8..fce239f3 100644 --- a/src/Editor/WorldEditor/CTemplateListView.h +++ b/src/Editor/WorldEditor/CTemplateListView.h @@ -3,7 +3,7 @@ #include "CTemplateMimeData.h" #include "Editor/UICommon.h" -#include +#include #include #include #include @@ -11,7 +11,7 @@ class CTemplateListModel : public QAbstractListModel { Q_OBJECT - CMasterTemplate *mpMaster; + CGameTemplate *mpGame; QList mTemplates; public: @@ -55,17 +55,17 @@ public: return Qt::ItemIsSelectable | Qt::ItemIsDragEnabled | Qt::ItemIsEnabled; } - void SetMaster(CMasterTemplate *pMaster) + void SetGame(CGameTemplate *pGame) { beginResetModel(); - mpMaster = pMaster; + mpGame = pGame; mTemplates.clear(); - if (mpMaster) + if (mpGame) { - for (u32 iTemp = 0; iTemp < mpMaster->NumScriptTemplates(); iTemp++) - mTemplates << mpMaster->TemplateByIndex(iTemp); + for (u32 iTemp = 0; iTemp < mpGame->NumScriptTemplates(); iTemp++) + mTemplates << mpGame->TemplateByIndex(iTemp); qSort(mTemplates.begin(), mTemplates.end(), [](CScriptTemplate *pLeft, CScriptTemplate *pRight) -> bool { return pLeft->Name() < pRight->Name(); @@ -103,9 +103,9 @@ public: QListView::setModel(mpModel); } - inline void SetMaster(CMasterTemplate *pMaster) + inline void SetGame(CGameTemplate *pGame) { - if (mpModel) mpModel->SetMaster(pMaster); + if (mpModel) mpModel->SetGame(pGame); } protected: diff --git a/src/Editor/WorldEditor/CWorldEditor.cpp b/src/Editor/WorldEditor/CWorldEditor.cpp index 20f8817c..7be2dd6a 100644 --- a/src/Editor/WorldEditor/CWorldEditor.cpp +++ b/src/Editor/WorldEditor/CWorldEditor.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #include #include @@ -37,6 +38,7 @@ CWorldEditor::CWorldEditor(QWidget *parent) , mpArea(nullptr) , mpWorld(nullptr) , mpLinkDialog(new CLinkDialog(this, this)) + , mpGeneratePropertyNamesDialog(new CGeneratePropertyNamesDialog(this)) , mIsMakingLink(false) , mpNewLinkSender(nullptr) , mpNewLinkReceiver(nullptr) @@ -175,6 +177,7 @@ CWorldEditor::CWorldEditor(QWidget *parent) connect(ui->ActionUnlink, SIGNAL(triggered()), this, SLOT(OnUnlinkClicked())); connect(ui->ActionEditLayers, SIGNAL(triggered()), this, SLOT(EditLayers())); + connect(ui->ActionGeneratePropertyNames, SIGNAL(triggered()), this, SLOT(GeneratePropertyNames())); connect(ui->ActionDrawWorld, SIGNAL(triggered()), this, SLOT(ToggleDrawWorld())); connect(ui->ActionDrawObjects, SIGNAL(triggered()), this, SLOT(ToggleDrawObjects())); @@ -283,12 +286,12 @@ bool CWorldEditor::SetArea(CWorld *pWorld, int AreaIndex) // Update UI stuff UpdateWindowTitle(); - CMasterTemplate *pMaster = CMasterTemplate::MasterForGame(mpArea->Game()); - mpLinkDialog->SetMaster(pMaster); + CGameTemplate *pGame = NGameList::GetGameTemplate(mpArea->Game()); + mpLinkDialog->SetGame(pGame); QString AreaName = TO_QSTRING(mpWorld->AreaInGameName(AreaIndex)); - if (CurrentGame() < eReturns) + if (CurrentGame() < EGame::DKCReturns) Log::Write("Loaded area: " + mpArea->Entry()->Name() + " (" + TO_TSTRING(AreaName) + ")"); else Log::Write("Loaded level: World " + mpWorld->Entry()->Name() + " / Area " + mpArea->Entry()->Name() + " (" + TO_TSTRING(AreaName) + ")"); @@ -548,12 +551,12 @@ void CWorldEditor::OnActiveProjectChanged(CGameProject *pProj) { ui->ActionProjectSettings->setEnabled( pProj != nullptr ); ui->ActionCloseProject->setEnabled( pProj != nullptr ); - mpPoiMapAction->setVisible( pProj != nullptr && pProj->Game() >= eEchoesDemo && pProj->Game() <= eCorruption ); + mpPoiMapAction->setVisible( pProj != nullptr && pProj->Game() >= EGame::EchoesDemo && pProj->Game() <= EGame::Corruption ); ResetCamera(); UpdateWindowTitle(); // Default bloom to Fake Bloom for Metroid Prime 3; disable for other games - bool AllowBloom = (CurrentGame() == eCorruptionProto || CurrentGame() == eCorruption); + bool AllowBloom = (CurrentGame() == EGame::CorruptionProto || CurrentGame() == EGame::Corruption); AllowBloom ? SetFakeBloom() : SetNoBloom(); ui->menuBloom->setEnabled(AllowBloom); @@ -576,41 +579,42 @@ void CWorldEditor::OnLinksModified(const QList& rkInstances) emit InstanceLinksModified(rkInstances); } -void CWorldEditor::OnPropertyModified(IProperty *pProp) +void CWorldEditor::OnPropertyModified(CScriptObject* pObject, IProperty *pProp) { - bool EditorProperty = false; + CScriptNode *pScript = mScene.NodeForInstance(pObject); - if (!mpSelection->IsEmpty() && mpSelection->Front()->NodeType() == eScriptNode) + if (pScript) { - CScriptNode *pScript = static_cast(mpSelection->Front()); pScript->PropertyModified(pProp); - // Check editor property - if (pScript->Instance()->IsEditorProperty(pProp)) - EditorProperty = true; - - // If this is an editor property, update other parts of the UI to reflect the new value. - if (EditorProperty) + // If this is the name, update other parts of the UI to reflect the new value. + if ( pProp->Name() == "Name" ) { UpdateStatusBar(); UpdateSelectionUI(); } - - // If this is a model/character, then we'll treat this as a modified selection. This is to make sure the selection bounds updates. - if (pProp->Type() == eAssetProperty) + else if (pProp->Name() == "Position" || + pProp->Name() == "Rotation" || + pProp->Name() == "Scale") { - CAssetTemplate *pAsset = static_cast(pProp->Template()); - const CResTypeFilter& rkFilter = pAsset->TypeFilter(); - - if (rkFilter.Accepts(eModel) || rkFilter.Accepts(eAnimSet) || rkFilter.Accepts(eCharacter)) - SelectionModified(); + mpSelection->UpdateBounds(); } - else if (pProp->Type() == eCharacterProperty) - SelectionModified(); - - // Emit signal so other widgets can react to the property change - emit PropertyModified(pScript->Instance(), pProp); } + + // If this is a model/character, then we'll treat this as a modified selection. This is to make sure the selection bounds updates. + if (pProp->Type() == EPropertyType::Asset) + { + CAssetProperty *pAsset = TPropCast(pProp); + const CResTypeFilter& rkFilter = pAsset->GetTypeFilter(); + + if (rkFilter.Accepts(eModel) || rkFilter.Accepts(eAnimSet) || rkFilter.Accepts(eCharacter)) + SelectionModified(); + } + else if (pProp->Type() == EPropertyType::AnimationSet) + SelectionModified(); + + // Emit signal so other widgets can react to the property change + emit PropertyModified(pObject, pProp); } void CWorldEditor::SetSelectionActive(bool Active) @@ -622,12 +626,9 @@ void CWorldEditor::SetSelectionActive(bool Active) { if (It->NodeType() == eScriptNode) { - CScriptNode *pScript = static_cast(*It); - CScriptObject *pInst = pScript->Instance(); - IProperty *pActive = pInst->ActiveProperty(); - - if (pActive) - Objects << pInst; + CScriptNode* pScript = static_cast(*It); + CScriptObject* pInst = pScript->Instance(); + Objects << pInst; } } @@ -635,12 +636,39 @@ void CWorldEditor::SetSelectionActive(bool Active) { mUndoStack.beginMacro("Toggle Active"); - foreach (CScriptObject *pInst, Objects) + while (!Objects.isEmpty()) { - IProperty *pActive = pInst->ActiveProperty(); - IPropertyValue *pOld = pActive->RawValue()->Clone(); - pInst->SetActive(Active); - mUndoStack.push(new CEditScriptPropertyCommand(pActive, this, pOld, true)); + QVector CommandObjects; + CScriptTemplate* pTemplate = Objects[0]->Template(); + CBoolProperty* pActiveProperty = pTemplate->ActiveProperty(); + + for (int ObjIdx = 0; ObjIdx < Objects.size(); ObjIdx++) + { + if (Objects[ObjIdx]->Template() == pTemplate) + { + CommandObjects << Objects[ObjIdx]; + Objects.removeAt(ObjIdx); + ObjIdx--; + } + } + + if (pActiveProperty) + { + CEditScriptPropertyCommand* pCommand = new CEditScriptPropertyCommand( + pActiveProperty, + this, + CommandObjects + ); + + pCommand->SaveOldData(); + + foreach (CScriptObject* pInstance, CommandObjects) + pInstance->SetActive(Active); + + pCommand->SaveNewData(); + + mUndoStack.push(pCommand); + } } mUndoStack.endMacro(); @@ -651,11 +679,10 @@ void CWorldEditor::SetSelectionInstanceNames(const QString& rkNewName, bool IsDo { // todo: this only supports one node at a time because a macro prevents us from merging undo commands // this is fine right now because this function is only ever called with a selection of one node, but probably want to fix in the future - if (mpSelection->Size() == 1 && mpSelection->Front()->NodeType() == eScriptNode) + /*if (mpSelection->Size() == 1 && mpSelection->Front()->NodeType() == eScriptNode) { CScriptNode *pNode = static_cast(mpSelection->Front()); CScriptObject *pInst = pNode->Instance(); - IProperty *pName = pInst->InstanceNameProperty(); if (pName) { @@ -664,7 +691,7 @@ void CWorldEditor::SetSelectionInstanceNames(const QString& rkNewName, bool IsDo pInst->SetName(NewName); mUndoStack.push(new CEditScriptPropertyCommand(pName, this, pOld, IsDone, "Edit Instance Name")); } - } + }*/ } void CWorldEditor::SetSelectionLayer(CScriptLayer *pLayer) @@ -744,7 +771,7 @@ void CWorldEditor::UpdateWindowTitle() { WindowTitle += " - " + TO_QSTRING(mpWorld->InGameName()); - if (mpArea && CurrentGame() < eReturns) + if (mpArea && CurrentGame() < EGame::DKCReturns) WindowTitle += " - " + TO_QSTRING( mpWorld->AreaInGameName(mpArea->WorldIndex()) ); } } @@ -1350,3 +1377,9 @@ void CWorldEditor::EditLayers() Editor.SetArea(mpArea); Editor.exec(); } + +void CWorldEditor::GeneratePropertyNames() +{ + // Launch property name generation dialog + mpGeneratePropertyNamesDialog->show(); +} diff --git a/src/Editor/WorldEditor/CWorldEditor.h b/src/Editor/WorldEditor/CWorldEditor.h index c5297972..0d95c07d 100644 --- a/src/Editor/WorldEditor/CWorldEditor.h +++ b/src/Editor/WorldEditor/CWorldEditor.h @@ -8,6 +8,7 @@ #include "CScriptEditSidebar.h" #include "CWorldInfoSidebar.h" #include "Editor/INodeEditor.h" +#include "Editor/CGeneratePropertyNamesDialog.h" #include "Editor/CGizmo.h" #include "Editor/CSceneViewport.h" @@ -55,6 +56,7 @@ class CWorldEditor : public INodeEditor CCollisionRenderSettingsDialog *mpCollisionDialog; CLinkDialog *mpLinkDialog; + CGeneratePropertyNamesDialog* mpGeneratePropertyNamesDialog; bool mIsMakingLink; CScriptObject *mpNewLinkSender; @@ -89,6 +91,7 @@ public: inline CGameArea* ActiveArea() const { return mpArea; } inline EGame CurrentGame() const { return gpEdApp->CurrentGame(); } inline CLinkDialog* LinkDialog() const { return mpLinkDialog; } + inline CGeneratePropertyNamesDialog* NameGeneratorDialog() const { return mpGeneratePropertyNamesDialog; } CResourceBrowser* ResourceBrowser() const; CSceneViewport* Viewport() const; @@ -122,7 +125,7 @@ public slots: void OnActiveProjectChanged(CGameProject *pProj); void OnLinksModified(const QList& rkInstances); - void OnPropertyModified(IProperty *pProp); + void OnPropertyModified(CScriptObject* pObject, IProperty *pProp); void SetSelectionActive(bool Active); void SetSelectionInstanceNames(const QString& rkNewName, bool IsDone); void SetSelectionLayer(CScriptLayer *pLayer); @@ -179,6 +182,7 @@ private slots: void DecrementGizmo(); void EditCollisionRenderSettings(); void EditLayers(); + void GeneratePropertyNames(); signals: void MapChanged(CWorld *pNewWorld, CGameArea *pNewArea); diff --git a/src/Editor/WorldEditor/CWorldEditor.ui b/src/Editor/WorldEditor/CWorldEditor.ui index eb14aacd..0b5474c3 100644 --- a/src/Editor/WorldEditor/CWorldEditor.ui +++ b/src/Editor/WorldEditor/CWorldEditor.ui @@ -339,6 +339,7 @@ Tools + @@ -348,8 +349,8 @@ - + @@ -774,6 +775,11 @@ Project Settings + + + Generate Property Names + + About diff --git a/src/Editor/WorldEditor/CWorldInfoSidebar.cpp b/src/Editor/WorldEditor/CWorldInfoSidebar.cpp index 9aeda2ef..805886ed 100644 --- a/src/Editor/WorldEditor/CWorldInfoSidebar.cpp +++ b/src/Editor/WorldEditor/CWorldInfoSidebar.cpp @@ -64,7 +64,7 @@ void CWorldInfoSidebar::OnActiveProjectChanged(CGameProject *pProj) // Add/remove widgets from the form layout based on the game. This is needed because // simply hiding the widgets causes a minor spacing issue. The only fix seems to be // actually entirely removing the widgets from the layout when not in use. - bool IsEchoes = pProj && (pProj->Game() == eEchoesDemo || pProj->Game() == eEchoes); + bool IsEchoes = pProj && (pProj->Game() == EGame::EchoesDemo || pProj->Game() == EGame::Echoes); mpUI->DarkWorldNameStringLabel->setHidden(!IsEchoes); mpUI->DarkWorldNameSelector->setHidden(!IsEchoes); @@ -120,7 +120,7 @@ void CWorldInfoSidebar::OnWorldTreeClicked(QModelIndex Index) if (IsArea) { - int AreaIndex = Editor()->CurrentGame() == eReturns ? 0 : mModel.AreaIndexForIndex(RealIndex); + int AreaIndex = Editor()->CurrentGame() == EGame::DKCReturns ? 0 : mModel.AreaIndexForIndex(RealIndex); mpUI->AreaNameLabel->setText( TO_QSTRING(pWorld->AreaInGameName(AreaIndex)) ); mpUI->AreaSelector->SetResource( pWorld->AreaResourceID(AreaIndex) ); mpUI->AreaNameLineEdit->setText( TO_QSTRING(pWorld->AreaInternalName(AreaIndex)) ); diff --git a/src/Editor/WorldEditor/CWorldTreeModel.cpp b/src/Editor/WorldEditor/CWorldTreeModel.cpp index 62847eae..a042f051 100644 --- a/src/Editor/WorldEditor/CWorldTreeModel.cpp +++ b/src/Editor/WorldEditor/CWorldTreeModel.cpp @@ -59,7 +59,7 @@ QVariant CWorldTreeModel::data(const QModelIndex& rkIndex, int Role) const // are often missing, confusing, or just straight-up inaccurate, which makes the internal name a better // means of telling worlds apart. // For DKCR worlds, we only display the world name in the first column. - u32 InternalNameCol = (gpEdApp->ActiveProject()->Game() >= eCorruption ? 0 : 1); + u32 InternalNameCol = (gpEdApp->ActiveProject()->Game() >= EGame::Corruption ? 0 : 1); // Internal name if (rkIndex.column() == InternalNameCol) @@ -83,7 +83,7 @@ QVariant CWorldTreeModel::data(const QModelIndex& rkIndex, int Role) const ASSERT(pWorld); TString AreaInternalName = pWorld->AreaInternalName(AreaIndex); - TString AreaInGameName = (gpEdApp->ActiveProject()->Game() == eReturns ? pWorld->InGameName() : pWorld->AreaInGameName( AreaIndexForIndex(rkIndex) )); + TString AreaInGameName = (gpEdApp->ActiveProject()->Game() == EGame::DKCReturns ? pWorld->InGameName() : pWorld->AreaInGameName( AreaIndexForIndex(rkIndex) )); // Return name if (rkIndex.column() == 1) @@ -122,8 +122,8 @@ QVariant CWorldTreeModel::data(const QModelIndex& rkIndex, int Role) const { EGame Game = gpEdApp->ActiveProject()->Game(); - bool IsActiveWorld = (Game <= eCorruption && rkInfo.pWorld == pActiveWorld) || - (Game == eReturns && rkInfo.Areas.contains(pActiveWorld->Entry())); + bool IsActiveWorld = (Game <= EGame::Corruption && rkInfo.pWorld == pActiveWorld) || + (Game == EGame::DKCReturns && rkInfo.Areas.contains(pActiveWorld->Entry())); if (IsActiveWorld) Font.setBold(true); @@ -169,7 +169,7 @@ bool CWorldTreeModel::IndexIsWorld(const QModelIndex& rkIndex) const int CWorldTreeModel::AreaIndexForIndex(const QModelIndex& rkIndex) const { - if (gpEdApp->ActiveProject()->Game() == eReturns) + if (gpEdApp->ActiveProject()->Game() == EGame::DKCReturns) return 0; else @@ -184,7 +184,7 @@ CWorld* CWorldTreeModel::WorldForIndex(const QModelIndex& rkIndex) const ASSERT(rkIndex.isValid()); const SWorldInfo& rkInfo = WorldInfoForIndex(rkIndex); - if (gpEdApp->ActiveProject()->Game() == eReturns && !IndexIsWorld(rkIndex)) + if (gpEdApp->ActiveProject()->Game() == EGame::DKCReturns && !IndexIsWorld(rkIndex)) { int AreaIndex = (int) rkIndex.internalId() & 0xFFFF; CResourceEntry *pEntry = rkInfo.Areas[AreaIndex]; @@ -219,7 +219,7 @@ void CWorldTreeModel::OnProjectChanged(CGameProject *pProj) if (pProj) { - if (pProj->Game() != eReturns) + if (pProj->Game() != EGame::DKCReturns) { // Metroid Prime series; fetch all world assets std::list WorldIDs; @@ -255,7 +255,7 @@ void CWorldTreeModel::OnProjectChanged(CGameProject *pProj) } // Sort in alphabetical order for MP3 - if (pProj->Game() >= eCorruption) + if (pProj->Game() >= EGame::Corruption) { qSort(mWorldList.begin(), mWorldList.end(), [](const SWorldInfo& rkA, const SWorldInfo& rkB) -> bool { return (rkA.WorldName.toUpper() < rkB.WorldName.toUpper()); diff --git a/src/Editor/WorldEditor/WCreateTab.cpp b/src/Editor/WorldEditor/WCreateTab.cpp index 97d962de..411ba85d 100644 --- a/src/Editor/WorldEditor/WCreateTab.cpp +++ b/src/Editor/WorldEditor/WCreateTab.cpp @@ -3,6 +3,7 @@ #include "CTemplateMimeData.h" #include "CWorldEditor.h" #include "Editor/Undo/UndoCommands.h" +#include WCreateTab::WCreateTab(CWorldEditor *pEditor, QWidget *pParent /*= 0*/) : QWidget(pParent) @@ -60,9 +61,9 @@ bool WCreateTab::eventFilter(QObject *pObj, QEvent *pEvent) // ************ PUBLIC SLOTS ************ void WCreateTab::OnActiveProjectChanged(CGameProject *pProj) { - EGame Game = (pProj ? pProj->Game() : eUnknownGame); - CMasterTemplate *pMaster = CMasterTemplate::MasterForGame(Game); - ui->TemplateView->SetMaster(pMaster); + EGame Game = (pProj ? pProj->Game() : EGame::Invalid); + CGameTemplate *pGame = NGameList::GetGameTemplate(Game); + ui->TemplateView->SetGame(pGame); } void WCreateTab::OnLayersChanged() diff --git a/src/Editor/WorldEditor/WCreateTab.h b/src/Editor/WorldEditor/WCreateTab.h index 4e0b05a7..2c9cb4b8 100644 --- a/src/Editor/WorldEditor/WCreateTab.h +++ b/src/Editor/WorldEditor/WCreateTab.h @@ -2,7 +2,7 @@ #define WCREATETAB_H #include "CWorldEditor.h" -#include +#include #include namespace Ui { diff --git a/src/Editor/WorldEditor/WCreateTab.ui b/src/Editor/WorldEditor/WCreateTab.ui index 20b7698e..8d9b906c 100644 --- a/src/Editor/WorldEditor/WCreateTab.ui +++ b/src/Editor/WorldEditor/WCreateTab.ui @@ -61,6 +61,9 @@ Qt::MoveAction + + true + QAbstractItemView::SelectItems diff --git a/src/Editor/WorldEditor/WEditorProperties.cpp b/src/Editor/WorldEditor/WEditorProperties.cpp index c13a4b93..e032c193 100644 --- a/src/Editor/WorldEditor/WEditorProperties.cpp +++ b/src/Editor/WorldEditor/WEditorProperties.cpp @@ -174,11 +174,11 @@ void WEditorProperties::UpdatePropertyValues() CScriptObject *pInst = pScript->Instance(); mpActiveCheckBox->setChecked(pInst->IsActive()); - mpActiveCheckBox->setEnabled(pInst->ActiveProperty() != nullptr); + mpActiveCheckBox->setEnabled(pInst->HasActive()); mpInstanceNameLineEdit->blockSignals(true); mpInstanceNameLineEdit->setText(TO_QSTRING(pInst->InstanceName())); - mpInstanceNameLineEdit->setEnabled(pInst->InstanceNameProperty() != nullptr); + mpInstanceNameLineEdit->setEnabled(pInst->HasInstanceName()); mpInstanceNameLineEdit->blockSignals(false); } diff --git a/src/Editor/WorldEditor/WInstancesTab.cpp b/src/Editor/WorldEditor/WInstancesTab.cpp index 47ffda04..50acce63 100644 --- a/src/Editor/WorldEditor/WInstancesTab.cpp +++ b/src/Editor/WorldEditor/WInstancesTab.cpp @@ -3,6 +3,7 @@ #include "CWorldEditor.h" #include +#include #include #include @@ -299,11 +300,11 @@ void WInstancesTab::OnHideAllExceptTypeAction() else { EGame Game = mpEditor->CurrentGame(); - CMasterTemplate *pMaster = CMasterTemplate::MasterForGame(Game); + CGameTemplate *pGame = NGameList::GetGameTemplate(Game); - for (u32 iTemp = 0; iTemp < pMaster->NumScriptTemplates(); iTemp++) + for (u32 iTemp = 0; iTemp < pGame->NumScriptTemplates(); iTemp++) { - CScriptTemplate *pTemplate = pMaster->TemplateByIndex(iTemp); + CScriptTemplate *pTemplate = pGame->TemplateByIndex(iTemp); pTemplate->SetVisible( pTemplate == mpMenuTemplate ? true : false ); } @@ -330,10 +331,10 @@ void WInstancesTab::OnUnhideAllTypes() else { EGame Game = mpEditor->CurrentGame(); - CMasterTemplate *pMaster = CMasterTemplate::MasterForGame(Game); + CGameTemplate *pGame = NGameList::GetGameTemplate(Game); - for (u32 iTemp = 0; iTemp < pMaster->NumScriptTemplates(); iTemp++) - pMaster->TemplateByIndex(iTemp)->SetVisible(true); + for (u32 iTemp = 0; iTemp < pGame->NumScriptTemplates(); iTemp++) + pGame->TemplateByIndex(iTemp)->SetVisible(true); mpTypesModel->dataChanged( mpTypesModel->index(0, 2, TypeParent), mpTypesModel->index(mpTypesModel->rowCount(TypeParent) - 1, 2, TypeParent) ); } @@ -364,10 +365,10 @@ void WInstancesTab::OnUnhideAll() if (TypesRoot.isValid()) { EGame Game = mpEditor->CurrentGame(); - CMasterTemplate *pMaster = CMasterTemplate::MasterForGame(Game); + CGameTemplate *pGame = NGameList::GetGameTemplate(Game); - for (u32 iTemp = 0; iTemp < pMaster->NumScriptTemplates(); iTemp++) - pMaster->TemplateByIndex(iTemp)->SetVisible(true); + for (u32 iTemp = 0; iTemp < pGame->NumScriptTemplates(); iTemp++) + pGame->TemplateByIndex(iTemp)->SetVisible(true); mpTypesModel->dataChanged( mpTypesModel->index(0, 2, TypesRoot), mpTypesModel->index(mpTypesModel->rowCount(TypesRoot) - 1, 2, TypesRoot) ); } diff --git a/src/Editor/WorldEditor/WModifyTab.cpp b/src/Editor/WorldEditor/WModifyTab.cpp index 096cfc75..afc28146 100644 --- a/src/Editor/WorldEditor/WModifyTab.cpp +++ b/src/Editor/WorldEditor/WModifyTab.cpp @@ -40,8 +40,6 @@ WModifyTab::WModifyTab(CWorldEditor *pEditor, QWidget *pParent) ui->InLinksTableView->setModel(mpInLinkModel); ui->OutLinksTableView->setModel(mpOutLinkModel); - ui->InLinksTableView->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch); - ui->OutLinksTableView->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch); connect(ui->InLinksTableView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(OnLinkTableDoubleClick(QModelIndex))); connect(ui->OutLinksTableView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(OnLinkTableDoubleClick(QModelIndex))); connect(ui->InLinksTableView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(OnLinksSelectionModified())); @@ -69,7 +67,6 @@ void WModifyTab::ClearUI() { ui->ObjectsTabWidget->hide(); ui->PropertyView->SetInstance(nullptr); - ui->LightGroupBox->hide(); mpSelectedNode = nullptr; } @@ -85,22 +82,34 @@ void WModifyTab::GenerateUI() { mpSelectedNode = mpWorldEditor->Selection()->Front(); - // todo: set up editing UI for Light Nodes if (mpSelectedNode->NodeType() == eScriptNode) { - ui->ObjectsTabWidget->show(); CScriptNode *pScriptNode = static_cast(mpSelectedNode); CScriptObject *pObj = pScriptNode->Instance(); // Set up UI + ui->ObjectsTabWidget->show(); ui->PropertyView->SetInstance(pObj); - ui->LightGroupBox->hide(); - - ui->InLinksTableView->clearSelection(); - ui->OutLinksTableView->clearSelection(); mpInLinkModel->SetObject(pObj); mpOutLinkModel->SetObject(pObj); } + // disabled this for now! implemented it as a quick test, it's cool it works, + // but it's buggy & not ready for deployment +#if 0 + else + { + CStructRef Properties = mpSelectedNode->GetProperties(); + ui->PropertyView->SetProperties(Properties); + + if (Properties.IsValid()) + ui->ObjectsTabWidget->show(); + } +#endif + + ui->InLinksTableView->clearSelection(); + ui->OutLinksTableView->clearSelection(); + ui->InLinksTableView->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch); + ui->OutLinksTableView->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch); } } diff --git a/src/Editor/WorldEditor/WModifyTab.ui b/src/Editor/WorldEditor/WModifyTab.ui index 57cfef9e..77f9525d 100644 --- a/src/Editor/WorldEditor/WModifyTab.ui +++ b/src/Editor/WorldEditor/WModifyTab.ui @@ -108,7 +108,7 @@ 0 0 278 - 442 + 475 @@ -369,13 +369,6 @@ - - - - Light - - -
diff --git a/src/Editor/main.cpp b/src/Editor/main.cpp index d1568cc8..562ec11c 100644 --- a/src/Editor/main.cpp +++ b/src/Editor/main.cpp @@ -2,7 +2,8 @@ #include "CUIRelay.h" #include "UICommon.h" #include -#include + +#include #include #include @@ -22,57 +23,83 @@ void QtLogRedirect(QtMsgType Type, const QMessageLogContext& /*rkContext*/, cons } } -int main(int argc, char *argv[]) +class CMain { - // Create application - QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts); - CEditorApplication App(argc, argv); - App.setApplicationName( APP_NAME ); - App.setApplicationVersion( APP_VERSION ); - App.setOrganizationName("Aruki"); - App.setWindowIcon(QIcon(":/icons/AppIcon.ico")); - - // Create UI relay - CUIRelay UIRelay(&App); - gpUIRelay = &UIRelay; - - // Set up dark theme - qApp->setStyle(QStyleFactory::create("Fusion")); - QPalette DarkPalette; - DarkPalette.setColor(QPalette::Window, QColor(53,53,53)); - DarkPalette.setColor(QPalette::WindowText, Qt::white); - DarkPalette.setColor(QPalette::Base, QColor(25,25,25)); - DarkPalette.setColor(QPalette::AlternateBase, QColor(35,35,35)); - DarkPalette.setColor(QPalette::ToolTipBase, Qt::white); - DarkPalette.setColor(QPalette::ToolTipText, Qt::white); - DarkPalette.setColor(QPalette::Text, Qt::white); - DarkPalette.setColor(QPalette::Button, QColor(53,53,53)); - DarkPalette.setColor(QPalette::ButtonText, Qt::white); - DarkPalette.setColor(QPalette::BrightText, Qt::red); - DarkPalette.setColor(QPalette::Link, QColor(42, 130, 218)); - DarkPalette.setColor(QPalette::Highlight, QColor(42, 130, 218)); - DarkPalette.setColor(QPalette::HighlightedText, Qt::white); - qApp->setPalette(DarkPalette); - - // Init log - bool Initialized = Log::InitLog("primeworldeditor.log"); - if (!Initialized) QMessageBox::warning(0, "Error", "Couldn't open log file. Logging will not work for this session."); - qInstallMessageHandler(QtLogRedirect); - - // Create editor resource store - gpEditorStore = new CResourceStore("../resources/"); - - if (!gpEditorStore->AreAllEntriesValid()) +public: + /** Main function */ + int Main(int argc, char *argv[]) { - Log::Write("Editor store has invalid entries. Rebuilding database..."); - gpEditorStore->RebuildFromDirectory(); - gpEditorStore->ConditionalSaveStore(); + // Create application + QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts); + CEditorApplication App(argc, argv); + App.setApplicationName( APP_NAME ); + App.setApplicationVersion( APP_VERSION ); + App.setOrganizationName("Aruki"); + App.setWindowIcon(QIcon(":/icons/AppIcon.ico")); + + // Create UI relay + CUIRelay UIRelay(&App); + gpUIRelay = &UIRelay; + + // Set up dark theme + qApp->setStyle(QStyleFactory::create("Fusion")); + SetupPalette(); + + // Init log + bool Initialized = Log::InitLog("primeworldeditor.log"); + if (!Initialized) QMessageBox::warning(0, "Error", "Couldn't open log file. Logging will not work for this session."); + qInstallMessageHandler(QtLogRedirect); + + // Create editor resource store + gpEditorStore = new CResourceStore("../resources/"); + + if (!gpEditorStore->AreAllEntriesValid()) + { + Log::Write("Editor store has invalid entries. Rebuilding database..."); + gpEditorStore->RebuildFromDirectory(); + gpEditorStore->ConditionalSaveStore(); + } + + // Execute application + App.InitEditor(); + return App.exec(); } - // Load templates - CTemplateLoader::LoadGameList(); + /** Clean up any resources at the end of application execution */ + ~CMain() + { + NGameList::Shutdown(); + } - // Execute application - App.InitEditor(); - return App.exec(); + void SetupPalette() + { + QPalette DarkPalette; + ConfigureColorGroup(DarkPalette, QPalette::Active, 100); + ConfigureColorGroup(DarkPalette, QPalette::Inactive, 100); + ConfigureColorGroup(DarkPalette, QPalette::Disabled, 200); + qApp->setPalette(DarkPalette); + } + + void ConfigureColorGroup(QPalette& Palette, QPalette::ColorGroup Group, int Factor) + { + Palette.setColor( Group, QPalette::Window, QColor(53,53,53) .darker(Factor) ); + Palette.setColor( Group, QPalette::WindowText, QColor(Qt::white) .darker(Factor) ); + Palette.setColor( Group, QPalette::Base, QColor(25,25,25) .darker(Factor) ); + Palette.setColor( Group, QPalette::AlternateBase, QColor(35,35,35) .darker(Factor) ); + Palette.setColor( Group, QPalette::ToolTipBase, QColor(Qt::white) .darker(Factor) ); + Palette.setColor( Group, QPalette::ToolTipText, QColor(Qt::white) .darker(Factor) ); + Palette.setColor( Group, QPalette::Text, QColor(Qt::white) .darker(Factor) ); + Palette.setColor( Group, QPalette::Button, QColor(53,53,53) .darker(Factor) ); + Palette.setColor( Group, QPalette::ButtonText, QColor(Qt::white) .darker(Factor) ); + Palette.setColor( Group, QPalette::BrightText, QColor(Qt::red) .darker(Factor) ); + Palette.setColor( Group, QPalette::Link, QColor(42,130,218).darker(Factor) ); + Palette.setColor( Group, QPalette::Highlight, QColor(42,130,218).darker(Factor) ); + Palette.setColor( Group, QPalette::HighlightedText, QColor(Qt::white) .darker(Factor) ); + } +}; + +int main(int argc, char *argv[]) +{ + CMain Main; + return Main.Main(argc, argv); } diff --git a/src/Math/CAABox.cpp b/src/Math/CAABox.cpp index a6b072ed..b25d59c0 100644 --- a/src/Math/CAABox.cpp +++ b/src/Math/CAABox.cpp @@ -24,8 +24,8 @@ CAABox::CAABox(IInputStream& rInput) void CAABox::Serialize(IArchive& rArc) { - rArc << SERIAL("Min", mMin) - << SERIAL("Max", mMax); + rArc << SerialParameter("Min", mMin) + << SerialParameter("Max", mMax); } void CAABox::Write(IOutputStream& rOutput) diff --git a/src/Math/CMatrix4f.cpp b/src/Math/CMatrix4f.cpp index a819764d..9a3b2ac8 100644 --- a/src/Math/CMatrix4f.cpp +++ b/src/Math/CMatrix4f.cpp @@ -139,16 +139,6 @@ float CMatrix4f::Determinant() const } // ************ OPERATORS ************ -inline float* CMatrix4f::operator[](long Index) -{ - return m[Index]; -} - -inline const float* CMatrix4f::operator[](long Index) const -{ - return m[Index]; -} - CVector3f CMatrix4f::operator*(const CVector3f& rkVec) const { // For vec3 multiplication, the vector w component is considered to be 1.0 diff --git a/src/Math/CMatrix4f.h b/src/Math/CMatrix4f.h index e31220a4..703df8f5 100644 --- a/src/Math/CMatrix4f.h +++ b/src/Math/CMatrix4f.h @@ -42,4 +42,14 @@ public: static const CMatrix4f skIdentity; }; +inline float* CMatrix4f::operator[](long Index) +{ + return m[Index]; +} + +inline const float* CMatrix4f::operator[](long Index) const +{ + return m[Index]; +} + #endif // CMATRIX4_H diff --git a/src/Math/CTransform4f.cpp b/src/Math/CTransform4f.cpp index dc70a5b0..d392b2c9 100644 --- a/src/Math/CTransform4f.cpp +++ b/src/Math/CTransform4f.cpp @@ -73,9 +73,9 @@ CTransform4f::CTransform4f(CVector3f Position, CVector3f Rotation, CVector3f Sca void CTransform4f::Serialize(IArchive& rOut) { - rOut << SERIAL("Row0Col0", m[0][0]) << SERIAL("Row0Col1", m[0][1]) << SERIAL("Row0Col2", m[0][2]) << SERIAL("Row0Col3", m[0][3]) - << SERIAL("Row1Col0", m[1][0]) << SERIAL("Row1Col1", m[1][1]) << SERIAL("Row1Col2", m[1][2]) << SERIAL("Row1Col3", m[1][3]) - << SERIAL("Row2Col0", m[2][0]) << SERIAL("Row2Col1", m[2][1]) << SERIAL("Row2Col2", m[2][2]) << SERIAL("Row2Col3", m[2][3]); + rOut << SerialParameter("Row0Col0", m[0][0]) << SerialParameter("Row0Col1", m[0][1]) << SerialParameter("Row0Col2", m[0][2]) << SerialParameter("Row0Col3", m[0][3]) + << SerialParameter("Row1Col0", m[1][0]) << SerialParameter("Row1Col1", m[1][1]) << SerialParameter("Row1Col2", m[1][2]) << SerialParameter("Row1Col3", m[1][3]) + << SerialParameter("Row2Col0", m[2][0]) << SerialParameter("Row2Col1", m[2][1]) << SerialParameter("Row2Col2", m[2][2]) << SerialParameter("Row2Col3", m[2][3]); } void CTransform4f::Write(IOutputStream& rOut) diff --git a/src/Math/CVector3f.cpp b/src/Math/CVector3f.cpp index f7695849..6130daa4 100644 --- a/src/Math/CVector3f.cpp +++ b/src/Math/CVector3f.cpp @@ -38,7 +38,17 @@ void CVector3f::Write(IOutputStream& rOutput) const void CVector3f::Serialize(IArchive& rArc) { - rArc << SERIAL_AUTO(X) << SERIAL_AUTO(Y) << SERIAL_AUTO(Z); + rArc << SerialParameter("X", X) + << SerialParameter("Y", Y) + << SerialParameter("Z", Z); +} + +TString CVector3f::ToString() const +{ + return TString::Format("%s, %s, %s", + *TString::FromFloat(X), + *TString::FromFloat(Y), + *TString::FromFloat(Z)); } // ************ SWIZZLE ************ diff --git a/src/Math/CVector3f.h b/src/Math/CVector3f.h index f242b8f0..acfa9bbf 100644 --- a/src/Math/CVector3f.h +++ b/src/Math/CVector3f.h @@ -22,6 +22,7 @@ public: CVector3f(IInputStream& rInput); void Write(IOutputStream& rOutput) const; void Serialize(IArchive& rArc); + TString ToString() const; // Swizzle CVector2f XY(); diff --git a/src/Math/Math.pro b/src/Math/Math.pro index 1966ed70..0da24bea 100644 --- a/src/Math/Math.pro +++ b/src/Math/Math.pro @@ -23,8 +23,7 @@ CONFIG (debug, debug|release) { TARGET = Mathd # Debug Libs - LIBS += -L$$BUILD_DIR/Common/ -lCommond \ - -L$$EXTERNALS_DIR/tinyxml2/lib/ -ltinyxml2d + LIBS += -L$$BUILD_DIR/Common/ -lCommond # Debug Target Dependencies win32 { @@ -38,8 +37,7 @@ CONFIG (release, debug|release) { TARGET = Math # Release Libs - LIBS += -L$$BUILD_DIR/Common/ -lCommon \ - -L$$EXTERNALS_DIR/tinyxml2/lib/ -ltinyxml2 + LIBS += -L$$BUILD_DIR/Common/ -lCommon # Release Target Dependencies win32 { @@ -49,7 +47,8 @@ CONFIG (release, debug|release) { # Include Paths INCLUDEPATH += $$PWE_MAIN_INCLUDE \ - $$EXTERNALS_DIR/tinyxml2/include + $$EXTERNALS_DIR/CodeGen/include \ + $$EXTERNALS_DIR/tinyxml2 # Header Files HEADERS += \ @@ -79,3 +78,9 @@ SOURCES += \ CVector3f.cpp \ CVector4f.cpp \ MathUtil.cpp + +# Codegen +CODEGEN_DIR = $$EXTERNALS_DIR/CodeGen +CODEGEN_OUT_PATH = $$BUILD_DIR/Common/codegen_build/auto_codegen.cpp +CODEGEN_SRC_PATH = $$PWD +include($$EXTERNALS_DIR/CodeGen/codegen.pri) diff --git a/src/Math/MathUtil.h b/src/Math/MathUtil.h index d1cfdfad..a7b58ce3 100644 --- a/src/Math/MathUtil.h +++ b/src/Math/MathUtil.h @@ -46,7 +46,7 @@ template Type Lerp(const Type& rkA, const Type& rkB, float t) { Type Diff = rkB - rkA; - return rkA + (Diff * t); + return rkA + Type(Diff * t); } std::pair RayPlaneIntersection(const CRay& rkRay, const CPlane& rkPlane); diff --git a/src/pwetypes.py b/src/pwetypes.py new file mode 100644 index 00000000..b98013cf --- /dev/null +++ b/src/pwetypes.py @@ -0,0 +1,111 @@ +# Debug helpers for Prime World Editor classes +from dumper import * + +def floatStr(value): + s = "%.6f" % value.floatingPoint() + s = s.rstrip('0') + if s.endswith('.'): s += '0' + return s + +# Common +def qdump__CAssetID(d, value): + length = value["mLength"].integer() + id = value["mID"].integer() + + if length is 4: + if id == 0xFFFFFFFF: + d.putValue("Invalid 32-bit ID") + else: + d.putValue("[%08X]" % id) + elif length is 8: + if id == 0xFFFFFFFFFFFFFFFF: + d.putValue("Invalid 64-bit ID") + else: + d.putValue("[%016X]" % id) + else: + d.putValue("[Invalid]") + +def qdump__CColor(d, value): + R = floatStr(value["R"]) + G = floatStr(value["G"]) + B = floatStr(value["B"]) + A = floatStr(value["A"]) + d.putValue("[%s, %s, %s, %s]" % (R, G, B, A)) + d.putNumChild(4) + + if d.isExpanded(): + with Children(d): + d.putSubItem("R", value["R"]) + d.putSubItem("G", value["G"]) + d.putSubItem("B", value["B"]) + d.putSubItem("A", value["A"]) + +def qdump__CFourCC(d, value): + fourCC = value["mFourCC"].integer() + charA = chr((fourCC >> 24) & 0xFF) + charB = chr((fourCC >> 16) & 0xFF) + charC = chr((fourCC >> 8) & 0xFF) + charD = chr((fourCC >> 0) & 0xFF) + d.putValue("'%c%c%c%c'" % (charA, charB, charC, charD)) + +def qdump__TString(d, value): + d.putItem( value["mInternalString"] ) + d.putType("TString") + +def qdump__TWideString(d, value): + d.putItem( value["mInternalString"] ) + d.putType("TWideString") + +# Math +def qdump__CQuaternion(d, value): + qdump__CVector4f(d, value) + +def qdump__CVector2f(d, value): + X = floatStr(value["X"]) + Y = floatStr(value["Y"]) + d.putValue("[%s, %s]" % (X, Y)) + d.putNumChild(2) + + if d.isExpanded(): + with Children(d): + d.putSubItem("X", value["X"]) + d.putSubItem("Y", value["Y"]) + +def qdump__CVector2i(d, value): + d.putValue("[%i, %i]" % (value["X"], value["Y"])) + d.putNumChild(2) + + if d.isExpanded(): + with Children(d): + d.putSubItem("X", value["X"]) + d.putSubItem("Y", value["Y"]) + +def qdump__CVector3f(d, value): + X = floatStr(value["X"]) + Y = floatStr(value["Y"]) + Z = floatStr(value["Z"]) + d.putValue("[%s, %s, %s]" % (X, Y, Z)) + d.putNumChild(3) + + if d.isExpanded(): + with Children(d): + d.putSubItem("X", value["X"]) + d.putSubItem("Y", value["Y"]) + d.putSubItem("Z", value["Z"]) + +def qdump__CVector4f(d, value): + X = floatStr(value["X"]) + Y = floatStr(value["Y"]) + Z = floatStr(value["Z"]) + W = floatStr(value["W"]) + d.putValue("[%s, %s, %s, %s]" % (X, Y, Z, W)) + d.putNumChild(4) + + if d.isExpanded(): + with Children(d): + d.putSubItem("X", value["X"]) + d.putSubItem("Y", value["Y"]) + d.putSubItem("Z", value["Z"]) + d.putSubItem("W", value["W"]) + +# Core diff --git a/templates/DKCR/Enums/PlayerItem.xml b/templates/DKCR/Enums/PlayerItem.xml new file mode 100644 index 00000000..3218e0a9 --- /dev/null +++ b/templates/DKCR/Enums/PlayerItem.xml @@ -0,0 +1,55 @@ + + + + PlayerItem + 0x0 + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/DKCR/Game.xml b/templates/DKCR/Game.xml new file mode 100644 index 00000000..8b62ce28 --- /dev/null +++ b/templates/DKCR/Game.xml @@ -0,0 +1,3443 @@ + + + + + AAGM + + + + ACKF + + + + ACOU + + + + ACTR + + + + ADMG + + + + AIHT + + + + AIKF + + + + AIWP + + + + AMKF + + + + AOCL + + + + ARNO + + + + ARPA + + + + ASAS + + + + ATRN + + + + AVIS + + + + BABL + + + + BARL + + + + BIRD + + + + BLME + + + + BLMV + + + + BLUR + + + + BONU + + + + BTYR + + + + BUHA + + + + CABL + + + + CAMH + + + + CAMS + + + + CART + + + + CINE + + + + CKPT + + + + CLPC + + + + CLRM + + + + CMAN + + + + CMGR + + + + CMOD + + + + CNTA + + + + CNTR + + + + CRAB + + + + CRED + + + + CRLY + + + + CSGO + + + + CSTI + + + + DEBR + + + + DFOG + + + + DLHT + + + + DMGA + + + + DMGE + + + + DOFT + + + + DTRG + + + + DTRO + + + + EFCT + + + + EOLD + + + + FILT + + + + FLPS + + + + FOBS + + + + FOGO + + + + FOGV + + + + FSWC + + + + FXDC + + + + GCGP + + + + GCTR + + + + GENR + + + + GMGR + + + + GMNU + + + + GOBD + + + + GPDT + + + + GPTR + + + + GSLD + + + + GUCH + + + + GWIG + + + + HINT + + + + HUDD + + + + HUDP + + + + IHUD + + + + ISAR + + + + JB01 + + + + KNGP + + + + KONG + + + + LODC + + + + LVLD + + + + LVOL + + + + MEAT + + + + MMDL + + + + MNPL + + + + MOLC + + + + MOLE + + + + MOLM + + + + MOVI + + + + MPSR + + + + MRLY + + + + MUMA + + + + MUTR + + + + OBRG + + + + OPAA + + + + PCHK + + + + PCKP + + + + PCTL + + + + PLAC + + + + PLAT + + + + PNUT + + + + POIO + + + + PRLA + + + + PROJ + + + + PRSP + + + + PTOK + + + + RACR + + + + RADD + + + + RBRL + + + + RCHK + + + + RCKF + + + + RCTL + + + + REAA + + + + REAC + + + + RMBI + + + + ROPE + + + + RRLY + + + + RSBL + + + + RSCL + + + + RTNM + + + + RUMB + + + + SAMD + + + + SBMI + + + + SCTL + + + + SHDW + + + + SLCT + + + + SNDM + + + + SNMD + + + + SOND + + + + SPFN + + + + SPIN + + + + SPNW + + + + SPPA + + + + SPRL + + + + SPWN + + + + SQTR + + + + SRLY + + + + STAU + + + + SUBT + + + + SUSP + + + + SVOL + + + + SWKP + + + + SWTC + + + + TARP + + + + TEOL + + + + TIDE + + + + TIMR + + + + TIPI + + + + TKEY + + + + TMGR + + + + TPND + + + + TRGR + + + + TRSC + + + + TSEQ + + + + TUTR + + + + TXPN + + + + VBPT + + + + VOLG + + + + VRBR + + + + WAVE + + + + WAYP + + + + WLDA + + + + WLIT + + + + + + ActivationTime + + + + ActorMultiKeyframeData + + + + ActorMultiKeyframeStruct + + + + ActorParameters + + + + AdditiveTouchAttackBehaviorData + + + + AnimEnum + + + + AnimGridModifierData + + + + Animations + + + + AreaAttackBehaviorData + + + + AreaDamageData + + + + AreaPathStructA + + + + BalloonBarrelData + + + + BalloonData + + + + BarrelCannonData + + + + BarrelCannonEnum + + + + BeatUpHandlerStruct + + + + BehaviorData + + + + BehaviorsData + + + + BirdBossData + + + + BirdBossStruct + + + + BopJumpBehaviorData + + + + BopJumpData + + + + BossHUD + + + + BouncyTireData + + + + BouncyTireJumpHeights + + + + CableEnum + + + + CableProperties + + + + CameraClip + + + + CameraConstraints + + + + CameraFieldOfView + + + + CameraFraming + + + + CameraInterpolation + + + + CameraManagerData + + + + CameraMotion + + + + CameraNavigation + + + + CameraOrientation + + + + CameraPosition + + + + CameraRotation + + + + CameraShakerData + + + + CameraShakerEnvelope + + + + CameraTracking + + + + CharacterGlueData + + + + CheckpointData + + + + ClingPathControlData + + + + CollisionActorModifierData + + + + ConditionalTest + + + + Connection + + + + ControlCommands + + + + Convergence + + + + CounterConditions + + + + CreditsData + + + + DKBarrelGlueData + + + + DamageEffectData + + + + DamageInfo + + + + DamageVulnerability + + + + DamageableTriggerEnum + + + + DamagedBehaviorData + + + + DashModifierData + + + + Data + + + + DebrisProperties + + + + DebrisPropertiesOrientationEnum + + + + DespawnRules + + + + DrivenIntoGroundBehaviorData + + + + DynamicLightFalloff + + + + DynamicLightIntensity + + + + DynamicLightMotionSpline + + + + DynamicLightParent + + + + DynamicLightSpotlight + + + + EditorProperties + + + + FOVInterpolationMethod + + + + FixedDelayRules + + + + FleeBehaviorData + + + + FollowPathControlBehaviorData + + + + FollowSurfaceBehaviorData + + + + FollowWaypointsBehaviorData + + + + ForestBossStructA + + + + ForestBossStructB + + + + ForestBossStructC + + + + FramingRules + + + + GeneratedObjectDeleterProperties + + + + GenericCreatureData + + + + GenericCreatureStructC + + + + GenericCreatureStructD + + + + GenericCreatureStructE + + + + GrabPlayerBehaviorData + + + + GrabbedBehaviorData + + + + GroundPoundDetectorData + + + + Groups + + + + GuiWidgetProperties + + + + HealthInfo + + + + HurlHeightRules + + + + IdleBehaviorData + + + + InterpolationMethod + + + + IslandAreaStruct + + + + IslandHudStruct + + + + JungleBossStructA + + + + JungleBossStructB + + + + JungleBossStructC + + + + JungleBossStructD + + + + KongData + + + + KongGrabData + + + + KongGroundPoundData + + + + KongProxyData + + + + KongRunningSlapData + + + + KongSlideData + + + + KongStalledDescentData + + + + KongSwingData + + + + LayerToggle + + + + LightParameters + + + + LocomotionContextEnum + + + + MaterialSoundPair + + + + MaterialType + + + + MineCartData + + + + MineCartMaterialSounds + + + + ModifyContactRuleData + + + + MoleCartStruct + + + + MoleTrainManagerStructA + + + + MoleTrainManagerStructB + + + + MotionInterpolationMethod + + + + MultiModelActorStruct + + + + MultiModelInformation + + + + MusicEnumA + + + + MusicEnumB + + + + NonSlowdown + + + + OceanBridgeData + + + + OceanBridgeStructA + + + + OceanBridgeStructB + + + + OffsetInterpolant + + + + OffsetPosition + + + + OffsetSplines + + + + OneShotBehaviorData + + + + OptionalAreaAssetTypes + + + + OrientationInterpolationMethod + + + + PIDConvergence + + + + PathDetermination + + + + PathDeterminationMethodType + + + + PathPosition + + + + PatternedAITypedef + + + + PauseHUD + + + + PeanutMaterialEffects + + + + PeanutProperties + + + + PickupData + + + + PickupRelayStruct + + + + PlatformMotionProperties + + + + PlayerAlternateSkin + + + + PlayerAttachment + + + + PlayerAttachmentsData + + + + PlayerAttackBounceData + + + + PlayerBarrelCannonData + + + + PlayerBasicMovementData + + + + PlayerBopAnimThresholds + + + + PlayerCling2Data + + + + PlayerCommonData + + + + PlayerCrouchData + + + + PlayerCrushData + + + + PlayerFireReactionData + + + + PlayerHeadTrackingData + + + + PlayerItem + + + + PlayerJumpAnimWeights + + + + PlayerJumpData + + + + PlayerJumpHeights + + + + PlayerMeleeData + + + + PlayerMountData + + + + PlayerMountRiderData + + + + PlayerMountRiderList + + + + PlayerMovementParameters + + + + PlayerMultiKillRewardData + + + + PlayerMultiKillRewardSoundData + + + + PlayerMultiKillRewardTierData + + + + PlayerOffscreenIndicator + + + + PlayerOffscreenIndicatorIconData + + + + PlayerOffscreenIndicatorTextData + + + + PlayerPeanutGunData + + + + PlayerPeriodicAdditiveAnimationData + + + + PlayerRiseFromTheGraveData + + + + PlayerShieldData + + + + PlayerShieldSplineData + + + + PlayerSlaveData + + + + PlayerSplineAdvancementData + + + + PlayerTarInteractionData + + + + PlayerTeleportData + + + + PlayerTerrainAlignmentData + + + + PlayerTireInteractionData + + + + PlayerType + + + + ProjectileAttackBehaviorData + + + + ProjectileBehaviorData + + + + ProjectileBounceData + + + + ProjectileCollisionData + + + + ProjectileData + + + + ProjectileMotionData + + + + ProjectileRenderData + + + + ProjectileRenderOptions + + + + ProportionalConvergence + + + + RagDollData + + + + RambiControllerData + + + + RambiCrateData + + + + ReactiveActorBehavior + + + + ReactiveActorBehaviors + + + + RetronomeMessage + + + + RobotChickenEnum + + + + RobotChickenFlyerStructA + + + + RobotChickenFlyerStructB + + + + RobotChickenStructA + + + + RobotChickenStructB + + + + RotationSplines + + + + SavedStateID + + + + ScaleSplines + + + + SeekerBehaviorData + + + + SeparateAndReformBehaviorData + + + + SeparateAndReformParts + + + + Sets + + + + ShadowData + + + + Shape + + + + SkinSwapModifierData + + + + SlideBehaviorData + + + + SpawnBehaviorData + + + + SpawnPointData + + + + SpindleOrientation + + + + SpindlePosition + + + + SpindlePositionInterpolant + + + + SplineType + + + + SpringConvergence + + + + SquawkProxyData + + + + StackableBlockBehaviorData + + + + StunnedByBopBehaviorData + + + + StunnedByContactRuleData + + + + StunnedByGroundPoundBehaviorData + + + + SurfaceOrientation + + + + SurfacePosition + + + + SurroundPan + + + + SuspensionBridgeData + + + + SuspensionBridgeStruct + + + + SwingLineBehaviorData + + + + SwingRopeData + + + + SwoopBehaviorData + + + + TandemBeam + + + + TargetPlayerBehaviorData + + + + TextProperties + + + + TidalWaveData + + + + TouchAttackBehaviorData + + + + TouchAttackDirectionEnum + + + + TrackObjectModuleData + + + + TrackPlayer + + + + TrainTrackManagerStructA + + + + TrainTrackManagerStructB + + + + Transform + + + + TranslationSplines + + + + TriggerInfo + + + + TriggerShape + + + + UnknownEnum1 + + + + UnknownEnum2 + + + + UnknownEnum3 + + + + UnknownEnum4 + + + + UnknownStruct + + + + UnknownStruct10 + + + + UnknownStruct109 + + + + UnknownStruct11 + + + + UnknownStruct115 + + + + UnknownStruct116 + + + + UnknownStruct118 + + + + UnknownStruct119 + + + + UnknownStruct12 + + + + UnknownStruct122 + + + + UnknownStruct128 + + + + UnknownStruct13 + + + + UnknownStruct132 + + + + UnknownStruct133 + + + + UnknownStruct134 + + + + UnknownStruct135 + + + + UnknownStruct138 + + + + UnknownStruct14 + + + + UnknownStruct140 + + + + UnknownStruct141 + + + + UnknownStruct142 + + + + UnknownStruct143 + + + + UnknownStruct144 + + + + UnknownStruct145 + + + + UnknownStruct146 + + + + UnknownStruct147 + + + + UnknownStruct148 + + + + UnknownStruct149 + + + + UnknownStruct15 + + + + UnknownStruct150 + + + + UnknownStruct151 + + + + UnknownStruct154 + + + + UnknownStruct155 + + + + UnknownStruct156 + + + + UnknownStruct157 + + + + UnknownStruct158 + + + + UnknownStruct159 + + + + UnknownStruct16 + + + + UnknownStruct160 + + + + UnknownStruct161 + + + + UnknownStruct162 + + + + UnknownStruct163 + + + + UnknownStruct164 + + + + UnknownStruct165 + + + + UnknownStruct166 + + + + UnknownStruct167 + + + + UnknownStruct168 + + + + UnknownStruct169 + + + + UnknownStruct17 + + + + UnknownStruct170 + + + + UnknownStruct171 + + + + UnknownStruct172 + + + + UnknownStruct173 + + + + UnknownStruct174 + + + + UnknownStruct175 + + + + UnknownStruct176 + + + + UnknownStruct177 + + + + UnknownStruct178 + + + + UnknownStruct179 + + + + UnknownStruct18 + + + + UnknownStruct180 + + + + UnknownStruct181 + + + + UnknownStruct182 + + + + UnknownStruct183 + + + + UnknownStruct184 + + + + UnknownStruct185 + + + + UnknownStruct186 + + + + UnknownStruct187 + + + + UnknownStruct188 + + + + UnknownStruct189 + + + + UnknownStruct19 + + + + UnknownStruct190 + + + + UnknownStruct191 + + + + UnknownStruct192 + + + + UnknownStruct193 + + + + UnknownStruct194 + + + + UnknownStruct195 + + + + UnknownStruct196 + + + + UnknownStruct197 + + + + UnknownStruct198 + + + + UnknownStruct199 + + + + UnknownStruct20 + + + + UnknownStruct200 + + + + UnknownStruct201 + + + + UnknownStruct202 + + + + UnknownStruct203 + + + + UnknownStruct204 + + + + UnknownStruct205 + + + + UnknownStruct206 + + + + UnknownStruct207 + + + + UnknownStruct208 + + + + UnknownStruct22 + + + + UnknownStruct227 + + + + UnknownStruct228 + + + + UnknownStruct229 + + + + UnknownStruct23 + + + + UnknownStruct230 + + + + UnknownStruct231 + + + + UnknownStruct232 + + + + UnknownStruct233 + + + + UnknownStruct234 + + + + UnknownStruct235 + + + + UnknownStruct236 + + + + UnknownStruct237 + + + + UnknownStruct238 + + + + UnknownStruct239 + + + + UnknownStruct24 + + + + UnknownStruct240 + + + + UnknownStruct241 + + + + UnknownStruct242 + + + + UnknownStruct243 + + + + UnknownStruct244 + + + + UnknownStruct245 + + + + UnknownStruct246 + + + + UnknownStruct247 + + + + UnknownStruct248 + + + + UnknownStruct249 + + + + UnknownStruct250 + + + + UnknownStruct251 + + + + UnknownStruct252 + + + + UnknownStruct253 + + + + UnknownStruct254 + + + + UnknownStruct255 + + + + UnknownStruct256 + + + + UnknownStruct257 + + + + UnknownStruct258 + + + + UnknownStruct259 + + + + UnknownStruct26 + + + + UnknownStruct260 + + + + UnknownStruct261 + + + + UnknownStruct262 + + + + UnknownStruct264 + + + + UnknownStruct265 + + + + UnknownStruct266 + + + + UnknownStruct267 + + + + UnknownStruct268 + + + + UnknownStruct269 + + + + UnknownStruct27 + + + + UnknownStruct270 + + + + UnknownStruct271 + + + + UnknownStruct272 + + + + UnknownStruct273 + + + + UnknownStruct274 + + + + UnknownStruct275 + + + + UnknownStruct276 + + + + UnknownStruct277 + + + + UnknownStruct278 + + + + UnknownStruct279 + + + + UnknownStruct28 + + + + UnknownStruct280 + + + + UnknownStruct281 + + + + UnknownStruct282 + + + + UnknownStruct283 + + + + UnknownStruct284 + + + + UnknownStruct285 + + + + UnknownStruct286 + + + + UnknownStruct287 + + + + UnknownStruct288 + + + + UnknownStruct289 + + + + UnknownStruct29 + + + + UnknownStruct290 + + + + UnknownStruct291 + + + + UnknownStruct292 + + + + UnknownStruct293 + + + + UnknownStruct294 + + + + UnknownStruct295 + + + + UnknownStruct296 + + + + UnknownStruct297 + + + + UnknownStruct298 + + + + UnknownStruct299 + + + + UnknownStruct30 + + + + UnknownStruct31 + + + + UnknownStruct32 + + + + UnknownStruct33 + + + + UnknownStruct34 + + + + UnknownStruct35 + + + + UnknownStruct36 + + + + UnknownStruct47 + + + + UnknownStruct48 + + + + UnknownStruct49 + + + + UnknownStruct50 + + + + UnknownStruct51 + + + + UnknownStruct510 + + + + UnknownStruct52 + + + + UnknownStruct53 + + + + UnknownStruct54 + + + + UnknownStruct55 + + + + UnknownStruct56 + + + + UnknownStruct57 + + + + UnknownStruct58 + + + + UnknownStruct59 + + + + UnknownStruct60 + + + + UnknownStruct61 + + + + UnknownStruct62 + + + + UnknownStruct63 + + + + UnknownStruct64 + + + + UnknownStruct65 + + + + UnknownStruct66 + + + + UnknownStruct67 + + + + UnknownStruct68 + + + + UnknownStruct69 + + + + UnknownStruct7 + + + + UnknownStruct70 + + + + UnknownStruct71 + + + + UnknownStruct72 + + + + UnknownStruct73 + + + + UnknownStruct74 + + + + UnknownStruct76 + + + + UnknownStruct77 + + + + UnknownStruct8 + + + + UnknownStruct83 + + + + UnknownStruct84 + + + + UnknownStruct85 + + + + UnknownStruct86 + + + + UnknownStruct87 + + + + UnknownStruct88 + + + + UnknownStruct89 + + + + UnknownStruct9 + + + + UnknownStruct91 + + + + UnknownStruct92 + + + + UnknownStruct93 + + + + UnknownStruct94 + + + + UnknownStruct95 + + + + UnknownStruct96 + + + + Vector2f + + + + VelocityConvergence + + + + VerticalFlightBehaviorData + + + + VisControl + + + + VolcanoBossBodyPartStructA + + + + VolcanoBossBodyPartStructB + + + + VolcanoBossBodyPartStructC + + + + VolcanoBossBodyPartStructD + + + + WanderBehaviorData + + + + WanderRandomTurnData + + + + ZoomBehaviorData + + + + + + !ZER + NonZero + + + ACQU + ACQU + + + ACTV + Active + + + ANMO + AnimOver + + + ANMS + AnimStart + + + APRC + Approach + + + ARRV + Arrived + + + CINT + CINT + + + CLOS + Closed + + + CONN + Connect + + + CPTH + CameraPath + + + CTGT + CameraTarget + + + DAMG + Damage + + + DBNH + DBNH + + + DEAD + Dead + + + DSPN + DSPN + + + ENTR + Entered + + + EXIT + Exited + + + FOVP + FOVP + + + GIBB + GIBB + + + GRN0 + GRN0 + + + GRN1 + GRN1 + + + GRNT + Generate + + + ICTV + Inactive + + + INSD + Inside + + + IS00 + InternalState0 + + + IS01 + InternalState1 + + + IS02 + InternalState2 + + + IS03 + InternalState3 + + + IS04 + InternalState4 + + + IS05 + InternalState5 + + + IS06 + InternalState6 + + + IS07 + InternalState7 + + + IS08 + InternalState8 + + + IS09 + InternalState9 + + + IS10 + InternalState10 + + + IS11 + InternalState11 + + + IS12 + InternalState12 + + + IS13 + InternalState13 + + + IS14 + InternalState14 + + + IS15 + InternalState15 + + + IS16 + InternalState16 + + + IS17 + InternalState17 + + + IS18 + InternalState18 + + + IS19 + InternalState19 + + + IS20 + InternalState20 + + + IS21 + InternalState21 + + + IS22 + InternalState22 + + + IS23 + InternalState23 + + + IS24 + InternalState24 + + + IS25 + InternalState25 + + + IS26 + InternalState26 + + + IS27 + InternalState27 + + + IS28 + InternalState28 + + + IS29 + InternalState29 + + + IS30 + InternalState30 + + + IS31 + InternalState31 + + + IS32 + InternalState32 + + + IS33 + InternalState33 + + + IS34 + InternalState34 + + + IS35 + InternalState35 + + + IS36 + InternalState36 + + + IS37 + InternalState37 + + + IS38 + InternalState38 + + + IS39 + InternalState39 + + + IS40 + InternalState40 + + + IS41 + InternalState41 + + + IS42 + InternalState42 + + + IS43 + InternalState43 + + + IS44 + InternalState44 + + + IS45 + InternalState45 + + + IS46 + InternalState46 + + + IS47 + InternalState47 + + + IS48 + InternalState48 + + + IS49 + InternalState49 + + + IS50 + InternalState50 + + + IS51 + InternalState51 + + + IS52 + InternalState52 + + + IS53 + InternalState53 + + + IS54 + InternalState54 + + + IS55 + InternalState55 + + + IS56 + InternalState56 + + + IS57 + InternalState57 + + + IS62 + InternalState62 + + + IS65 + InternalState65 + + + IS66 + InternalState66 + + + IS67 + InternalState67 + + + IS68 + InternalState68 + + + IS70 + InternalState70 + + + IS72 + InternalState72 + + + IS73 + InternalState73 + + + IS77 + InternalState77 + + + IS78 + InternalState78 + + + IS79 + InternalState79 + + + KBDD + KBDD + + + KBDK + KBDK + + + LDWA + DrawAfter + + + LDWB + DrawBefore + + + LTKA + ThinkAfter + + + LTKB + ThinkBefore + + + MAXR + MaxReached + + + MOTP + MOTP + + + MOTS + MOTS + + + NEXT + Next + + + OBJP + OBJP + + + OPEN + Open + + + PLAY + Play + + + PLRP + PLRP + + + PREV + Previous + + + PTRL + Patrol + + + RATL + DeathRattle + + + RLAY + Relay + + + ROTO + RotationOver + + + ROTS + RotationStart + + + SE01 + SE01 + + + SE02 + SE02 + + + SE03 + SE03 + + + SE05 + SE05 + + + SE06 + SE06 + + + SE07 + SE07 + + + SE08 + SE08 + + + SE09 + SE09 + + + SE10 + SE10 + + + SLAV + Slave + + + SQNC + Sequence + + + TGTO + TGTO + + + TGTP + TGTP + + + ULCK + Unlocked + + + ZERO + Zero + + + + + ACMT + ACMT + + + ACTN + Action + + + ACTV + Activate + + + ATCH + Attach + + + CLOS + Close + + + DCTV + Deactivate + + + DECR + Decrement + + + FADI + FadeIn + + + FADO + FadeOut + + + FOLW + Follow + + + IM00 + InternalMessage0 + + + IM01 + InternalMessage1 + + + IM02 + InternalMessage2 + + + IM03 + InternalMessage3 + + + IM04 + InternalMessage4 + + + IM05 + InternalMessage5 + + + IM06 + InternalMessage6 + + + IM07 + InternalMessage7 + + + IM08 + InternalMessage8 + + + IM09 + InternalMessage9 + + + IM10 + InternalMessage10 + + + IM11 + InternalMessage11 + + + IM12 + InternalMessage12 + + + IM13 + InternalMessage13 + + + IM14 + InternalMessage14 + + + IM15 + InternalMessage15 + + + IM16 + InternalMessage16 + + + IM17 + InternalMessage17 + + + IM18 + InternalMessage18 + + + IM19 + InternalMessage19 + + + IM20 + InternalMessage20 + + + IM21 + InternalMessage21 + + + IM22 + InternalMessage22 + + + IM23 + InternalMessage23 + + + IM24 + InternalMessage24 + + + IM25 + InternalMessage25 + + + IM26 + InternalMessage26 + + + IM27 + InternalMessage27 + + + IM28 + InternalMessage28 + + + IM29 + InternalMessage29 + + + IM30 + InternalMessage30 + + + IM31 + InternalMessage31 + + + IM32 + InternalMessage32 + + + IM33 + InternalMessage33 + + + IM34 + InternalMessage34 + + + IM35 + InternalMessage35 + + + IM36 + InternalMessage36 + + + IM37 + InternalMessage37 + + + IM38 + InternalMessage38 + + + IM39 + InternalMessage39 + + + IM40 + InternalMessage40 + + + IM41 + InternalMessage41 + + + IM50 + InternalMessage50 + + + INCR + Increment + + + KILL + Kill + + + LOAD + Load + + + LOCK + Lock + + + NEXT + Next + + + OFF + Off + + + ON + On + + + OPEN + Open + + + PAUS + Pause + + + PLAY + Play + + + RCMT + RCMT + + + RMOV + RMOV + + + RSAN + RSAN + + + RSET + Reset + + + RSTP + RSTP + + + RSTS + ResetAndStart + + + SMAX + SetToMax + + + STOP + Stop + + + STPR + StopAndReset + + + STRT + Start + + + TCTV + ToggleActive + + + ULCK + Unlock + + + ULOD + Unload + + + XCLR + Clear + + + XDEL + Delete + + + ZERO + SetToZero + + + diff --git a/templates/DKCR/Structs/ActivationTime.xml b/templates/DKCR/Structs/ActivationTime.xml new file mode 100644 index 00000000..c5a4d066 --- /dev/null +++ b/templates/DKCR/Structs/ActivationTime.xml @@ -0,0 +1,25 @@ + + + + ActivationTime + true + + + Time + 0.0 + + + Unknown 1 + 0 + + + Unknown 2 + 0 + + + Unknown 3 + 0 + + + + diff --git a/templates/DKCR/Structs/ActorMultiKeyframeData.xml b/templates/DKCR/Structs/ActorMultiKeyframeData.xml new file mode 100644 index 00000000..cdbdb1e4 --- /dev/null +++ b/templates/DKCR/Structs/ActorMultiKeyframeData.xml @@ -0,0 +1,31 @@ + + + + ActorMultiKeyframeData + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/DKCR/Structs/AdditiveTouchAttackBehaviorData.xml b/templates/DKCR/Structs/AdditiveTouchAttackBehaviorData.xml new file mode 100644 index 00000000..ae2f23af --- /dev/null +++ b/templates/DKCR/Structs/AdditiveTouchAttackBehaviorData.xml @@ -0,0 +1,30 @@ + + + + AdditiveTouchAttackBehaviorData + + + + + + 0xB2A31497 + + + + + + + 0xBD71A966 + + + + + + + 0x81864B79 + + + + + + diff --git a/templates/DKCR/Structs/Animations.xml b/templates/DKCR/Structs/Animations.xml new file mode 100644 index 00000000..e2478eac --- /dev/null +++ b/templates/DKCR/Structs/Animations.xml @@ -0,0 +1,27 @@ + + + + Animations + + + 0 + + + + + + + + + + + + + + + + + + + + diff --git a/templates/DKCR/Structs/AreaAttackBehaviorData.xml b/templates/DKCR/Structs/AreaAttackBehaviorData.xml new file mode 100644 index 00000000..b672ae90 --- /dev/null +++ b/templates/DKCR/Structs/AreaAttackBehaviorData.xml @@ -0,0 +1,30 @@ + + + + AreaAttackBehaviorData + + + 0.0 + + + 0.0 + + + 0.0 + + + 3.0 + + + 3.0 + + + 0x648AAF79 + + + + + + + + diff --git a/templates/DKCR/Structs/AreaDamageData.xml b/templates/DKCR/Structs/AreaDamageData.xml new file mode 100644 index 00000000..b9f5c9ec --- /dev/null +++ b/templates/DKCR/Structs/AreaDamageData.xml @@ -0,0 +1,48 @@ + + + + AreaDamageData + + + 0.0 + + + 0.0 + + + 0.0 + + + 3.0 + + + 3.0 + + + 3.0 + + + 3.0 + + + 0.0 + + + false + + + true + + + 1 + + + 0xB41B960 + + + + + + + + diff --git a/templates/DKCR/Structs/BalloonBarrelData.xml b/templates/DKCR/Structs/BalloonBarrelData.xml new file mode 100644 index 00000000..2f46ed76 --- /dev/null +++ b/templates/DKCR/Structs/BalloonBarrelData.xml @@ -0,0 +1,89 @@ + + + + BalloonBarrelData + + + + + + 3.0 + + + 1.0 + + + 1.0 + + + 2.5 + + + 0.5 + + + 1.0 + + + 1.0 + + + 3.0 + + + 1.5 + + + 2.2 + + + 0.2 + + + 0.5 + + + 0.5 + + + + 2.0 + + + 1.0 + + + 3.0 + + + 15.0 + + + 10.0 + + + 0 + + + + PART + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + diff --git a/templates/DKCR/Structs/BalloonData.xml b/templates/DKCR/Structs/BalloonData.xml new file mode 100644 index 00000000..dc1fe169 --- /dev/null +++ b/templates/DKCR/Structs/BalloonData.xml @@ -0,0 +1,57 @@ + + + + BalloonData + + + + 0 + + + 10.0 + + + 3.0 + + + 3.0 + + + + 0.0 + 0.0 + -4.0 + + + + 15.0 + + + 1.0 + + + + PART + + + + + PART + + + + + CAUD + + + + + CAUD + + + + 1.0 + + + + diff --git a/templates/DKCR/Structs/BarrelCannonData.xml b/templates/DKCR/Structs/BarrelCannonData.xml new file mode 100644 index 00000000..9d2a68b0 --- /dev/null +++ b/templates/DKCR/Structs/BarrelCannonData.xml @@ -0,0 +1,83 @@ + + + + BarrelCannonData + + + 1.5 + + + 3.0 + + + 1.0 + + + false + + + 0x0 + + + 0.15000001 + + + 0x0 + + + 21.0 + + + 0.0 + + + 1.05 + + + 0.2 + + + 0 + + + true + + + true + + + true + + + true + + + false + + + true + + + true + + + false + + + false + + + false + + + false + + + 0xA61445EB + + + 0x9FA85 + + + + diff --git a/templates/DKCR/Structs/BehaviorData.xml b/templates/DKCR/Structs/BehaviorData.xml new file mode 100644 index 00000000..301ccc43 --- /dev/null +++ b/templates/DKCR/Structs/BehaviorData.xml @@ -0,0 +1,90 @@ + + + + BehaviorData + + + 0x26D0F77A + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/DKCR/Structs/BehaviorsData.xml b/templates/DKCR/Structs/BehaviorsData.xml new file mode 100644 index 00000000..70664de2 --- /dev/null +++ b/templates/DKCR/Structs/BehaviorsData.xml @@ -0,0 +1,45 @@ + + + + BehaviorsData + + + + + 0xCD3D7CB1 + + + + + + + 0xA819961D + + + + + + + 0xC58D26AF + + + + + + + 0xA177EB37 + + + + + + + 0xC53C3ED5 + + + + + + + + diff --git a/templates/DKCR/Structs/BirdBossData.xml b/templates/DKCR/Structs/BirdBossData.xml new file mode 100644 index 00000000..71a1cb22 --- /dev/null +++ b/templates/DKCR/Structs/BirdBossData.xml @@ -0,0 +1,65 @@ + + + + BirdBossData + + + true + + + 4.0 + + + 55.0 + + + 10.0 + + + 6.0 + + + + 7.0 + + + 10.0 + + + 14.0 + + + 17.0 + + + 0.0 + + + 2.0 + + + -5.0 + + + -20.0 + + + 10.0 + + + 4.0 + + + 2.0 + + + + + + + + + + + + diff --git a/templates/DKCR/Structs/BopJumpBehaviorData.xml b/templates/DKCR/Structs/BopJumpBehaviorData.xml new file mode 100644 index 00000000..510f1982 --- /dev/null +++ b/templates/DKCR/Structs/BopJumpBehaviorData.xml @@ -0,0 +1,72 @@ + + + + BopJumpBehaviorData + + + 0x779C23E7 + + + + + + + + 2 + + + + + + 2.0 + + + 1.0 + + + + + + + + 1.0 + + + false + + + true + + + 0xA09C5814 + + + + + + + + + false + + + false + + + true + + + 3.0 + + + 0.0 + + + 10.0 + + + 5.0 + + + + diff --git a/templates/DKCR/Structs/BopJumpData.xml b/templates/DKCR/Structs/BopJumpData.xml new file mode 100644 index 00000000..07c17440 --- /dev/null +++ b/templates/DKCR/Structs/BopJumpData.xml @@ -0,0 +1,17 @@ + + + + BopJumpData + + + 1.0 + + + 0.5 + + + 1 + + + + diff --git a/templates/DKCR/Structs/BossHUD.xml b/templates/DKCR/Structs/BossHUD.xml new file mode 100644 index 00000000..8562f489 --- /dev/null +++ b/templates/DKCR/Structs/BossHUD.xml @@ -0,0 +1,13 @@ + + + + BossHUD + + + + FRME + + + + + diff --git a/templates/DKCR/Structs/BouncyTireData.xml b/templates/DKCR/Structs/BouncyTireData.xml new file mode 100644 index 00000000..d95e949e --- /dev/null +++ b/templates/DKCR/Structs/BouncyTireData.xml @@ -0,0 +1,80 @@ + + + + BouncyTireData + + + + -1 + + + -1 + + + -1 + + + -1 + + + 3.1401999 + + + + + 9.0 + + + 80.0 + + + 5.0 + + + 45.0 + + + + CAUD + + + + + CAUD + + + + + DCLN + + + + true + + + false + + + false + + + false + + + true + + + 0.0 + + + 0.0 + + + 2.0 + + + 2.0 + + + + diff --git a/templates/DKCR/Structs/BouncyTireJumpHeights.xml b/templates/DKCR/Structs/BouncyTireJumpHeights.xml new file mode 100644 index 00000000..fa42b57b --- /dev/null +++ b/templates/DKCR/Structs/BouncyTireJumpHeights.xml @@ -0,0 +1,14 @@ + + + + BouncyTireJumpHeights + + + 4.6402001 + + + 7.6402001 + + + + diff --git a/templates/DKCR/Structs/CableProperties.xml b/templates/DKCR/Structs/CableProperties.xml new file mode 100644 index 00000000..199f89b6 --- /dev/null +++ b/templates/DKCR/Structs/CableProperties.xml @@ -0,0 +1,83 @@ + + + + CableProperties + + + + SWHC + + + + 0x2C8482EE + + + + + + + + 0xD6629DCA + + + + + + + 0xB9B7640F + + + + + + + + false + + + 10 + + + 4.0 + + + 4.0 + + + 0x80DD21B4 + + + 0x23363FD3 + + + 0x24CF38F1 + + + 1.0 + + + false + + + false + + + + 0.0 + + + 15.0 + + + 0.0167 + + + 0x23363FD3 + + + + + + + + diff --git a/templates/DKCR/Structs/CameraClip.xml b/templates/DKCR/Structs/CameraClip.xml new file mode 100644 index 00000000..349a33f4 --- /dev/null +++ b/templates/DKCR/Structs/CameraClip.xml @@ -0,0 +1,14 @@ + + + + CameraClip + + + 0.2 + + + 750.0 + + + + diff --git a/templates/DKCR/Structs/CameraConstraints.xml b/templates/DKCR/Structs/CameraConstraints.xml new file mode 100644 index 00000000..9a94a819 --- /dev/null +++ b/templates/DKCR/Structs/CameraConstraints.xml @@ -0,0 +1,12 @@ + + + + CameraConstraints + + + Always + 1 + + + + diff --git a/templates/DKCR/Structs/CameraFieldOfView.xml b/templates/DKCR/Structs/CameraFieldOfView.xml new file mode 100644 index 00000000..2c3b6d82 --- /dev/null +++ b/templates/DKCR/Structs/CameraFieldOfView.xml @@ -0,0 +1,33 @@ + + + + CameraFieldOfView + + + 0xA93DE248 + + + + + + + + Always + 0 + + + 0xD2CFE11 + + + + + + + + 60.0 + + + + + + diff --git a/templates/DKCR/Structs/CameraFraming.xml b/templates/DKCR/Structs/CameraFraming.xml new file mode 100644 index 00000000..1479ea8d --- /dev/null +++ b/templates/DKCR/Structs/CameraFraming.xml @@ -0,0 +1,10 @@ + + + + CameraFraming + + + + + + diff --git a/templates/DKCR/Structs/CameraManagerData.xml b/templates/DKCR/Structs/CameraManagerData.xml new file mode 100644 index 00000000..dc7658e0 --- /dev/null +++ b/templates/DKCR/Structs/CameraManagerData.xml @@ -0,0 +1,11 @@ + + + + CameraManagerData + + + false + + + + diff --git a/templates/DKCR/Structs/CameraMotion.xml b/templates/DKCR/Structs/CameraMotion.xml new file mode 100644 index 00000000..aa7ee223 --- /dev/null +++ b/templates/DKCR/Structs/CameraMotion.xml @@ -0,0 +1,17 @@ + + + + CameraMotion + + + 0x34FBB53B + + + + + + + + + + diff --git a/templates/DKCR/Structs/CameraNavigation.xml b/templates/DKCR/Structs/CameraNavigation.xml new file mode 100644 index 00000000..11d16444 --- /dev/null +++ b/templates/DKCR/Structs/CameraNavigation.xml @@ -0,0 +1,12 @@ + + + + CameraNavigation + + + Always + 0 + + + + diff --git a/templates/DKCR/Structs/CameraRotation.xml b/templates/DKCR/Structs/CameraRotation.xml new file mode 100644 index 00000000..cfc91829 --- /dev/null +++ b/templates/DKCR/Structs/CameraRotation.xml @@ -0,0 +1,9 @@ + + + + CameraRotation + + + + + diff --git a/templates/DKCR/Structs/CameraShakerData.xml b/templates/DKCR/Structs/CameraShakerData.xml new file mode 100644 index 00000000..fcf2772a --- /dev/null +++ b/templates/DKCR/Structs/CameraShakerData.xml @@ -0,0 +1,22 @@ + + + + CameraShakerData + + + Always + 528 + + + 5.0 + + + 1.0 + + + + + + + + diff --git a/templates/DKCR/Structs/CameraTracking.xml b/templates/DKCR/Structs/CameraTracking.xml new file mode 100644 index 00000000..89dc845b --- /dev/null +++ b/templates/DKCR/Structs/CameraTracking.xml @@ -0,0 +1,36 @@ + + + + CameraTracking + + + 0x62C2ABD5 + + + + + + + 0xAF3945DE + + + + + + + + + false + + + false + + + false + + + false + + + + diff --git a/templates/DKCR/Structs/CharacterGlueData.xml b/templates/DKCR/Structs/CharacterGlueData.xml new file mode 100644 index 00000000..b24d7e46 --- /dev/null +++ b/templates/DKCR/Structs/CharacterGlueData.xml @@ -0,0 +1,19 @@ + + + + CharacterGlueData + + + 0xD4E949F7 + + + + + + + + + + + + diff --git a/templates/DKCR/Structs/CheckpointData.xml b/templates/DKCR/Structs/CheckpointData.xml new file mode 100644 index 00000000..15f423ec --- /dev/null +++ b/templates/DKCR/Structs/CheckpointData.xml @@ -0,0 +1,24 @@ + + + + CheckpointData + + + true + + + false + + + Always + 0 + + + 3.0 + + + true + + + + diff --git a/templates/DKCR/Structs/ClingPathControlData.xml b/templates/DKCR/Structs/ClingPathControlData.xml new file mode 100644 index 00000000..932a5033 --- /dev/null +++ b/templates/DKCR/Structs/ClingPathControlData.xml @@ -0,0 +1,29 @@ + + + + ClingPathControlData + + + + + 0xF0F41378 + + + + + false + + + 0.0 + + + 0x2AEDDF04 + + + + + + + + + diff --git a/templates/DKCR/Structs/CollisionActorModifierData.xml b/templates/DKCR/Structs/CollisionActorModifierData.xml new file mode 100644 index 00000000..cf462747 --- /dev/null +++ b/templates/DKCR/Structs/CollisionActorModifierData.xml @@ -0,0 +1,16 @@ + + + + CollisionActorModifierData + + + 0 + + + + + + + + + diff --git a/templates/DKCR/Structs/Connection.xml b/templates/DKCR/Structs/Connection.xml new file mode 100644 index 00000000..23290e75 --- /dev/null +++ b/templates/DKCR/Structs/Connection.xml @@ -0,0 +1,17 @@ + + + + Connection + true + + + Connection Index + 0 + + + Activation Times + + + + + diff --git a/templates/DKCR/Structs/CounterConditions.xml b/templates/DKCR/Structs/CounterConditions.xml new file mode 100644 index 00000000..75012a5c --- /dev/null +++ b/templates/DKCR/Structs/CounterConditions.xml @@ -0,0 +1,38 @@ + + + + CounterConditions + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + 10 + + + + diff --git a/templates/DKCR/Structs/CreditsData.xml b/templates/DKCR/Structs/CreditsData.xml new file mode 100644 index 00000000..04225ba6 --- /dev/null +++ b/templates/DKCR/Structs/CreditsData.xml @@ -0,0 +1,77 @@ + + + + CreditsData + + + 180.0 + + + 4 + + + 0.25 + + + 0.25 + + + 1.0 + + + 2.0 + + + 1.0 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + + + + + + + + + 4.0 + + + 0.25 + + + 0.25 + + + + + STRG + + + + + STRG + + + + + STRG + + + + 0.25 + + + + diff --git a/templates/DKCR/Structs/DKBarrelGlueData.xml b/templates/DKCR/Structs/DKBarrelGlueData.xml new file mode 100644 index 00000000..d6f992bd --- /dev/null +++ b/templates/DKCR/Structs/DKBarrelGlueData.xml @@ -0,0 +1,33 @@ + + + + DKBarrelGlueData + + + -1 + + + -1 + + + + CAUD + + + + + CAUD + + + + 0.0 + + + 0.0 + + + 0.0 + + + + diff --git a/templates/DKCR/Structs/DamagedBehaviorData.xml b/templates/DKCR/Structs/DamagedBehaviorData.xml new file mode 100644 index 00000000..825742fa --- /dev/null +++ b/templates/DKCR/Structs/DamagedBehaviorData.xml @@ -0,0 +1,37 @@ + + + + DamagedBehaviorData + + + 0xD47E7961 + + + + + + + + false + + + true + + + false + + + false + + + true + + + false + + + true + + + + diff --git a/templates/DKCR/Structs/DashModifierData.xml b/templates/DKCR/Structs/DashModifierData.xml new file mode 100644 index 00000000..00508113 --- /dev/null +++ b/templates/DKCR/Structs/DashModifierData.xml @@ -0,0 +1,11 @@ + + + + DashModifierData + + + 0.0 + + + + diff --git a/templates/DKCR/Structs/Data.xml b/templates/DKCR/Structs/Data.xml new file mode 100644 index 00000000..bdfe2424 --- /dev/null +++ b/templates/DKCR/Structs/Data.xml @@ -0,0 +1,54 @@ + + + + Data + + + + + 0x6AD40029 + + + + + + + 0xE08296BA + + + + + 1.0 + + + 0.1 + + + 0.1 + + + false + + + false + + + false + + + 0.0 + + + 100 + + + + + + + CAUD + + + + + diff --git a/templates/DKCR/Structs/DebrisProperties.xml b/templates/DKCR/Structs/DebrisProperties.xml new file mode 100644 index 00000000..f3a21ad4 --- /dev/null +++ b/templates/DKCR/Structs/DebrisProperties.xml @@ -0,0 +1,274 @@ + + + + DebrisProperties + + + 180.0 + + + 180.0 + + + + 0.0 + 0.0 + 1.0 + + + + + 0.0 + 0.0 + 0.0 + + + + true + + + 5.0 + + + 15.0 + + + + -1.0 + -1.0 + -1.0 + + + + + 1.0 + 1.0 + 1.0 + + + + 2.0 + + + 3.0 + + + 0.0 + + + 10.0 + + + 80.0 + + + + 1.0 + 1.0 + 1.0 +
0.0 + + + + + 1.0 + 1.0 + 1.0 + + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + false + + + false + + + 80.0 + + + + 1.0 + 1.0 + 1.0 + + + + 0.375 + + + 0.1 + + + 25.0 + + + 1.0 + + + + CMDL + + + + + 0.0 + 0.0 + 0.0 + + + + + CAUD + + + + + CAUD + + + + 1 + + + 1.0 + + + 1.0 + + + 0.1 + + + 0.1 + + + 0.1 + + + 0.1 + + + 0.1 + + + + PART + + + + + 1.0 + 1.0 + 1.0 + + + + false + + + false + + + true + + + + + PART + + + + + 1.0 + 1.0 + 1.0 + + + + false + + + false + + + true + + + + + PART + + + + + 1.0 + 1.0 + 1.0 + + + + + true + + + true + + + false + + + false + + + 0 + + + false + + + false + + + 1.0 + + + 1.0 + + + false + + + true + + + false + + + false + + + false + + + true + + + false + + + true + + + false + + + + diff --git a/templates/DKCR/Structs/DespawnRules.xml b/templates/DKCR/Structs/DespawnRules.xml new file mode 100644 index 00000000..6fa30bca --- /dev/null +++ b/templates/DKCR/Structs/DespawnRules.xml @@ -0,0 +1,68 @@ + + + + DespawnRules + + + true + + + false + + + true + + + true + + + true + + + false + + + true + + + false + + + 0xA5993091 + + + + + + + + 10.0 + + + 15.0 + + + 25.0 + + + 5.0 + + + false + + + 0.0 + + + 0.0 + + + false + + + Always + 4.0 + + + + diff --git a/templates/DKCR/Structs/DrivenIntoGroundBehaviorData.xml b/templates/DKCR/Structs/DrivenIntoGroundBehaviorData.xml new file mode 100644 index 00000000..de3953ec --- /dev/null +++ b/templates/DKCR/Structs/DrivenIntoGroundBehaviorData.xml @@ -0,0 +1,11 @@ + + + + DrivenIntoGroundBehaviorData + + + false + + + + diff --git a/templates/DKCR/Structs/DynamicLightFalloff.xml b/templates/DKCR/Structs/DynamicLightFalloff.xml new file mode 100644 index 00000000..a6c840b6 --- /dev/null +++ b/templates/DKCR/Structs/DynamicLightFalloff.xml @@ -0,0 +1,18 @@ + + + + DynamicLightFalloff + + + 0 + + + + 0.0 + + + false + + + + diff --git a/templates/DKCR/Structs/DynamicLightIntensity.xml b/templates/DKCR/Structs/DynamicLightIntensity.xml new file mode 100644 index 00000000..df508dab --- /dev/null +++ b/templates/DKCR/Structs/DynamicLightIntensity.xml @@ -0,0 +1,15 @@ + + + + DynamicLightIntensity + + + + 0.0 + + + false + + + + diff --git a/templates/DKCR/Structs/DynamicLightMotionSpline.xml b/templates/DKCR/Structs/DynamicLightMotionSpline.xml new file mode 100644 index 00000000..35bd5529 --- /dev/null +++ b/templates/DKCR/Structs/DynamicLightMotionSpline.xml @@ -0,0 +1,16 @@ + + + + DynamicLightMotionSpline + + + false + + + + + 10.0 + + + + diff --git a/templates/DKCR/Structs/DynamicLightParent.xml b/templates/DKCR/Structs/DynamicLightParent.xml new file mode 100644 index 00000000..f22f003e --- /dev/null +++ b/templates/DKCR/Structs/DynamicLightParent.xml @@ -0,0 +1,26 @@ + + + + DynamicLightParent + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + false + + + + diff --git a/templates/DKCR/Structs/DynamicLightSpotlight.xml b/templates/DKCR/Structs/DynamicLightSpotlight.xml new file mode 100644 index 00000000..946e30da --- /dev/null +++ b/templates/DKCR/Structs/DynamicLightSpotlight.xml @@ -0,0 +1,15 @@ + + + + DynamicLightSpotlight + + + + 0.0 + + + false + + + + diff --git a/templates/DKCR/Structs/FixedDelayRules.xml b/templates/DKCR/Structs/FixedDelayRules.xml new file mode 100644 index 00000000..8ce11f46 --- /dev/null +++ b/templates/DKCR/Structs/FixedDelayRules.xml @@ -0,0 +1,26 @@ + + + + FixedDelayRules + + + 0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + diff --git a/templates/DKCR/Structs/FleeBehaviorData.xml b/templates/DKCR/Structs/FleeBehaviorData.xml new file mode 100644 index 00000000..ab9e263a --- /dev/null +++ b/templates/DKCR/Structs/FleeBehaviorData.xml @@ -0,0 +1,17 @@ + + + + FleeBehaviorData + + + false + + + true + + + 1.0 + + + + diff --git a/templates/DKCR/Structs/FollowPathControlBehaviorData.xml b/templates/DKCR/Structs/FollowPathControlBehaviorData.xml new file mode 100644 index 00000000..8cc3718b --- /dev/null +++ b/templates/DKCR/Structs/FollowPathControlBehaviorData.xml @@ -0,0 +1,11 @@ + + + + FollowPathControlBehaviorData + + + false + + + + diff --git a/templates/DKCR/Structs/FollowSurfaceBehaviorData.xml b/templates/DKCR/Structs/FollowSurfaceBehaviorData.xml new file mode 100644 index 00000000..9a9899cf --- /dev/null +++ b/templates/DKCR/Structs/FollowSurfaceBehaviorData.xml @@ -0,0 +1,37 @@ + + + + FollowSurfaceBehaviorData + + + 0.1 + + + 0.0 + + + false + + + false + + + false + + + 0.80000001 + + + + RULE + + + + false + + + 1.0 + + + + diff --git a/templates/DKCR/Structs/FollowWaypointsBehaviorData.xml b/templates/DKCR/Structs/FollowWaypointsBehaviorData.xml new file mode 100644 index 00000000..e02dbca9 --- /dev/null +++ b/templates/DKCR/Structs/FollowWaypointsBehaviorData.xml @@ -0,0 +1,11 @@ + + + + FollowWaypointsBehaviorData + + + 720.0 + + + + diff --git a/templates/DKCR/Structs/FramingRules.xml b/templates/DKCR/Structs/FramingRules.xml new file mode 100644 index 00000000..5c1e5368 --- /dev/null +++ b/templates/DKCR/Structs/FramingRules.xml @@ -0,0 +1,20 @@ + + + + FramingRules + + + false + + + true + + + 2.0 + + + false + + + + diff --git a/templates/DKCR/Structs/GeneratedObjectDeleterProperties.xml b/templates/DKCR/Structs/GeneratedObjectDeleterProperties.xml new file mode 100644 index 00000000..38232bb2 --- /dev/null +++ b/templates/DKCR/Structs/GeneratedObjectDeleterProperties.xml @@ -0,0 +1,11 @@ + + + + GeneratedObjectDeleterProperties + + + true + + + + diff --git a/templates/DKCR/Structs/GenericCreatureData.xml b/templates/DKCR/Structs/GenericCreatureData.xml new file mode 100644 index 00000000..6810ba9b --- /dev/null +++ b/templates/DKCR/Structs/GenericCreatureData.xml @@ -0,0 +1,185 @@ + + + + GenericCreatureData + + + 0xDDB5F41 + + + + + + + + + + RULE + + + + 0.1 + + + false + + + false + + + false + + + false + + + 0.0 + + + 0.0 + + + 1.0 + + + false + + + 55.0 + + + true + + + false + + + false + + + false + + + 60.0 + + + 720.0 + + + 2.0 + + + 9.0 + + + 1.5 + + + 0.75 + + + 6 + + + true + + + false + + + 0.0 + + + 0 + + + 0 + + + false + + + true + + + false + + + false + + + false + + + 0x935593F7 + + + + + + + + false + + + false + + + false + + + false + + + false + + + 0.5 + + + + PART + + + + true + + + false + + + 1.0 + + + false + + + true + + + false + + + + + + + + + + + + + false + + + + false + + + false + + + + + diff --git a/templates/DKCR/Structs/GrabPlayerBehaviorData.xml b/templates/DKCR/Structs/GrabPlayerBehaviorData.xml new file mode 100644 index 00000000..51b48ce8 --- /dev/null +++ b/templates/DKCR/Structs/GrabPlayerBehaviorData.xml @@ -0,0 +1,61 @@ + + + + GrabPlayerBehaviorData + + + 0xEACD24F9 + + + + + + + + 3.0 + + + false + + + 0.375 + + + 1.0 + + + 1.0 + + + 0.2 + + + 12.0 + + + 0.5 + + + 0.30000001 + + + 0.0 + + + 6.0 + + + 3.0 + + + 2.0 + + + 1.0 + + + 4.0 + + + + diff --git a/templates/DKCR/Structs/GrabbedBehaviorData.xml b/templates/DKCR/Structs/GrabbedBehaviorData.xml new file mode 100644 index 00000000..618ed32b --- /dev/null +++ b/templates/DKCR/Structs/GrabbedBehaviorData.xml @@ -0,0 +1,228 @@ + + + + GrabbedBehaviorData + + + false + + + false + + + true + + + false + + + false + + + false + + + false + + + true + + + false + + + false + + + false + + + false + + + true + + + true + + + true + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + true + + + false + + + 0.0 + + + 0.0 + + + 0.0 + + + false + + + false + + + 0.0 + + + + 1.0 + 0.0 + 0.0 + + + + false + + + 1.0 + + + 1.0 + + + 0.0 + + + false + + + true + + + true + + + false + + + false + + + 0.0 + + + true + + + false + + + 0.5 + + + 1.0 + + + 1.0 + + + 1.0 + + + 0.0 + + + 6.0 + + + 0.5 + + + 10.0 + + + false + + + 3.0 + + + + 1.0 + 1.0 + 1.0 + + + + + PART + + + + + PART + + + + + + PART + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + diff --git a/templates/DKCR/Structs/GroundPoundDetectorData.xml b/templates/DKCR/Structs/GroundPoundDetectorData.xml new file mode 100644 index 00000000..a1f37546 --- /dev/null +++ b/templates/DKCR/Structs/GroundPoundDetectorData.xml @@ -0,0 +1,37 @@ + + + + GroundPoundDetectorData + + + false + + + + + 0.0 + 0.0 + 0.0 + + + + 5.0 + + + 5.0 + + + false + + + false + + + false + + + false + + + + diff --git a/templates/DKCR/Structs/Groups.xml b/templates/DKCR/Structs/Groups.xml new file mode 100644 index 00000000..234813e7 --- /dev/null +++ b/templates/DKCR/Structs/Groups.xml @@ -0,0 +1,19 @@ + + + + Groups + + + 0 + + + + + + + + + + + + diff --git a/templates/DKCR/Structs/HurlHeightRules.xml b/templates/DKCR/Structs/HurlHeightRules.xml new file mode 100644 index 00000000..32d7c693 --- /dev/null +++ b/templates/DKCR/Structs/HurlHeightRules.xml @@ -0,0 +1,26 @@ + + + + HurlHeightRules + + + 0 + + + 1.0 + + + 2.0 + + + 3.0 + + + 4.0 + + + 5.0 + + + + diff --git a/templates/DKCR/Structs/IdleBehaviorData.xml b/templates/DKCR/Structs/IdleBehaviorData.xml new file mode 100644 index 00000000..dd860a0f --- /dev/null +++ b/templates/DKCR/Structs/IdleBehaviorData.xml @@ -0,0 +1,31 @@ + + + + IdleBehaviorData + + + 0x957B3EDC + + + + + + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + true + + + + diff --git a/templates/DKCR/Structs/KongData.xml b/templates/DKCR/Structs/KongData.xml new file mode 100644 index 00000000..b390a8fc --- /dev/null +++ b/templates/DKCR/Structs/KongData.xml @@ -0,0 +1,43 @@ + + + + KongData + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/DKCR/Structs/KongGrabData.xml b/templates/DKCR/Structs/KongGrabData.xml new file mode 100644 index 00000000..3e594016 --- /dev/null +++ b/templates/DKCR/Structs/KongGrabData.xml @@ -0,0 +1,45 @@ + + + + KongGrabData + + + + 0.5 + 2.25 + 1.25 + + + + + 0.5 + 2.25 + 2.5 + + + + + 3.0 + 1.9 + 1.25 + + + + -0.60000002 + + + + 0.0 + 25.0 + 5.0 + + + + + + + false + + + + diff --git a/templates/DKCR/Structs/KongGroundPoundData.xml b/templates/DKCR/Structs/KongGroundPoundData.xml new file mode 100644 index 00000000..a56badbd --- /dev/null +++ b/templates/DKCR/Structs/KongGroundPoundData.xml @@ -0,0 +1,27 @@ + + + + KongGroundPoundData + + + + 30.0 + 30.0 + 30.0 + + + + 0.1 + + + 1.0 + + + 1.0 + + + 0.5 + + + + diff --git a/templates/DKCR/Structs/KongProxyData.xml b/templates/DKCR/Structs/KongProxyData.xml new file mode 100644 index 00000000..eec59bc1 --- /dev/null +++ b/templates/DKCR/Structs/KongProxyData.xml @@ -0,0 +1,41 @@ + + + + KongProxyData + + + false + + + false + + + Always + 0 + + + Always + 0 + + + 0.5 + + + 1.0 + + + 9.0 + + + 20.0 + + + + 32.0 + 12.0 + 24.0 + + + + + diff --git a/templates/DKCR/Structs/KongRunningSlapData.xml b/templates/DKCR/Structs/KongRunningSlapData.xml new file mode 100644 index 00000000..e0409c45 --- /dev/null +++ b/templates/DKCR/Structs/KongRunningSlapData.xml @@ -0,0 +1,57 @@ + + + + KongRunningSlapData + + + + 30.0 + 30.0 + 30.0 + + + + 0.25 + + + 0.125 + + + 2.0 + + + 2.0 + + + 4.5999999 + + + + 0.5 + + + 6.0 + + + 1.5 + + + 1.0 + + + 0.1 + + + 0.5 + + + 0.40000001 + + + + CAUD + + + + + diff --git a/templates/DKCR/Structs/KongSlideData.xml b/templates/DKCR/Structs/KongSlideData.xml new file mode 100644 index 00000000..f8b618d6 --- /dev/null +++ b/templates/DKCR/Structs/KongSlideData.xml @@ -0,0 +1,68 @@ + + + + KongSlideData + + + 20.0 + + + 70.0 + + + 54.0 + + + 20.0 + + + 4.0 + + + 4.0 + + + 7.0 + + + 15.0 + + + 40.0 + + + 40.0 + + + 20.0 + + + 0.1 + + + + CAUD + + + + 0.5 + + + + + + 0 + + + + + + + + + + + + + + diff --git a/templates/DKCR/Structs/KongStalledDescentData.xml b/templates/DKCR/Structs/KongStalledDescentData.xml new file mode 100644 index 00000000..261291b9 --- /dev/null +++ b/templates/DKCR/Structs/KongStalledDescentData.xml @@ -0,0 +1,44 @@ + + + + KongStalledDescentData + + + 3.0 + + + 0.34999999 + + + 1.25 + + + 2.5 + + + + PART + + + + + PART + + + + + PART + + + + + + CAUD + + + + + + + + diff --git a/templates/DKCR/Structs/KongSwingData.xml b/templates/DKCR/Structs/KongSwingData.xml new file mode 100644 index 00000000..122b7e8b --- /dev/null +++ b/templates/DKCR/Structs/KongSwingData.xml @@ -0,0 +1,83 @@ + + + + KongSwingData + + + 10.0 + + + 0.1 + + + 30.0 + + + 1.0 + + + 3.0 + + + 0.1 + + + 7.0 + + + 3.0 + + + 0.5 + + + 3.0 + + + 10.0 + + + 1.1 + + + 4.0 + + + 20.0 + + + 4.0 + + + 20.0 + + + 4.0 + + + 0.0 + + + 2.0 + + + 0.2 + + + 1.0 + + + 5.0 + + + 6.0 + + + 9.0 + + + 6.0 + + + + diff --git a/templates/DKCR/Structs/LocomotionContextEnum.xml b/templates/DKCR/Structs/LocomotionContextEnum.xml new file mode 100644 index 00000000..ded8774f --- /dev/null +++ b/templates/DKCR/Structs/LocomotionContextEnum.xml @@ -0,0 +1,17 @@ + + + + LocomotionContextEnum + + + 0x489196E8 + + + + + + + + + + diff --git a/templates/DKCR/Structs/MaterialSoundPair.xml b/templates/DKCR/Structs/MaterialSoundPair.xml new file mode 100644 index 00000000..aefaff34 --- /dev/null +++ b/templates/DKCR/Structs/MaterialSoundPair.xml @@ -0,0 +1,14 @@ + + + + MaterialSoundPair + + + + + CAUD + + + + + diff --git a/templates/DKCR/Structs/MaterialType.xml b/templates/DKCR/Structs/MaterialType.xml new file mode 100644 index 00000000..24b19bd7 --- /dev/null +++ b/templates/DKCR/Structs/MaterialType.xml @@ -0,0 +1,11 @@ + + + + MaterialType + + + 0xD086634A + + + + diff --git a/templates/DKCR/Structs/MineCartData.xml b/templates/DKCR/Structs/MineCartData.xml new file mode 100644 index 00000000..8269ef57 --- /dev/null +++ b/templates/DKCR/Structs/MineCartData.xml @@ -0,0 +1,149 @@ + + + + MineCartData + + + 2.0 + + + 0.69999999 + + + 1.2 + + + 20.0 + + + 30.0 + + + 30.0 + + + 0.5 + + + 0.0 + + + 14.0 + + + 40.0 + + + true + + + false + + + true + + + true + + + true + + + false + + + true + + + true + + + 35.0 + + + 35.0 + + + 35.0 + + + false + + + 0.2 + + + 3.0 + + + 15.0 + + + true + + + + CAUD + + + + + + + + CAUD + + + + + + + + CAUD + + + + + CAUD + + + + 0 + + + + + + + + + 30.0 + + + 6.0 + + + -6.0 + + + 0.66000003 + + + 20.0 + + + 16.5 + + + + 15.0 + 0.0 + 6.0 + + + + 0.0 + + + + diff --git a/templates/DKCR/Structs/MineCartMaterialSounds.xml b/templates/DKCR/Structs/MineCartMaterialSounds.xml new file mode 100644 index 00000000..dafd9a63 --- /dev/null +++ b/templates/DKCR/Structs/MineCartMaterialSounds.xml @@ -0,0 +1,35 @@ + + + + MineCartMaterialSounds + + + + + CAUD + + + + + + + + CAUD + + + + + + + + CAUD + + + + + CAUD + + + + + diff --git a/templates/DKCR/Structs/ModifyContactRuleData.xml b/templates/DKCR/Structs/ModifyContactRuleData.xml new file mode 100644 index 00000000..7e06dea6 --- /dev/null +++ b/templates/DKCR/Structs/ModifyContactRuleData.xml @@ -0,0 +1,32 @@ + + + + ModifyContactRuleData + + + 0 + + + + RULE + + + + + RULE + + + + + RULE + + + + + RULE + + + + + + diff --git a/templates/DKCR/Structs/MultiModelInformation.xml b/templates/DKCR/Structs/MultiModelInformation.xml new file mode 100644 index 00000000..ce5339ba --- /dev/null +++ b/templates/DKCR/Structs/MultiModelInformation.xml @@ -0,0 +1,26 @@ + + + + MultiModelInformation + + + 0 + + + false + + + 0.0 + + + + + + + + + + + + + diff --git a/templates/DKCR/Structs/NonSlowdown.xml b/templates/DKCR/Structs/NonSlowdown.xml new file mode 100644 index 00000000..23b749d4 --- /dev/null +++ b/templates/DKCR/Structs/NonSlowdown.xml @@ -0,0 +1,15 @@ + + + + NonSlowdown + + + + + 0x8C1B1D20 + + + + + + diff --git a/templates/DKCR/Structs/OceanBridgeData.xml b/templates/DKCR/Structs/OceanBridgeData.xml new file mode 100644 index 00000000..52e9ec4d --- /dev/null +++ b/templates/DKCR/Structs/OceanBridgeData.xml @@ -0,0 +1,274 @@ + + + + OceanBridgeData + + + 0 + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + + + + -0.1 + + + 0.25 + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + 4 + + + 0.050000001 + + + 12.0 + + + 0.75 + + + 2.5 + + + 0.5 + + + 7.0 + + + 7.0 + + + false + + + true + + + true + + + 0.1 + + + 10.0 + + + 2 + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.0 + + + + CAUD + + + + + CAUD + + + + + + CAUD + + + + + CAUD + + + + + + CAUD + + + + + CAUD + + + + + + CAUD + + + + + CAUD + + + + + + CAUD + + + + + CAUD + + + + + + + + + + + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + diff --git a/templates/DKCR/Structs/OffsetPosition.xml b/templates/DKCR/Structs/OffsetPosition.xml new file mode 100644 index 00000000..772481f3 --- /dev/null +++ b/templates/DKCR/Structs/OffsetPosition.xml @@ -0,0 +1,19 @@ + + + + OffsetPosition + + + 0x95BBB57E + + + + + + + + + + + + diff --git a/templates/DKCR/Structs/OffsetSplines.xml b/templates/DKCR/Structs/OffsetSplines.xml new file mode 100644 index 00000000..ca2c2061 --- /dev/null +++ b/templates/DKCR/Structs/OffsetSplines.xml @@ -0,0 +1,14 @@ + + + + OffsetSplines + + + false + + + + + + + diff --git a/templates/DKCR/Structs/OneShotBehaviorData.xml b/templates/DKCR/Structs/OneShotBehaviorData.xml new file mode 100644 index 00000000..c007c414 --- /dev/null +++ b/templates/DKCR/Structs/OneShotBehaviorData.xml @@ -0,0 +1,26 @@ + + + + OneShotBehaviorData + + + 1.0 + + + true + + + 1.0 + + + 0 + + + -1 + + + -1 + + + + diff --git a/templates/DKCR/Structs/OptionalAreaAssetTypes.xml b/templates/DKCR/Structs/OptionalAreaAssetTypes.xml new file mode 100644 index 00000000..6272f3b1 --- /dev/null +++ b/templates/DKCR/Structs/OptionalAreaAssetTypes.xml @@ -0,0 +1,11 @@ + + + + OptionalAreaAssetTypes + + + 0 + + + + diff --git a/templates/DKCR/Structs/PIDConvergence.xml b/templates/DKCR/Structs/PIDConvergence.xml new file mode 100644 index 00000000..c8deed22 --- /dev/null +++ b/templates/DKCR/Structs/PIDConvergence.xml @@ -0,0 +1,27 @@ + + + + PIDConvergence + + + 0x5A778792 + + + + + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + diff --git a/templates/DKCR/Structs/PathDeterminationMethodType.xml b/templates/DKCR/Structs/PathDeterminationMethodType.xml new file mode 100644 index 00000000..86e9c9e6 --- /dev/null +++ b/templates/DKCR/Structs/PathDeterminationMethodType.xml @@ -0,0 +1,18 @@ + + + + PathDeterminationMethodType + + + 0x15F0534B + + + + + + + + + + + diff --git a/templates/DKCR/Structs/PathPosition.xml b/templates/DKCR/Structs/PathPosition.xml new file mode 100644 index 00000000..7045154f --- /dev/null +++ b/templates/DKCR/Structs/PathPosition.xml @@ -0,0 +1,33 @@ + + + + PathPosition + + + Always + 0 + + + 0xD25FBD92 + + + + + + + + + + + 4.0 + + + 3.0 + + + + + + + + diff --git a/templates/DKCR/Structs/PatternedAITypedef.xml b/templates/DKCR/Structs/PatternedAITypedef.xml new file mode 100644 index 00000000..3724b0af --- /dev/null +++ b/templates/DKCR/Structs/PatternedAITypedef.xml @@ -0,0 +1,103 @@ + + + + PatternedAITypedef + + + 150.0 + + + + + 2.0 + + + + 1.0 + + + 2.0 + + + + 0.0 + 0.0 + 0.0 + + + + 0.1 + + + 0.16 + + + + + FSMC + + + + + FSMC + + + + 0 + + + 5.0 + + + false + + + + PART + + + + + CAUD + + + + + true + + + 5.0 + + + 1.0 + + + 120.0 + + + true + + + 100.0 + + + 0.0 + + + 60.0 + + + 6.0 + + + 11.0 + + + 2.0 + + + 1.0 + + + + diff --git a/templates/DKCR/Structs/PauseHUD.xml b/templates/DKCR/Structs/PauseHUD.xml new file mode 100644 index 00000000..60b4fe7d --- /dev/null +++ b/templates/DKCR/Structs/PauseHUD.xml @@ -0,0 +1,12 @@ + + + + PauseHUD + + + + + + + + diff --git a/templates/DKCR/Structs/PeanutMaterialEffects.xml b/templates/DKCR/Structs/PeanutMaterialEffects.xml new file mode 100644 index 00000000..b9c2ebe9 --- /dev/null +++ b/templates/DKCR/Structs/PeanutMaterialEffects.xml @@ -0,0 +1,11 @@ + + + + PeanutMaterialEffects + + + + + + + diff --git a/templates/DKCR/Structs/PeanutProperties.xml b/templates/DKCR/Structs/PeanutProperties.xml new file mode 100644 index 00000000..2a222c10 --- /dev/null +++ b/templates/DKCR/Structs/PeanutProperties.xml @@ -0,0 +1,124 @@ + + + + PeanutProperties + + + false + + + + 0.0 + 0.0 + 1.0 + + + + 5.0 + + + + -1.0 + -1.0 + -1.0 + + + + 2.0 + + + 80.0 + + + 25.0 + + + + CMDL + + + + + CAUD + + + + + CAUD + + + + + PART + + + + + 1.0 + 1.0 + 1.0 + + + + false + + + false + + + true + + + + + PART + + + + + 1.0 + 1.0 + 1.0 + + + + + + PART + + + + + PART + + + + + PART + + + + + CAUD + + + + 1.0 + + + 1.0 + + + 0 + + + + + + + + + + + + diff --git a/templates/DKCR/Structs/PickupData.xml b/templates/DKCR/Structs/PickupData.xml new file mode 100644 index 00000000..37d9df7f --- /dev/null +++ b/templates/DKCR/Structs/PickupData.xml @@ -0,0 +1,149 @@ + + + + PickupData + + + 0xB22FD89B + + + 1 + + + 0 + + + 1 + + + 1 + + + 0.0 + + + 0.0 + + + 0.0 + + + 2.0 + + + 0.0 + + + 0.25 + + + 3.0 + + + + 1.0 + 1.0 + 1.0 + + + + + CMDL + + + + + PART + + + + + PART + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + 0 + + + false + + + false + + + true + + + true + + + false + + + false + + + 0.0 + + + true + + + true + + + false + + + + diff --git a/templates/DKCR/Structs/PlayerAlternateSkin.xml b/templates/DKCR/Structs/PlayerAlternateSkin.xml new file mode 100644 index 00000000..645fa4ae --- /dev/null +++ b/templates/DKCR/Structs/PlayerAlternateSkin.xml @@ -0,0 +1,17 @@ + + + + PlayerAlternateSkin + + + 0 + + + + + + + + + + diff --git a/templates/DKCR/Structs/PlayerAttachment.xml b/templates/DKCR/Structs/PlayerAttachment.xml new file mode 100644 index 00000000..51979543 --- /dev/null +++ b/templates/DKCR/Structs/PlayerAttachment.xml @@ -0,0 +1,13 @@ + + + + PlayerAttachment + + + + + false + + + + diff --git a/templates/DKCR/Structs/PlayerAttachmentsData.xml b/templates/DKCR/Structs/PlayerAttachmentsData.xml new file mode 100644 index 00000000..7fe4cd38 --- /dev/null +++ b/templates/DKCR/Structs/PlayerAttachmentsData.xml @@ -0,0 +1,11 @@ + + + + PlayerAttachmentsData + + + + + + + diff --git a/templates/DKCR/Structs/PlayerAttackBounceData.xml b/templates/DKCR/Structs/PlayerAttackBounceData.xml new file mode 100644 index 00000000..1d150cf4 --- /dev/null +++ b/templates/DKCR/Structs/PlayerAttackBounceData.xml @@ -0,0 +1,39 @@ + + + + PlayerAttackBounceData + + + 3.25 + + + 5.25 + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + diff --git a/templates/DKCR/Structs/PlayerBarrelCannonData.xml b/templates/DKCR/Structs/PlayerBarrelCannonData.xml new file mode 100644 index 00000000..26162e3c --- /dev/null +++ b/templates/DKCR/Structs/PlayerBarrelCannonData.xml @@ -0,0 +1,41 @@ + + + + PlayerBarrelCannonData + + + + PART + + + + + 0.5 + + + 4.5 + + + + CAUD + + + + + + PART + + + + + PART + + + + + PART + + + + + diff --git a/templates/DKCR/Structs/PlayerBasicMovementData.xml b/templates/DKCR/Structs/PlayerBasicMovementData.xml new file mode 100644 index 00000000..0ba0ee1a --- /dev/null +++ b/templates/DKCR/Structs/PlayerBasicMovementData.xml @@ -0,0 +1,74 @@ + + + + PlayerBasicMovementData + + + false + + + 20.0 + + + 40.0 + + + true + + + 30.0 + + + 3.0 + + + 0.94999999 + + + 0.0 + + + 8.8999996 + + + 0.5 + + + 0.5 + + + 4.0 + + + 8.0 + + + 12.0 + + + + PART + + + + + PART + + + + + PART + + + + 15.0 + + + 22.0 + + + 28.0 + + + + diff --git a/templates/DKCR/Structs/PlayerBopAnimThresholds.xml b/templates/DKCR/Structs/PlayerBopAnimThresholds.xml new file mode 100644 index 00000000..8b288e7a --- /dev/null +++ b/templates/DKCR/Structs/PlayerBopAnimThresholds.xml @@ -0,0 +1,11 @@ + + + + PlayerBopAnimThresholds + + + 0 + + + + diff --git a/templates/DKCR/Structs/PlayerCling2Data.xml b/templates/DKCR/Structs/PlayerCling2Data.xml new file mode 100644 index 00000000..8696582d --- /dev/null +++ b/templates/DKCR/Structs/PlayerCling2Data.xml @@ -0,0 +1,82 @@ + + + + PlayerCling2Data + + + 50.0 + + + + + + 10.0 + + + 6.5 + + + 15.0 + + + 0.80000001 + + + 0.25 + + + 900.0 + + + 10800.0 + + + 500.0 + + + 1.5 + + + 0.40000001 + + + 0.25 + + + 1.0 + + + + PART + + + + + -2.0 + 0.40000001 + 1.6 + + + + + PART + + + + + 0.0 + 0.0 + 0.0 + + + + + CAUD + + + + 1.1 + + + + diff --git a/templates/DKCR/Structs/PlayerCommonData.xml b/templates/DKCR/Structs/PlayerCommonData.xml new file mode 100644 index 00000000..9c9a24d1 --- /dev/null +++ b/templates/DKCR/Structs/PlayerCommonData.xml @@ -0,0 +1,55 @@ + + + + PlayerCommonData + + + 0 + + + 1.0 + + + + 0.94999999 + + + 55.0 + + + 35.0 + + + 2.0 + + + 0.125 + + + 0.2 + + + 0.0 + + + true + + + false + + + false + + + + CAUD + + + + + PART + + + + + diff --git a/templates/DKCR/Structs/PlayerCrouchData.xml b/templates/DKCR/Structs/PlayerCrouchData.xml new file mode 100644 index 00000000..2c8e897d --- /dev/null +++ b/templates/DKCR/Structs/PlayerCrouchData.xml @@ -0,0 +1,32 @@ + + + + PlayerCrouchData + + + 0.80000001 + + + 30.0 + + + 9.0 + + + 6.5 + + + 0.25 + + + 3.0 + + + 1.125 + + + 0.2 + + + + diff --git a/templates/DKCR/Structs/PlayerCrushData.xml b/templates/DKCR/Structs/PlayerCrushData.xml new file mode 100644 index 00000000..3572b387 --- /dev/null +++ b/templates/DKCR/Structs/PlayerCrushData.xml @@ -0,0 +1,104 @@ + + + + PlayerCrushData + + + 0.1 + + + 0.5 + + + 0.5 + + + 4.0 + + + 0.1 + + + 0.050000001 + + + false + + + 0.5 + + + 0.050000001 + + + 0.050000001 + + + 12.0 + + + 6.0 + + + 1.0 + + + 1.0 + + + 1.0 + + + 0.2 + + + 0.2 + + + -0.15000001 + + + -0.2 + + + false + + + 0.5 + + + 0.050000001 + + + 0.050000001 + + + 2.0 + + + 6.0 + + + 2.0 + + + 2.0 + + + 0.5 + + + 0.0 + + + -0.050000001 + + + -0.5 + + + false + + + + diff --git a/templates/DKCR/Structs/PlayerFireReactionData.xml b/templates/DKCR/Structs/PlayerFireReactionData.xml new file mode 100644 index 00000000..38de85a1 --- /dev/null +++ b/templates/DKCR/Structs/PlayerFireReactionData.xml @@ -0,0 +1,30 @@ + + + + PlayerFireReactionData + + + 1.0 + + + 4.0 + + + 0x80468E1F + + + + + + + 0.0 + + + 2 + + + 6.0 + + + + diff --git a/templates/DKCR/Structs/PlayerHeadTrackingData.xml b/templates/DKCR/Structs/PlayerHeadTrackingData.xml new file mode 100644 index 00000000..10301a8d --- /dev/null +++ b/templates/DKCR/Structs/PlayerHeadTrackingData.xml @@ -0,0 +1,23 @@ + + + + PlayerHeadTrackingData + + + Always + -1 + + + Always + -1 + + + Always + -1 + + + + + + + diff --git a/templates/DKCR/Structs/PlayerJumpAnimWeights.xml b/templates/DKCR/Structs/PlayerJumpAnimWeights.xml new file mode 100644 index 00000000..5b937140 --- /dev/null +++ b/templates/DKCR/Structs/PlayerJumpAnimWeights.xml @@ -0,0 +1,41 @@ + + + + PlayerJumpAnimWeights + + + 0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + diff --git a/templates/DKCR/Structs/PlayerJumpData.xml b/templates/DKCR/Structs/PlayerJumpData.xml new file mode 100644 index 00000000..e2eae328 --- /dev/null +++ b/templates/DKCR/Structs/PlayerJumpData.xml @@ -0,0 +1,40 @@ + + + + PlayerJumpData + + + + + 0.050000001 + + + 0.121 + + + 3.0 + + + 6.0 + + + 3.0 + + + 6.0 + + + 0.1 + + + 0.25 + + + 0.25 + + + false + + + + diff --git a/templates/DKCR/Structs/PlayerJumpHeights.xml b/templates/DKCR/Structs/PlayerJumpHeights.xml new file mode 100644 index 00000000..4ca92b87 --- /dev/null +++ b/templates/DKCR/Structs/PlayerJumpHeights.xml @@ -0,0 +1,15 @@ + + + + PlayerJumpHeights + + + 2.0 + + + 4.5 + + + + + diff --git a/templates/DKCR/Structs/PlayerMeleeData.xml b/templates/DKCR/Structs/PlayerMeleeData.xml new file mode 100644 index 00000000..117743c8 --- /dev/null +++ b/templates/DKCR/Structs/PlayerMeleeData.xml @@ -0,0 +1,29 @@ + + + + PlayerMeleeData + + + false + + + false + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + diff --git a/templates/DKCR/Structs/PlayerMountData.xml b/templates/DKCR/Structs/PlayerMountData.xml new file mode 100644 index 00000000..b953b69d --- /dev/null +++ b/templates/DKCR/Structs/PlayerMountData.xml @@ -0,0 +1,55 @@ + + + + PlayerMountData + + + Always + 0 + + + Always + 0 + + + false + + + false + + + true + + + true + + + false + + + 1.1 + + + 15.0 + + + 1.0 + + + true + + + false + + + false + + + false + + + false + + + + diff --git a/templates/DKCR/Structs/PlayerMountRiderData.xml b/templates/DKCR/Structs/PlayerMountRiderData.xml new file mode 100644 index 00000000..fe344353 --- /dev/null +++ b/templates/DKCR/Structs/PlayerMountRiderData.xml @@ -0,0 +1,29 @@ + + + + PlayerMountRiderData + + + + + + false + + + false + + + false + + + true + + + 1 + + + 0.0 + + + + diff --git a/templates/DKCR/Structs/PlayerMountRiderList.xml b/templates/DKCR/Structs/PlayerMountRiderList.xml new file mode 100644 index 00000000..a0a10657 --- /dev/null +++ b/templates/DKCR/Structs/PlayerMountRiderList.xml @@ -0,0 +1,14 @@ + + + + PlayerMountRiderList + + + 0 + + + + + + + diff --git a/templates/DKCR/Structs/PlayerMovementParameters.xml b/templates/DKCR/Structs/PlayerMovementParameters.xml new file mode 100644 index 00000000..dba1863d --- /dev/null +++ b/templates/DKCR/Structs/PlayerMovementParameters.xml @@ -0,0 +1,17 @@ + + + + PlayerMovementParameters + + + 1.0 + + + 9.0 + + + 20.0 + + + + diff --git a/templates/DKCR/Structs/PlayerMultiKillRewardData.xml b/templates/DKCR/Structs/PlayerMultiKillRewardData.xml new file mode 100644 index 00000000..55212d23 --- /dev/null +++ b/templates/DKCR/Structs/PlayerMultiKillRewardData.xml @@ -0,0 +1,12 @@ + + + + PlayerMultiKillRewardData + + + + + + + + diff --git a/templates/DKCR/Structs/PlayerMultiKillRewardSoundData.xml b/templates/DKCR/Structs/PlayerMultiKillRewardSoundData.xml new file mode 100644 index 00000000..14aaf880 --- /dev/null +++ b/templates/DKCR/Structs/PlayerMultiKillRewardSoundData.xml @@ -0,0 +1,48 @@ + + + + PlayerMultiKillRewardSoundData + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + diff --git a/templates/DKCR/Structs/PlayerMultiKillRewardTierData.xml b/templates/DKCR/Structs/PlayerMultiKillRewardTierData.xml new file mode 100644 index 00000000..a1a43681 --- /dev/null +++ b/templates/DKCR/Structs/PlayerMultiKillRewardTierData.xml @@ -0,0 +1,45 @@ + + + + PlayerMultiKillRewardTierData + + + 0xB22FD89B + + + 1 + + + 1 + + + 1 + + + 1.0 + + + + 1.0 + 1.0 + 1.0 + + + + + CMDL + + + + + PART + + + + + PART + + + + + diff --git a/templates/DKCR/Structs/PlayerOffscreenIndicator.xml b/templates/DKCR/Structs/PlayerOffscreenIndicator.xml new file mode 100644 index 00000000..44a9d7f9 --- /dev/null +++ b/templates/DKCR/Structs/PlayerOffscreenIndicator.xml @@ -0,0 +1,32 @@ + + + + PlayerOffscreenIndicator + + + 0.5 + + + 5.0 + + + 5 + + + 1 + + + + CAUD + + + + + CAUD + + + + + + + diff --git a/templates/DKCR/Structs/PlayerOffscreenIndicatorIconData.xml b/templates/DKCR/Structs/PlayerOffscreenIndicatorIconData.xml new file mode 100644 index 00000000..a64f3d0b --- /dev/null +++ b/templates/DKCR/Structs/PlayerOffscreenIndicatorIconData.xml @@ -0,0 +1,27 @@ + + + + PlayerOffscreenIndicatorIconData + + + + TXTR + + + + 0x4F049055 + + + + + + + + 0 + + + 0 + + + + diff --git a/templates/DKCR/Structs/PlayerOffscreenIndicatorTextData.xml b/templates/DKCR/Structs/PlayerOffscreenIndicatorTextData.xml new file mode 100644 index 00000000..9979b173 --- /dev/null +++ b/templates/DKCR/Structs/PlayerOffscreenIndicatorTextData.xml @@ -0,0 +1,51 @@ + + + + PlayerOffscreenIndicatorTextData + + + 0x82B6A62A + + + + FONT + + + + + 1.0 + 1.0 + 1.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + 1.0 + 1.0 + 1.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + diff --git a/templates/DKCR/Structs/PlayerPeanutGunData.xml b/templates/DKCR/Structs/PlayerPeanutGunData.xml new file mode 100644 index 00000000..b2355149 --- /dev/null +++ b/templates/DKCR/Structs/PlayerPeanutGunData.xml @@ -0,0 +1,23 @@ + + + + PlayerPeanutGunData + + + false + + + 0.75 + + + true + + + true + + + true + + + + diff --git a/templates/DKCR/Structs/PlayerPeriodicAdditiveAnimationData.xml b/templates/DKCR/Structs/PlayerPeriodicAdditiveAnimationData.xml new file mode 100644 index 00000000..a3a83f25 --- /dev/null +++ b/templates/DKCR/Structs/PlayerPeriodicAdditiveAnimationData.xml @@ -0,0 +1,19 @@ + + + + PlayerPeriodicAdditiveAnimationData + + + 3.0 + + + 6.0 + + + Always + -1 + + + + + diff --git a/templates/DKCR/Structs/PlayerRiseFromTheGraveData.xml b/templates/DKCR/Structs/PlayerRiseFromTheGraveData.xml new file mode 100644 index 00000000..9117d6c0 --- /dev/null +++ b/templates/DKCR/Structs/PlayerRiseFromTheGraveData.xml @@ -0,0 +1,21 @@ + + + + PlayerRiseFromTheGraveData + + + + CAUD + + + + + CAUD + + + + 1.0 + + + + diff --git a/templates/DKCR/Structs/PlayerShieldData.xml b/templates/DKCR/Structs/PlayerShieldData.xml new file mode 100644 index 00000000..0e87d077 --- /dev/null +++ b/templates/DKCR/Structs/PlayerShieldData.xml @@ -0,0 +1,21 @@ + + + + PlayerShieldData + + + 1 + + + + + + + + + + + + + + diff --git a/templates/DKCR/Structs/PlayerShieldSplineData.xml b/templates/DKCR/Structs/PlayerShieldSplineData.xml new file mode 100644 index 00000000..078a35e5 --- /dev/null +++ b/templates/DKCR/Structs/PlayerShieldSplineData.xml @@ -0,0 +1,12 @@ + + + + PlayerShieldSplineData + + + 10 + + + + + diff --git a/templates/DKCR/Structs/PlayerSlaveData.xml b/templates/DKCR/Structs/PlayerSlaveData.xml new file mode 100644 index 00000000..7a15a469 --- /dev/null +++ b/templates/DKCR/Structs/PlayerSlaveData.xml @@ -0,0 +1,22 @@ + + + + PlayerSlaveData + + + 1.0 + + + 0.30000001 + + + Always + 0 + + + Always + 0 + + + + diff --git a/templates/DKCR/Structs/PlayerSplineAdvancementData.xml b/templates/DKCR/Structs/PlayerSplineAdvancementData.xml new file mode 100644 index 00000000..cb95e4c1 --- /dev/null +++ b/templates/DKCR/Structs/PlayerSplineAdvancementData.xml @@ -0,0 +1,46 @@ + + + + PlayerSplineAdvancementData + + + + + 450.0 + + + false + + + 4.0 + + + true + + + true + + + 2.0 + + + 0.079999998 + + + 0.2 + + + 1.0 + + + false + + + 6.0 + + + 3.0 + + + + diff --git a/templates/DKCR/Structs/PlayerTarInteractionData.xml b/templates/DKCR/Structs/PlayerTarInteractionData.xml new file mode 100644 index 00000000..fcb4beb3 --- /dev/null +++ b/templates/DKCR/Structs/PlayerTarInteractionData.xml @@ -0,0 +1,46 @@ + + + + PlayerTarInteractionData + + + false + + + true + + + 3 + + + 3 + + + 1.0 + + + + PART + + + + + + PART + + + + + + PART + + + + + CAUD + + + + + + diff --git a/templates/DKCR/Structs/PlayerTeleportData.xml b/templates/DKCR/Structs/PlayerTeleportData.xml new file mode 100644 index 00000000..db9dee26 --- /dev/null +++ b/templates/DKCR/Structs/PlayerTeleportData.xml @@ -0,0 +1,13 @@ + + + + PlayerTeleportData + + + + 0.0 + + + + + diff --git a/templates/DKCR/Structs/PlayerTerrainAlignmentData.xml b/templates/DKCR/Structs/PlayerTerrainAlignmentData.xml new file mode 100644 index 00000000..8c6ca7fe --- /dev/null +++ b/templates/DKCR/Structs/PlayerTerrainAlignmentData.xml @@ -0,0 +1,24 @@ + + + + PlayerTerrainAlignmentData + + + false + + + + 1.0 + 1.0 + 1.0 + + + + 1.05 + + + 0.2 + + + + diff --git a/templates/DKCR/Structs/PlayerTireInteractionData.xml b/templates/DKCR/Structs/PlayerTireInteractionData.xml new file mode 100644 index 00000000..996a3d63 --- /dev/null +++ b/templates/DKCR/Structs/PlayerTireInteractionData.xml @@ -0,0 +1,20 @@ + + + + PlayerTireInteractionData + + + 0.1 + + + 0.2 + + + 450.0 + + + 3.0 + + + + diff --git a/templates/DKCR/Structs/PlayerType.xml b/templates/DKCR/Structs/PlayerType.xml new file mode 100644 index 00000000..a685d73c --- /dev/null +++ b/templates/DKCR/Structs/PlayerType.xml @@ -0,0 +1,19 @@ + + + + PlayerType + + + 0xD0808BD7 + + + + + + + + + + + + diff --git a/templates/DKCR/Structs/ProjectileAttackBehaviorData.xml b/templates/DKCR/Structs/ProjectileAttackBehaviorData.xml new file mode 100644 index 00000000..b0dd920a --- /dev/null +++ b/templates/DKCR/Structs/ProjectileAttackBehaviorData.xml @@ -0,0 +1,45 @@ + + + + ProjectileAttackBehaviorData + + + Always + 0.0 + + + false + + + 5.0 + + + 1 + + + 3.0 + + + 0.0 + + + false + + + true + + + true + + + false + + + false + + + true + + + + diff --git a/templates/DKCR/Structs/ProjectileBehaviorData.xml b/templates/DKCR/Structs/ProjectileBehaviorData.xml new file mode 100644 index 00000000..7045582a --- /dev/null +++ b/templates/DKCR/Structs/ProjectileBehaviorData.xml @@ -0,0 +1,71 @@ + + + + ProjectileBehaviorData + + + 0.5 + + + 0x20A7F919 + + + + + + + + + 0.0 + + + 1.0 + + + 0.0 + + + 0.0 + + + false + + + 5.0 + + + 30.0 + + + 0 + + + false + + + false + + + + + + false + + + false + + + false + + + false + + + false + + + 100.0 + + + + diff --git a/templates/DKCR/Structs/ProjectileRenderOptions.xml b/templates/DKCR/Structs/ProjectileRenderOptions.xml new file mode 100644 index 00000000..6bd9be1c --- /dev/null +++ b/templates/DKCR/Structs/ProjectileRenderOptions.xml @@ -0,0 +1,11 @@ + + + + ProjectileRenderOptions + + + 0.0 + + + + diff --git a/templates/DKCR/Structs/ProportionalConvergence.xml b/templates/DKCR/Structs/ProportionalConvergence.xml new file mode 100644 index 00000000..b84a1e63 --- /dev/null +++ b/templates/DKCR/Structs/ProportionalConvergence.xml @@ -0,0 +1,12 @@ + + + + ProportionalConvergence + + + 0.0 + + + + + diff --git a/templates/DKCR/Structs/RagDollData.xml b/templates/DKCR/Structs/RagDollData.xml new file mode 100644 index 00000000..481b0f2c --- /dev/null +++ b/templates/DKCR/Structs/RagDollData.xml @@ -0,0 +1,73 @@ + + + + RagDollData + + + + 0.0 + 0.0 + -50.0 + + + + 8000.0 + + + 1.2 + + + 0.125 + + + 0.85000002 + + + 1.0 + + + 3000.0 + + + 0.5 + + + 5.0 + + + + false + + + false + + + true + + + false + + + true + + + 0x902E534E + + + + + + + + + 0.0 + 0.0 + 1.0 + + + + 0.0 + + + + diff --git a/templates/DKCR/Structs/RambiControllerData.xml b/templates/DKCR/Structs/RambiControllerData.xml new file mode 100644 index 00000000..43f9cbdb --- /dev/null +++ b/templates/DKCR/Structs/RambiControllerData.xml @@ -0,0 +1,26 @@ + + + + RambiControllerData + + + 50.0 + + + 2.0 + + + 3.0 + + + 10.0 + + + 15.0 + + + 25.0 + + + + diff --git a/templates/DKCR/Structs/RambiCrateData.xml b/templates/DKCR/Structs/RambiCrateData.xml new file mode 100644 index 00000000..1881d5f4 --- /dev/null +++ b/templates/DKCR/Structs/RambiCrateData.xml @@ -0,0 +1,26 @@ + + + + RambiCrateData + + + + Always + -1 + + + -1 + + + + 15.0 + + + 5.0 + + + 10.0 + + + + diff --git a/templates/DKCR/Structs/ReactiveActorBehavior.xml b/templates/DKCR/Structs/ReactiveActorBehavior.xml new file mode 100644 index 00000000..cf8d839b --- /dev/null +++ b/templates/DKCR/Structs/ReactiveActorBehavior.xml @@ -0,0 +1,50 @@ + + + + ReactiveActorBehavior + + + 0x62269F84 + + + + + + + + + + + + + false + + + false + + + false + + + false + + + Always + -1 + + + 0.0 + + + 1.0 + + + + 0.0 + 0.0 + 0.0 + + + + + diff --git a/templates/DKCR/Structs/ReactiveActorBehaviors.xml b/templates/DKCR/Structs/ReactiveActorBehaviors.xml new file mode 100644 index 00000000..92c14694 --- /dev/null +++ b/templates/DKCR/Structs/ReactiveActorBehaviors.xml @@ -0,0 +1,17 @@ + + + + ReactiveActorBehaviors + + + 0 + + + + + + + + + + diff --git a/templates/DKCR/Structs/RetronomeMessage.xml b/templates/DKCR/Structs/RetronomeMessage.xml new file mode 100644 index 00000000..65e7444a --- /dev/null +++ b/templates/DKCR/Structs/RetronomeMessage.xml @@ -0,0 +1,14 @@ + + + + RetronomeMessage + + + 0.0 + + + + + + + diff --git a/templates/DKCR/Structs/SeekerBehaviorData.xml b/templates/DKCR/Structs/SeekerBehaviorData.xml new file mode 100644 index 00000000..e38ccea5 --- /dev/null +++ b/templates/DKCR/Structs/SeekerBehaviorData.xml @@ -0,0 +1,83 @@ + + + + SeekerBehaviorData + + + 0xE3CB0298 + + + + + + + false + + + 0.0 + + + 5.0 + + + 1.0 + + + 1.0 + + + 0.0 + + + 0.30000001 + + + true + + + true + + + true + + + 0.0 + + + 120.0 + + + 0.0 + + + 0.5 + + + 0.25 + + + 1.0 + + + 0.0 + + + 0.0 + + + + CAUD + + + + + + + 0.0 + + + 1.0 + + + + diff --git a/templates/DKCR/Structs/SeparateAndReformBehaviorData.xml b/templates/DKCR/Structs/SeparateAndReformBehaviorData.xml new file mode 100644 index 00000000..e2d98c92 --- /dev/null +++ b/templates/DKCR/Structs/SeparateAndReformBehaviorData.xml @@ -0,0 +1,87 @@ + + + + SeparateAndReformBehaviorData + + + 10 + + + false + + + true + + + + + -2.0 + + + + + + + -4.0 + + + + + + + -6.0 + + + + + + + -8.0 + + + + + + + -10.0 + + + + + + + 2.0 + + + + + + + 4.0 + + + + + + + 6.0 + + + + + + + 8.0 + + + + + + + 10.0 + + + + + + diff --git a/templates/DKCR/Structs/SeparateAndReformParts.xml b/templates/DKCR/Structs/SeparateAndReformParts.xml new file mode 100644 index 00000000..54be6f08 --- /dev/null +++ b/templates/DKCR/Structs/SeparateAndReformParts.xml @@ -0,0 +1,18 @@ + + + + SeparateAndReformParts + + + 0.0 + + + 1.0 + + + 3.0 + + + + + diff --git a/templates/DKCR/Structs/Sets.xml b/templates/DKCR/Structs/Sets.xml new file mode 100644 index 00000000..b6013a73 --- /dev/null +++ b/templates/DKCR/Structs/Sets.xml @@ -0,0 +1,11 @@ + + + + Sets + + + 0 + + + + diff --git a/templates/DKCR/Structs/SkinSwapModifierData.xml b/templates/DKCR/Structs/SkinSwapModifierData.xml new file mode 100644 index 00000000..2f1189ad --- /dev/null +++ b/templates/DKCR/Structs/SkinSwapModifierData.xml @@ -0,0 +1,9 @@ + + + + SkinSwapModifierData + + + + + diff --git a/templates/DKCR/Structs/SlideBehaviorData.xml b/templates/DKCR/Structs/SlideBehaviorData.xml new file mode 100644 index 00000000..0aee0dd3 --- /dev/null +++ b/templates/DKCR/Structs/SlideBehaviorData.xml @@ -0,0 +1,20 @@ + + + + SlideBehaviorData + + + 20.0 + + + 54.0 + + + 1.0 + + + 1.0 + + + + diff --git a/templates/DKCR/Structs/SpawnBehaviorData.xml b/templates/DKCR/Structs/SpawnBehaviorData.xml new file mode 100644 index 00000000..f0de1d69 --- /dev/null +++ b/templates/DKCR/Structs/SpawnBehaviorData.xml @@ -0,0 +1,14 @@ + + + + SpawnBehaviorData + + + true + + + false + + + + diff --git a/templates/DKCR/Structs/SpawnPointData.xml b/templates/DKCR/Structs/SpawnPointData.xml new file mode 100644 index 00000000..8086808d --- /dev/null +++ b/templates/DKCR/Structs/SpawnPointData.xml @@ -0,0 +1,32 @@ + + + + SpawnPointData + + + true + + + true + + + true + + + false + + + false + + + false + + + false + + + false + + + + diff --git a/templates/DKCR/Structs/SpindleOrientation.xml b/templates/DKCR/Structs/SpindleOrientation.xml new file mode 100644 index 00000000..f9e86ec1 --- /dev/null +++ b/templates/DKCR/Structs/SpindleOrientation.xml @@ -0,0 +1,14 @@ + + + + SpindleOrientation + + + Always + 786432 + + + + + + diff --git a/templates/DKCR/Structs/SpindlePosition.xml b/templates/DKCR/Structs/SpindlePosition.xml new file mode 100644 index 00000000..052df3b9 --- /dev/null +++ b/templates/DKCR/Structs/SpindlePosition.xml @@ -0,0 +1,24 @@ + + + + SpindlePosition + + + Always + 320 + + + + + + + + + + + + + + + + diff --git a/templates/DKCR/Structs/SpringConvergence.xml b/templates/DKCR/Structs/SpringConvergence.xml new file mode 100644 index 00000000..cc26be26 --- /dev/null +++ b/templates/DKCR/Structs/SpringConvergence.xml @@ -0,0 +1,27 @@ + + + + SpringConvergence + + + true + + + 10.0 + + + Always + 0.0 + + + 0.0099999998 + + + 10.0 + + + 1.0 + + + + diff --git a/templates/DKCR/Structs/SquawkProxyData.xml b/templates/DKCR/Structs/SquawkProxyData.xml new file mode 100644 index 00000000..f5126163 --- /dev/null +++ b/templates/DKCR/Structs/SquawkProxyData.xml @@ -0,0 +1,14 @@ + + + + SquawkProxyData + + + 0.0 + + + 0.0 + + + + diff --git a/templates/DKCR/Structs/StackableBlockBehaviorData.xml b/templates/DKCR/Structs/StackableBlockBehaviorData.xml new file mode 100644 index 00000000..e3259c23 --- /dev/null +++ b/templates/DKCR/Structs/StackableBlockBehaviorData.xml @@ -0,0 +1,20 @@ + + + + StackableBlockBehaviorData + + + false + + + 1000.0 + + + false + + + false + + + + diff --git a/templates/DKCR/Structs/StunnedByBopBehaviorData.xml b/templates/DKCR/Structs/StunnedByBopBehaviorData.xml new file mode 100644 index 00000000..3d01ba92 --- /dev/null +++ b/templates/DKCR/Structs/StunnedByBopBehaviorData.xml @@ -0,0 +1,22 @@ + + + + StunnedByBopBehaviorData + + + 3.0 + + + + RULE + + + + false + + + true + + + + diff --git a/templates/DKCR/Structs/StunnedByContactRuleData.xml b/templates/DKCR/Structs/StunnedByContactRuleData.xml new file mode 100644 index 00000000..9b076d0c --- /dev/null +++ b/templates/DKCR/Structs/StunnedByContactRuleData.xml @@ -0,0 +1,23 @@ + + + + StunnedByContactRuleData + + + 3.0 + + + false + + + 5.0 + + + 1.0 + + + false + + + + diff --git a/templates/DKCR/Structs/StunnedByGroundPoundBehaviorData.xml b/templates/DKCR/Structs/StunnedByGroundPoundBehaviorData.xml new file mode 100644 index 00000000..eaad6b28 --- /dev/null +++ b/templates/DKCR/Structs/StunnedByGroundPoundBehaviorData.xml @@ -0,0 +1,41 @@ + + + + StunnedByGroundPoundBehaviorData + + + 0.5 + + + 3.0 + + + false + + + 0.33000001 + + + 0.0 + + + false + + + false + + + 5.0 + + + 1.0 + + + false + + + false + + + + diff --git a/templates/DKCR/Structs/SurfaceOrientation.xml b/templates/DKCR/Structs/SurfaceOrientation.xml new file mode 100644 index 00000000..13370111 --- /dev/null +++ b/templates/DKCR/Structs/SurfaceOrientation.xml @@ -0,0 +1,12 @@ + + + + SurfaceOrientation + + + Always + 256 + + + + diff --git a/templates/DKCR/Structs/SurfacePosition.xml b/templates/DKCR/Structs/SurfacePosition.xml new file mode 100644 index 00000000..8e3ee52d --- /dev/null +++ b/templates/DKCR/Structs/SurfacePosition.xml @@ -0,0 +1,14 @@ + + + + SurfacePosition + + + Always + 1 + + + + + + diff --git a/templates/DKCR/Structs/SurroundPan.xml b/templates/DKCR/Structs/SurroundPan.xml new file mode 100644 index 00000000..99f8d4e6 --- /dev/null +++ b/templates/DKCR/Structs/SurroundPan.xml @@ -0,0 +1,14 @@ + + + + SurroundPan + + + 0.0 + + + 1.0 + + + + diff --git a/templates/DKCR/Structs/SuspensionBridgeData.xml b/templates/DKCR/Structs/SuspensionBridgeData.xml new file mode 100644 index 00000000..edd9b38a --- /dev/null +++ b/templates/DKCR/Structs/SuspensionBridgeData.xml @@ -0,0 +1,23 @@ + + + + SuspensionBridgeData + + + false + + + 5.0 + + + 12.0 + + + 20.0 + + + + + + + diff --git a/templates/DKCR/Structs/SwingLineBehaviorData.xml b/templates/DKCR/Structs/SwingLineBehaviorData.xml new file mode 100644 index 00000000..2e5a0c16 --- /dev/null +++ b/templates/DKCR/Structs/SwingLineBehaviorData.xml @@ -0,0 +1,96 @@ + + + + SwingLineBehaviorData + + + + + 5.0 + + + 0.44999999 + + + 0x6A6F65BF + + + + + + + 60.0 + + + 2.5 + + + 2.0 + + + 1.0 + + + true + + + 12.0 + + + 0xBC521BB3 + + + + + + + + 1.0 + + + 3.0 + + + 2.0 + + + 20.0 + + + 10.0 + + + true + + + 0.0 + + + 3.0 + + + 4.0 + + + 1.5 + + + false + + + + RULE + + + + 2.0 + + + 1.5 + + + 0.0 + + + + diff --git a/templates/DKCR/Structs/SwingRopeData.xml b/templates/DKCR/Structs/SwingRopeData.xml new file mode 100644 index 00000000..5de3e6a8 --- /dev/null +++ b/templates/DKCR/Structs/SwingRopeData.xml @@ -0,0 +1,104 @@ + + + + SwingRopeData + + + 0.050000001 + + + 0x757C86AB + + + + + + + + + TXTR + + + + + TXTR + + + + + TXTR + + + + 45.0 + + + 2.0 + + + 0.5 + + + false + + + false + + + false + + + 0.0 + + + true + + + + 0.25 + + + 0.5 + + + false + + + false + + + 0 + + + 24 + + + 24 + + + 24 + + + 24 + + + 24 + + + 24 + + + 24 + + + 24 + + + 24 + + + 24 + + + + diff --git a/templates/DKCR/Structs/SwoopBehaviorData.xml b/templates/DKCR/Structs/SwoopBehaviorData.xml new file mode 100644 index 00000000..117a0288 --- /dev/null +++ b/templates/DKCR/Structs/SwoopBehaviorData.xml @@ -0,0 +1,47 @@ + + + + SwoopBehaviorData + + + true + + + false + + + false + + + false + + + 1.0 + + + 6.0 + + + 6.0 + + + 0.0 + + + 20.0 + + + 5.0 + + + 10.0 + + + 3.0 + + + 3.0 + + + + diff --git a/templates/DKCR/Structs/TandemBeam.xml b/templates/DKCR/Structs/TandemBeam.xml new file mode 100644 index 00000000..88e5e2dd --- /dev/null +++ b/templates/DKCR/Structs/TandemBeam.xml @@ -0,0 +1,76 @@ + + + + TandemBeam + + + 0x87251F5B + + + + + + + 10.0 + + + + 0.25 + + + 5.0 + + + + CAUD + + + + + TXTR + + + + + TXTR + + + + + 1.0 + + + 0xC01248C8 + + + + + + + + 0.0 + + + 0.0625 + + + true + + + 4 + + + 0.0 + + + 0.5 + + + 0.25 + + + 0.75 + + + + diff --git a/templates/DKCR/Structs/TargetPlayerBehaviorData.xml b/templates/DKCR/Structs/TargetPlayerBehaviorData.xml new file mode 100644 index 00000000..aa14c7d0 --- /dev/null +++ b/templates/DKCR/Structs/TargetPlayerBehaviorData.xml @@ -0,0 +1,34 @@ + + + + TargetPlayerBehaviorData + + + 0x61AA6174 + + + + + + + + 15.0 + + + 25.0 + + + 1440.0 + + + true + + + 2.0 + + + 0.1 + + + + diff --git a/templates/DKCR/Structs/TidalWaveData.xml b/templates/DKCR/Structs/TidalWaveData.xml new file mode 100644 index 00000000..22755f86 --- /dev/null +++ b/templates/DKCR/Structs/TidalWaveData.xml @@ -0,0 +1,53 @@ + + + + TidalWaveData + + + false + + + 0x6E6E8A1A + + + + + + + 0x59AD38F8 + + + + + + + + true + + + true + + + 0x13520720 + + + + + + + 0x24067FD8 + + + + + + + + true + + + true + + + + diff --git a/templates/DKCR/Structs/TouchAttackBehaviorData.xml b/templates/DKCR/Structs/TouchAttackBehaviorData.xml new file mode 100644 index 00000000..061d4fb8 --- /dev/null +++ b/templates/DKCR/Structs/TouchAttackBehaviorData.xml @@ -0,0 +1,30 @@ + + + + TouchAttackBehaviorData + + + + + + 0xB2A31497 + + + + + + + 0xBD71A966 + + + + + + + 0x81864B79 + + + + + + diff --git a/templates/DKCR/Structs/TouchAttackDirectionEnum.xml b/templates/DKCR/Structs/TouchAttackDirectionEnum.xml new file mode 100644 index 00000000..467e6f41 --- /dev/null +++ b/templates/DKCR/Structs/TouchAttackDirectionEnum.xml @@ -0,0 +1,19 @@ + + + + TouchAttackDirectionEnum + + + 0x93D88A81 + + + + + + + + + + + + diff --git a/templates/DKCR/Structs/TrackPlayer.xml b/templates/DKCR/Structs/TrackPlayer.xml new file mode 100644 index 00000000..96eb9487 --- /dev/null +++ b/templates/DKCR/Structs/TrackPlayer.xml @@ -0,0 +1,64 @@ + + + + TrackPlayer + + + Always + 0.0 + + + 15.0 + + + 10.0 + + + 5.0 + + + 15.0 + + + 10.0 + + + 1.0 + + + 0.0 + + + 0xEC782F50 + + + + + + + + + 6.0 + + + 6.0 + + + false + + + false + + + + false + + + 0x291D74B + + + 0x3BB45C07 + + + + diff --git a/templates/DKCR/Structs/TriggerShape.xml b/templates/DKCR/Structs/TriggerShape.xml new file mode 100644 index 00000000..016123d6 --- /dev/null +++ b/templates/DKCR/Structs/TriggerShape.xml @@ -0,0 +1,11 @@ + + + + TriggerShape + + + 0x482B22F1 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct10.xml b/templates/DKCR/Structs/UnknownStruct10.xml new file mode 100644 index 00000000..756c0d95 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct10.xml @@ -0,0 +1,14 @@ + + + + UnknownStruct10 + + + 10.0 + + + 6.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct109.xml b/templates/DKCR/Structs/UnknownStruct109.xml new file mode 100644 index 00000000..f7547597 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct109.xml @@ -0,0 +1,14 @@ + + + + UnknownStruct109 + + + 0.0 + + + 5.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct11.xml b/templates/DKCR/Structs/UnknownStruct11.xml new file mode 100644 index 00000000..0f2f8615 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct11.xml @@ -0,0 +1,56 @@ + + + + UnknownStruct11 + + + 0xC4CB1DA9 + + + + + + + + + + + + + 0.0 + + + 0.0 + + + 0xEDE964 + + + + + + + + + + + 0.0099999998 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct115.xml b/templates/DKCR/Structs/UnknownStruct115.xml new file mode 100644 index 00000000..09d8b0bf --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct115.xml @@ -0,0 +1,36 @@ + + + + UnknownStruct115 + + + 5.0 + + + 1.0 + + + 5.0 + + + 5.0 + + + 5.0 + + + 1.0 + + + 10.0 + + + 40.0 + + + 8.0 + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct116.xml b/templates/DKCR/Structs/UnknownStruct116.xml new file mode 100644 index 00000000..218699c1 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct116.xml @@ -0,0 +1,11 @@ + + + + UnknownStruct116 + + + 0.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct118.xml b/templates/DKCR/Structs/UnknownStruct118.xml new file mode 100644 index 00000000..046c78c7 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct118.xml @@ -0,0 +1,44 @@ + + + + UnknownStruct118 + + + 5.0 + + + 25.0 + + + 15.0 + + + 2.0 + + + 0.0 + + + 0.1 + + + 5.0 + + + 0.5 + + + 0.1 + + + 10.0 + + + 15.0 + + + 0.1 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct119.xml b/templates/DKCR/Structs/UnknownStruct119.xml new file mode 100644 index 00000000..4412320a --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct119.xml @@ -0,0 +1,40 @@ + + + + UnknownStruct119 + + + 0.0 + + + 5.0 + + + 4.0 + + + 4.0 + + + 4.0 + + + 4.0 + + + 1.0 + + + 2.0 + + + 4.0 + + + 2.0 + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct12.xml b/templates/DKCR/Structs/UnknownStruct12.xml new file mode 100644 index 00000000..ac199e52 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct12.xml @@ -0,0 +1,20 @@ + + + + UnknownStruct12 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct122.xml b/templates/DKCR/Structs/UnknownStruct122.xml new file mode 100644 index 00000000..7da5622c --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct122.xml @@ -0,0 +1,27 @@ + + + + UnknownStruct122 + + + 0x796194F4 + + + + + + + false + + + 1.0 + + + 1 + + + 2.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct128.xml b/templates/DKCR/Structs/UnknownStruct128.xml new file mode 100644 index 00000000..57bf13e1 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct128.xml @@ -0,0 +1,17 @@ + + + + UnknownStruct128 + + + true + + + 2.0 + + + 0.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct132.xml b/templates/DKCR/Structs/UnknownStruct132.xml new file mode 100644 index 00000000..24b46511 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct132.xml @@ -0,0 +1,36 @@ + + + + UnknownStruct132 + + + + 10.6062 + 21.2127 + 18.372 + + + + + 1.5 + 21.2127 + 18.372 + + + + + 0.0 + 13.0 + 0.0 + + + + + 0.0 + 15.0 + 0.0 + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct133.xml b/templates/DKCR/Structs/UnknownStruct133.xml new file mode 100644 index 00000000..91f9cdb5 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct133.xml @@ -0,0 +1,16 @@ + + + + UnknownStruct133 + + + 0 + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct134.xml b/templates/DKCR/Structs/UnknownStruct134.xml new file mode 100644 index 00000000..63572461 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct134.xml @@ -0,0 +1,31 @@ + + + + UnknownStruct134 + + + false + + + false + + + false + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct135.xml b/templates/DKCR/Structs/UnknownStruct135.xml new file mode 100644 index 00000000..edc2bd3c --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct135.xml @@ -0,0 +1,16 @@ + + + + UnknownStruct135 + + + + CAUD + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct138.xml b/templates/DKCR/Structs/UnknownStruct138.xml new file mode 100644 index 00000000..9cc6ea72 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct138.xml @@ -0,0 +1,20 @@ + + + + UnknownStruct138 + + + -1.0 + + + 1.0 + + + -1.0 + + + 1.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct140.xml b/templates/DKCR/Structs/UnknownStruct140.xml new file mode 100644 index 00000000..833ac004 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct140.xml @@ -0,0 +1,17 @@ + + + + UnknownStruct140 + + + Always + 0 + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct141.xml b/templates/DKCR/Structs/UnknownStruct141.xml new file mode 100644 index 00000000..5741793e --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct141.xml @@ -0,0 +1,18 @@ + + + + UnknownStruct141 + + + 0xAC6FE62C + + + + + + + 0.5 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct142.xml b/templates/DKCR/Structs/UnknownStruct142.xml new file mode 100644 index 00000000..e6b6128b --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct142.xml @@ -0,0 +1,44 @@ + + + + UnknownStruct142 + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + + diff --git a/templates/DKCR/Structs/UnknownStruct143.xml b/templates/DKCR/Structs/UnknownStruct143.xml new file mode 100644 index 00000000..8b1c3177 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct143.xml @@ -0,0 +1,19 @@ + + + + UnknownStruct143 + + + 0x43DB8C1F + + + + + + + 0.0 + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct144.xml b/templates/DKCR/Structs/UnknownStruct144.xml new file mode 100644 index 00000000..4e02b45f --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct144.xml @@ -0,0 +1,114 @@ + + + + UnknownStruct144 + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + TXTR + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct145.xml b/templates/DKCR/Structs/UnknownStruct145.xml new file mode 100644 index 00000000..bfaa5bd6 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct145.xml @@ -0,0 +1,114 @@ + + + + UnknownStruct145 + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + TXTR + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct146.xml b/templates/DKCR/Structs/UnknownStruct146.xml new file mode 100644 index 00000000..bbd89c0f --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct146.xml @@ -0,0 +1,24 @@ + + + + UnknownStruct146 + + + + + STRG + + + + + STRG + + + + + STRG + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct147.xml b/templates/DKCR/Structs/UnknownStruct147.xml new file mode 100644 index 00000000..496c505f --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct147.xml @@ -0,0 +1,87 @@ + + + + UnknownStruct147 + + + + FRME + + + + 0.25 + + + + 1.0 + + + 0.050000001 + + + 0.5 + + + 0.30000001 + + + + CAUD + + + + + CAUD + + + + 0.0625 + + + + STRG + + + + + STRG + + + + 0.30000001 + + + + STRG + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + 1.0 + 1.0 + 1.0 + + + + true + + + true + + + + diff --git a/templates/DKCR/Structs/UnknownStruct148.xml b/templates/DKCR/Structs/UnknownStruct148.xml new file mode 100644 index 00000000..a3484df1 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct148.xml @@ -0,0 +1,36 @@ + + + + UnknownStruct148 + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct149.xml b/templates/DKCR/Structs/UnknownStruct149.xml new file mode 100644 index 00000000..311933cd --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct149.xml @@ -0,0 +1,51 @@ + + + + UnknownStruct149 + + + + FRME + + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + + STRG + + + + + STRG + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct150.xml b/templates/DKCR/Structs/UnknownStruct150.xml new file mode 100644 index 00000000..71287723 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct150.xml @@ -0,0 +1,38 @@ + + + + UnknownStruct150 + + + + FRME + + + + + FRME + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct151.xml b/templates/DKCR/Structs/UnknownStruct151.xml new file mode 100644 index 00000000..53ab9547 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct151.xml @@ -0,0 +1,28 @@ + + + + UnknownStruct151 + + + + FRME + + + + + STRG + + + + + STRG + + + + + STRG + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct154.xml b/templates/DKCR/Structs/UnknownStruct154.xml new file mode 100644 index 00000000..6af77092 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct154.xml @@ -0,0 +1,90 @@ + + + + UnknownStruct154 + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct155.xml b/templates/DKCR/Structs/UnknownStruct155.xml new file mode 100644 index 00000000..82a85255 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct155.xml @@ -0,0 +1,56 @@ + + + + UnknownStruct155 + + + 0.0 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct156.xml b/templates/DKCR/Structs/UnknownStruct156.xml new file mode 100644 index 00000000..3c537990 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct156.xml @@ -0,0 +1,74 @@ + + + + UnknownStruct156 + + + + FRME + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct157.xml b/templates/DKCR/Structs/UnknownStruct157.xml new file mode 100644 index 00000000..925de9cb --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct157.xml @@ -0,0 +1,22 @@ + + + + UnknownStruct157 + + + + FRME + + + + + STRG + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct158.xml b/templates/DKCR/Structs/UnknownStruct158.xml new file mode 100644 index 00000000..27e0fb9d --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct158.xml @@ -0,0 +1,18 @@ + + + + UnknownStruct158 + + + + CAUD + + + + + CAUD + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct159.xml b/templates/DKCR/Structs/UnknownStruct159.xml new file mode 100644 index 00000000..171cedd4 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct159.xml @@ -0,0 +1,32 @@ + + + + UnknownStruct159 + + + + FRME + + + + + + + + STRG + + + + + STRG + + + + + STRG + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct16.xml b/templates/DKCR/Structs/UnknownStruct16.xml new file mode 100644 index 00000000..f00d750c --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct16.xml @@ -0,0 +1,20 @@ + + + + UnknownStruct16 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct160.xml b/templates/DKCR/Structs/UnknownStruct160.xml new file mode 100644 index 00000000..b4e12def --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct160.xml @@ -0,0 +1,18 @@ + + + + UnknownStruct160 + + + + CAUD + + + + + CAUD + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct161.xml b/templates/DKCR/Structs/UnknownStruct161.xml new file mode 100644 index 00000000..56a29dfe --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct161.xml @@ -0,0 +1,50 @@ + + + + UnknownStruct161 + + + 0.0 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct162.xml b/templates/DKCR/Structs/UnknownStruct162.xml new file mode 100644 index 00000000..610303a2 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct162.xml @@ -0,0 +1,84 @@ + + + + UnknownStruct162 + + + + FRME + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct163.xml b/templates/DKCR/Structs/UnknownStruct163.xml new file mode 100644 index 00000000..09b4bbbe --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct163.xml @@ -0,0 +1,20 @@ + + + + UnknownStruct163 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct164.xml b/templates/DKCR/Structs/UnknownStruct164.xml new file mode 100644 index 00000000..caf4aecb --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct164.xml @@ -0,0 +1,47 @@ + + + + UnknownStruct164 + + + + FRME + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct165.xml b/templates/DKCR/Structs/UnknownStruct165.xml new file mode 100644 index 00000000..407619b3 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct165.xml @@ -0,0 +1,39 @@ + + + + UnknownStruct165 + + + + FRME + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct166.xml b/templates/DKCR/Structs/UnknownStruct166.xml new file mode 100644 index 00000000..060a1ac3 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct166.xml @@ -0,0 +1,95 @@ + + + + UnknownStruct166 + + + + FRME + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + CAUD + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + + TXTR + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct167.xml b/templates/DKCR/Structs/UnknownStruct167.xml new file mode 100644 index 00000000..ffb0f6d1 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct167.xml @@ -0,0 +1,56 @@ + + + + UnknownStruct167 + + + + + + STRG + + + + + STRG + + + + + STRG + + + + + CAUD + STRG + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct168.xml b/templates/DKCR/Structs/UnknownStruct168.xml new file mode 100644 index 00000000..195eee14 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct168.xml @@ -0,0 +1,93 @@ + + + + UnknownStruct168 + + + + FRME + + + + + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + CAUD + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct169.xml b/templates/DKCR/Structs/UnknownStruct169.xml new file mode 100644 index 00000000..36f5b4c5 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct169.xml @@ -0,0 +1,62 @@ + + + + UnknownStruct169 + + + + FRME + + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + CAUD + STRG + + + + + STRG + + + + + TXTR + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct170.xml b/templates/DKCR/Structs/UnknownStruct170.xml new file mode 100644 index 00000000..b43b563e --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct170.xml @@ -0,0 +1,54 @@ + + + + UnknownStruct170 + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + TXTR + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct171.xml b/templates/DKCR/Structs/UnknownStruct171.xml new file mode 100644 index 00000000..b21ee3bb --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct171.xml @@ -0,0 +1,44 @@ + + + + UnknownStruct171 + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct172.xml b/templates/DKCR/Structs/UnknownStruct172.xml new file mode 100644 index 00000000..fb25f8c0 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct172.xml @@ -0,0 +1,59 @@ + + + + UnknownStruct172 + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + CAUD + + + + + CAUD + + + + + TXTR + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct173.xml b/templates/DKCR/Structs/UnknownStruct173.xml new file mode 100644 index 00000000..387346b0 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct173.xml @@ -0,0 +1,44 @@ + + + + UnknownStruct173 + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + TXTR + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct174.xml b/templates/DKCR/Structs/UnknownStruct174.xml new file mode 100644 index 00000000..d30c4a6d --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct174.xml @@ -0,0 +1,56 @@ + + + + UnknownStruct174 + + + + FRME + + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + TXTR + + + + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct175.xml b/templates/DKCR/Structs/UnknownStruct175.xml new file mode 100644 index 00000000..2b2c6c8f --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct175.xml @@ -0,0 +1,150 @@ + + + + UnknownStruct175 + + + + FRME + + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + + TXTR + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct176.xml b/templates/DKCR/Structs/UnknownStruct176.xml new file mode 100644 index 00000000..38707b59 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct176.xml @@ -0,0 +1,80 @@ + + + + UnknownStruct176 + + + + FRME + + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + + TXTR + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct177.xml b/templates/DKCR/Structs/UnknownStruct177.xml new file mode 100644 index 00000000..411092a3 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct177.xml @@ -0,0 +1,60 @@ + + + + UnknownStruct177 + + + + FRME + + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + CAUD + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct178.xml b/templates/DKCR/Structs/UnknownStruct178.xml new file mode 100644 index 00000000..c84d4ce2 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct178.xml @@ -0,0 +1,23 @@ + + + + UnknownStruct178 + + + + FRME + + + + + STRG + + + + + STRG + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct179.xml b/templates/DKCR/Structs/UnknownStruct179.xml new file mode 100644 index 00000000..1b1f7cc4 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct179.xml @@ -0,0 +1,179 @@ + + + + UnknownStruct179 + + + + + + + + FRME + + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + STRG + + + + + STRG + + + + + STRG + + + + + CAUD + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct180.xml b/templates/DKCR/Structs/UnknownStruct180.xml new file mode 100644 index 00000000..9c6ce413 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct180.xml @@ -0,0 +1,54 @@ + + + + UnknownStruct180 + + + + FRME + + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct181.xml b/templates/DKCR/Structs/UnknownStruct181.xml new file mode 100644 index 00000000..3bf73f35 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct181.xml @@ -0,0 +1,104 @@ + + + + UnknownStruct181 + + + + FRME + + + + + + + 5.0 + + + 10.0 + + + 10.0 + + + 3 + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + CAUD + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct182.xml b/templates/DKCR/Structs/UnknownStruct182.xml new file mode 100644 index 00000000..6e9c7be2 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct182.xml @@ -0,0 +1,22 @@ + + + + UnknownStruct182 + + + + + + + + + + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct183.xml b/templates/DKCR/Structs/UnknownStruct183.xml new file mode 100644 index 00000000..0bdbf8c4 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct183.xml @@ -0,0 +1,38 @@ + + + + UnknownStruct183 + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct184.xml b/templates/DKCR/Structs/UnknownStruct184.xml new file mode 100644 index 00000000..5c81fbf5 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct184.xml @@ -0,0 +1,87 @@ + + + + UnknownStruct184 + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + + 1 + + + + + + + 30 + + + + + + + 10 + + + + + + + 20 + + + + + + + 7 + + + + + + + 20 + + + + + + + 40 + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct185.xml b/templates/DKCR/Structs/UnknownStruct185.xml new file mode 100644 index 00000000..af4668d4 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct185.xml @@ -0,0 +1,35 @@ + + + + UnknownStruct185 + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + + + CAUD + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct186.xml b/templates/DKCR/Structs/UnknownStruct186.xml new file mode 100644 index 00000000..e23140cd --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct186.xml @@ -0,0 +1,28 @@ + + + + UnknownStruct186 + + + 1 + + + 2.0 + + + + + 4.0 + + + + + + + 5.0 + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct187.xml b/templates/DKCR/Structs/UnknownStruct187.xml new file mode 100644 index 00000000..962dd8f4 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct187.xml @@ -0,0 +1,26 @@ + + + + UnknownStruct187 + + + 1 + + + 5.0 + + + 8.0 + + + 1.0 + + + + PART + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct188.xml b/templates/DKCR/Structs/UnknownStruct188.xml new file mode 100644 index 00000000..b5bd06bd --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct188.xml @@ -0,0 +1,35 @@ + + + + UnknownStruct188 + + + 1.0 + + + 2 + + + false + + + 2.0 + + + 1.0 + + + 0.5 + + + 0.5 + + + 0.5 + + + 4.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct189.xml b/templates/DKCR/Structs/UnknownStruct189.xml new file mode 100644 index 00000000..ace89375 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct189.xml @@ -0,0 +1,17 @@ + + + + UnknownStruct189 + + + 1.0 + + + 2 + + + 2.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct19.xml b/templates/DKCR/Structs/UnknownStruct19.xml new file mode 100644 index 00000000..846b36d2 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct19.xml @@ -0,0 +1,18 @@ + + + + UnknownStruct19 + + + + CAUD + + + + + CAUD + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct190.xml b/templates/DKCR/Structs/UnknownStruct190.xml new file mode 100644 index 00000000..2b2b02f8 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct190.xml @@ -0,0 +1,14 @@ + + + + UnknownStruct190 + + + 1 + + + 3.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct191.xml b/templates/DKCR/Structs/UnknownStruct191.xml new file mode 100644 index 00000000..d8b35a12 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct191.xml @@ -0,0 +1,20 @@ + + + + UnknownStruct191 + + + 1 + + + 1.0 + + + 1.0 + + + 6.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct192.xml b/templates/DKCR/Structs/UnknownStruct192.xml new file mode 100644 index 00000000..0904d9ba --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct192.xml @@ -0,0 +1,16 @@ + + + + UnknownStruct192 + + + false + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct193.xml b/templates/DKCR/Structs/UnknownStruct193.xml new file mode 100644 index 00000000..b66d1e10 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct193.xml @@ -0,0 +1,11 @@ + + + + UnknownStruct193 + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct194.xml b/templates/DKCR/Structs/UnknownStruct194.xml new file mode 100644 index 00000000..5e0edc40 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct194.xml @@ -0,0 +1,13 @@ + + + + UnknownStruct194 + + + + CMDL + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct195.xml b/templates/DKCR/Structs/UnknownStruct195.xml new file mode 100644 index 00000000..91259099 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct195.xml @@ -0,0 +1,9 @@ + + + + UnknownStruct195 + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct196.xml b/templates/DKCR/Structs/UnknownStruct196.xml new file mode 100644 index 00000000..e4950551 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct196.xml @@ -0,0 +1,34 @@ + + + + UnknownStruct196 + + + 0xA85208A3 + + + + + + + + + + + + + + 1.0 + 0.0 + 0.0 + + + + 10.0 + + + 1.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct197.xml b/templates/DKCR/Structs/UnknownStruct197.xml new file mode 100644 index 00000000..708ff7e3 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct197.xml @@ -0,0 +1,39 @@ + + + + UnknownStruct197 + + + 0x4278CA52 + + + + + + + + 0.0 + + + 0xC4585AA5 + + + + + + + + 1.0 + + + 10.0 + + + 3.0 + + + false + + + + diff --git a/templates/DKCR/Structs/UnknownStruct198.xml b/templates/DKCR/Structs/UnknownStruct198.xml new file mode 100644 index 00000000..d69c9197 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct198.xml @@ -0,0 +1,11 @@ + + + + UnknownStruct198 + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct199.xml b/templates/DKCR/Structs/UnknownStruct199.xml new file mode 100644 index 00000000..b5159e8e --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct199.xml @@ -0,0 +1,27 @@ + + + + UnknownStruct199 + + + 0x43EF7897 + + + + + + + + 0.0 + + + 3.0 + + + + + false + + + + diff --git a/templates/DKCR/Structs/UnknownStruct20.xml b/templates/DKCR/Structs/UnknownStruct20.xml new file mode 100644 index 00000000..4d22fb80 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct20.xml @@ -0,0 +1,60 @@ + + + + UnknownStruct20 + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + 1.0 + 1.0 + 1.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + This property was likely used in debug builds. It is not read by the game and has no ingame effect. + false + + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct200.xml b/templates/DKCR/Structs/UnknownStruct200.xml new file mode 100644 index 00000000..d4717103 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct200.xml @@ -0,0 +1,10 @@ + + + + UnknownStruct200 + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct201.xml b/templates/DKCR/Structs/UnknownStruct201.xml new file mode 100644 index 00000000..fcd71aa9 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct201.xml @@ -0,0 +1,19 @@ + + + + UnknownStruct201 + + + 0x6500CF77 + + + + + + + 90.0 + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct202.xml b/templates/DKCR/Structs/UnknownStruct202.xml new file mode 100644 index 00000000..a4472656 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct202.xml @@ -0,0 +1,21 @@ + + + + UnknownStruct202 + + + false + + + + 0 + + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct203.xml b/templates/DKCR/Structs/UnknownStruct203.xml new file mode 100644 index 00000000..10d2faaa --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct203.xml @@ -0,0 +1,11 @@ + + + + UnknownStruct203 + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct204.xml b/templates/DKCR/Structs/UnknownStruct204.xml new file mode 100644 index 00000000..9eaae4df --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct204.xml @@ -0,0 +1,35 @@ + + + + UnknownStruct204 + + + 1 + + + 2.0 + + + 2.0 + + + 2.0 + + + 0 + + + 3 + + + 6 + + + false + + + false + + + + diff --git a/templates/DKCR/Structs/UnknownStruct205.xml b/templates/DKCR/Structs/UnknownStruct205.xml new file mode 100644 index 00000000..ac61daf3 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct205.xml @@ -0,0 +1,14 @@ + + + + UnknownStruct205 + + + 1 + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct206.xml b/templates/DKCR/Structs/UnknownStruct206.xml new file mode 100644 index 00000000..abcdad78 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct206.xml @@ -0,0 +1,28 @@ + + + + UnknownStruct206 + + + + + + + + false + + + + + 1.0 + 1.0 + 1.0 + + + + + 2.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct207.xml b/templates/DKCR/Structs/UnknownStruct207.xml new file mode 100644 index 00000000..79d561cf --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct207.xml @@ -0,0 +1,26 @@ + + + + UnknownStruct207 + + + 6.5 + + + 9.0 + + + 13.5 + + + 18.0 + + + 20.0 + + + 27.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct208.xml b/templates/DKCR/Structs/UnknownStruct208.xml new file mode 100644 index 00000000..8df94be6 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct208.xml @@ -0,0 +1,61 @@ + + + + UnknownStruct208 + + + 0x3CD4A348 + + + + + + + + + + + + + 55.0 + + + 35.0 + + + 10 + + + 3.0 + + + 1.0 + + + 12.0 + + + 5.0 + + + 0.5 + + + 0.5 + + + 6.0 + + + + CAUD + + + + + CAUD + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct22.xml b/templates/DKCR/Structs/UnknownStruct22.xml new file mode 100644 index 00000000..7b527d2b --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct22.xml @@ -0,0 +1,17 @@ + + + + UnknownStruct22 + + + 0.0 + + + true + + + 0.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct227.xml b/templates/DKCR/Structs/UnknownStruct227.xml new file mode 100644 index 00000000..36e4bde2 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct227.xml @@ -0,0 +1,22 @@ + + + + UnknownStruct227 + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct228.xml b/templates/DKCR/Structs/UnknownStruct228.xml new file mode 100644 index 00000000..187cc817 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct228.xml @@ -0,0 +1,12 @@ + + + + UnknownStruct228 + + + 2.0 + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct229.xml b/templates/DKCR/Structs/UnknownStruct229.xml new file mode 100644 index 00000000..cc3c52dd --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct229.xml @@ -0,0 +1,16 @@ + + + + UnknownStruct229 + + + 2 + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct23.xml b/templates/DKCR/Structs/UnknownStruct23.xml new file mode 100644 index 00000000..65c5e19e --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct23.xml @@ -0,0 +1,20 @@ + + + + UnknownStruct23 + + + 3.0 + + + 7.0 + + + 0.5 + + + 10.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct230.xml b/templates/DKCR/Structs/UnknownStruct230.xml new file mode 100644 index 00000000..e073da8c --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct230.xml @@ -0,0 +1,19 @@ + + + + UnknownStruct230 + + + false + + + false + + + 1.0 + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct231.xml b/templates/DKCR/Structs/UnknownStruct231.xml new file mode 100644 index 00000000..78295b1c --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct231.xml @@ -0,0 +1,24 @@ + + + + UnknownStruct231 + + + true + + + false + + + true + + + true + + + 3.5 + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct232.xml b/templates/DKCR/Structs/UnknownStruct232.xml new file mode 100644 index 00000000..ba62b0c6 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct232.xml @@ -0,0 +1,15 @@ + + + + UnknownStruct232 + + + 3.0 + + + 2.0 + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct233.xml b/templates/DKCR/Structs/UnknownStruct233.xml new file mode 100644 index 00000000..46625516 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct233.xml @@ -0,0 +1,12 @@ + + + + UnknownStruct233 + + + 1.0 + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct234.xml b/templates/DKCR/Structs/UnknownStruct234.xml new file mode 100644 index 00000000..c0200d80 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct234.xml @@ -0,0 +1,14 @@ + + + + UnknownStruct234 + + + 2 + + + 0.25 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct235.xml b/templates/DKCR/Structs/UnknownStruct235.xml new file mode 100644 index 00000000..2453895d --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct235.xml @@ -0,0 +1,14 @@ + + + + UnknownStruct235 + + + 2.0 + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct236.xml b/templates/DKCR/Structs/UnknownStruct236.xml new file mode 100644 index 00000000..9d7ba708 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct236.xml @@ -0,0 +1,21 @@ + + + + UnknownStruct236 + + + 0x503F6052 + + + + + + + 0.5 + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct237.xml b/templates/DKCR/Structs/UnknownStruct237.xml new file mode 100644 index 00000000..5208610e --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct237.xml @@ -0,0 +1,16 @@ + + + + UnknownStruct237 + + + 1 + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct238.xml b/templates/DKCR/Structs/UnknownStruct238.xml new file mode 100644 index 00000000..5b4f7edc --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct238.xml @@ -0,0 +1,27 @@ + + + + UnknownStruct238 + + + 1.0 + + + 0.5 + + + 10.0 + + + 2.5 + + + 1 + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct239.xml b/templates/DKCR/Structs/UnknownStruct239.xml new file mode 100644 index 00000000..41fb67a3 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct239.xml @@ -0,0 +1,44 @@ + + + + UnknownStruct239 + + + 1.0 + + + 0.66000003 + + + 0.25 + + + 2.0 + + + 1.25 + + + 2.0 + + + 0.5 + + + 0.25 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct240.xml b/templates/DKCR/Structs/UnknownStruct240.xml new file mode 100644 index 00000000..66cd30cd --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct240.xml @@ -0,0 +1,17 @@ + + + + UnknownStruct240 + + + 3.0 + + + 3.0 + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct241.xml b/templates/DKCR/Structs/UnknownStruct241.xml new file mode 100644 index 00000000..ddb47c5d --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct241.xml @@ -0,0 +1,41 @@ + + + + UnknownStruct241 + + + false + + + false + + + false + + + false + + + 0.050000001 + + + 0.25 + + + -6.0 + + + false + + + 0.0 + + + 0xCBF698CA + + + 0x28D5A7D7 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct242.xml b/templates/DKCR/Structs/UnknownStruct242.xml new file mode 100644 index 00000000..4f7f2b8f --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct242.xml @@ -0,0 +1,51 @@ + + + + UnknownStruct242 + + + + STRM + + + + + false + + + 0.050000001 + + + 0.25 + + + -6.0 + + + 0.0 + + + false + + + 2.0 + + + 75.0 + + + 0.0 + + + true + + + 0 + + + false + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct243.xml b/templates/DKCR/Structs/UnknownStruct243.xml new file mode 100644 index 00000000..b8793b2e --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct243.xml @@ -0,0 +1,11 @@ + + + + UnknownStruct243 + + + false + + + + diff --git a/templates/DKCR/Structs/UnknownStruct244.xml b/templates/DKCR/Structs/UnknownStruct244.xml new file mode 100644 index 00000000..5c77dc65 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct244.xml @@ -0,0 +1,17 @@ + + + + UnknownStruct244 + + + false + + + + 1.0 + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct245.xml b/templates/DKCR/Structs/UnknownStruct245.xml new file mode 100644 index 00000000..17f68c89 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct245.xml @@ -0,0 +1,44 @@ + + + + UnknownStruct245 + + + false + + + false + + + false + + + true + + + true + + + false + + + false + + + true + + + true + + + true + + + true + + + false + + + + diff --git a/templates/DKCR/Structs/UnknownStruct246.xml b/templates/DKCR/Structs/UnknownStruct246.xml new file mode 100644 index 00000000..3cd1b761 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct246.xml @@ -0,0 +1,20 @@ + + + + UnknownStruct246 + + + 0xC8E4D939 + + + + + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct247.xml b/templates/DKCR/Structs/UnknownStruct247.xml new file mode 100644 index 00000000..32a8945c --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct247.xml @@ -0,0 +1,24 @@ + + + + UnknownStruct247 + + + + 1.0 + + + false + + + false + + + 4.0 + + + 12.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct248.xml b/templates/DKCR/Structs/UnknownStruct248.xml new file mode 100644 index 00000000..5a06ea35 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct248.xml @@ -0,0 +1,41 @@ + + + + UnknownStruct248 + + + true + + + 0.80000001 + + + 0.2 + + + 1.5 + + + 1.5 + + + 2.1500001 + + + 3.5 + + + 0.75 + + + 0.75 + + + + + CAUD + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct249.xml b/templates/DKCR/Structs/UnknownStruct249.xml new file mode 100644 index 00000000..408d0bb5 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct249.xml @@ -0,0 +1,33 @@ + + + + UnknownStruct249 + + + true + + + 0.5 + + + true + + + true + + + 1.0 + + + 1.5 + + + 0.5 + + + 0.75 + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct250.xml b/templates/DKCR/Structs/UnknownStruct250.xml new file mode 100644 index 00000000..e6412246 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct250.xml @@ -0,0 +1,99 @@ + + + + UnknownStruct250 + + + 40.0 + + + 16.0 + + + 14.0 + + + 0.75 + + + -25.0 + + + 50.0 + + + 20.0 + + + 5.0 + + + 16.0 + + + 0.0 + + + 0.30000001 + + + 0.2 + + + -70.0 + + + 5.0 + + + 50.0 + + + 0.1 + + + 0.1 + + + -16.0 + + + + CAUD + + + + + + + + CAUD + + + + + + + 0.66000003 + + + 20.0 + + + 5.0 + + + 1.0 + + + 18.0 + + + -90.0 + + + 1.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct251.xml b/templates/DKCR/Structs/UnknownStruct251.xml new file mode 100644 index 00000000..048721ed --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct251.xml @@ -0,0 +1,16 @@ + + + + UnknownStruct251 + + + + CAUD + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct252.xml b/templates/DKCR/Structs/UnknownStruct252.xml new file mode 100644 index 00000000..6b4f5485 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct252.xml @@ -0,0 +1,15 @@ + + + + UnknownStruct252 + + + 0.0 + + + 0.0 + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct253.xml b/templates/DKCR/Structs/UnknownStruct253.xml new file mode 100644 index 00000000..8b1f3ed6 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct253.xml @@ -0,0 +1,11 @@ + + + + UnknownStruct253 + + + 2.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct254.xml b/templates/DKCR/Structs/UnknownStruct254.xml new file mode 100644 index 00000000..14229122 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct254.xml @@ -0,0 +1,23 @@ + + + + UnknownStruct254 + + + false + + + false + + + 1.0 + + + 0.5 + + + 1.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct255.xml b/templates/DKCR/Structs/UnknownStruct255.xml new file mode 100644 index 00000000..9df8b8cc --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct255.xml @@ -0,0 +1,15 @@ + + + + UnknownStruct255 + + + 1 + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct256.xml b/templates/DKCR/Structs/UnknownStruct256.xml new file mode 100644 index 00000000..04946032 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct256.xml @@ -0,0 +1,38 @@ + + + + UnknownStruct256 + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + false + + + false + + + + diff --git a/templates/DKCR/Structs/UnknownStruct257.xml b/templates/DKCR/Structs/UnknownStruct257.xml new file mode 100644 index 00000000..7a30a075 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct257.xml @@ -0,0 +1,42 @@ + + + + UnknownStruct257 + + + false + + + false + + + true + + + true + + + false + + + false + + + true + + + false + + + false + + + 1.0 + + + 1.0 + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct258.xml b/templates/DKCR/Structs/UnknownStruct258.xml new file mode 100644 index 00000000..da94f3e6 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct258.xml @@ -0,0 +1,21 @@ + + + + UnknownStruct258 + + + 0x8C665F9A + + + 3.0 + + + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct259.xml b/templates/DKCR/Structs/UnknownStruct259.xml new file mode 100644 index 00000000..9909c167 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct259.xml @@ -0,0 +1,92 @@ + + + + UnknownStruct259 + + + true + + + 55.0 + + + 0.30000001 + + + 3.0 + + + 6.0 + + + 0.2 + + + 12.0 + + + 0.1 + + + 4.0 + + + 1.0 + + + 0.2 + + + 1.0 + + + 0.1 + + + 2.5 + + + 12 + + + 1.0 + + + 0 + + + false + + + 0.0 + + + false + + + + FSMC + + + + -1 + + + -1 + + + -1 + + + 12.0 + + + -1 + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct260.xml b/templates/DKCR/Structs/UnknownStruct260.xml new file mode 100644 index 00000000..c861802c --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct260.xml @@ -0,0 +1,45 @@ + + + + UnknownStruct260 + + + 20.0 + + + 1.0 + + + + CAUD + + + + + + + + CAUD + + + + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct261.xml b/templates/DKCR/Structs/UnknownStruct261.xml new file mode 100644 index 00000000..288b0fa2 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct261.xml @@ -0,0 +1,21 @@ + + + + UnknownStruct261 + + + 0x8C665F9A + + + 3.0 + + + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct262.xml b/templates/DKCR/Structs/UnknownStruct262.xml new file mode 100644 index 00000000..bbe2992e --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct262.xml @@ -0,0 +1,63 @@ + + + + UnknownStruct262 + + + true + + + 0.0 + + + 55.0 + + + 20.0 + + + 12.0 + + + 12.0 + + + 10.0 + + + false + + + 6 + + + 2.0 + + + 9 + + + 0.87 + + + 20 + + + 0.0 + + + 9.0 + + + 13.0 + + + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct264.xml b/templates/DKCR/Structs/UnknownStruct264.xml new file mode 100644 index 00000000..a1727951 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct264.xml @@ -0,0 +1,32 @@ + + + + UnknownStruct264 + + + false + + + false + + + 50 + + + 1 + + + 1 + + + 50 + + + 50 + + + false + + + + diff --git a/templates/DKCR/Structs/UnknownStruct265.xml b/templates/DKCR/Structs/UnknownStruct265.xml new file mode 100644 index 00000000..36091501 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct265.xml @@ -0,0 +1,49 @@ + + + + UnknownStruct265 + + + 0xED68E078 + + + + + + + + true + + + 0xB3D7539F + + + + + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0099999998 + + + 0.0 + + + + 0.0 + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct266.xml b/templates/DKCR/Structs/UnknownStruct266.xml new file mode 100644 index 00000000..a4cdaeaf --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct266.xml @@ -0,0 +1,26 @@ + + + + UnknownStruct266 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct267.xml b/templates/DKCR/Structs/UnknownStruct267.xml new file mode 100644 index 00000000..aa0c4a06 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct267.xml @@ -0,0 +1,25 @@ + + + + UnknownStruct267 + + + + + 1.0 + + + 2.0 + + + false + + + false + + + false + + + + diff --git a/templates/DKCR/Structs/UnknownStruct268.xml b/templates/DKCR/Structs/UnknownStruct268.xml new file mode 100644 index 00000000..7c2e707f --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct268.xml @@ -0,0 +1,27 @@ + + + + UnknownStruct268 + + + + CAUD + + + + 0x2FD7B2AA + + + + + + + + 0.5 + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct269.xml b/templates/DKCR/Structs/UnknownStruct269.xml new file mode 100644 index 00000000..1d8a1243 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct269.xml @@ -0,0 +1,17 @@ + + + + UnknownStruct269 + + + true + + + true + + + true + + + + diff --git a/templates/DKCR/Structs/UnknownStruct270.xml b/templates/DKCR/Structs/UnknownStruct270.xml new file mode 100644 index 00000000..4f131b85 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct270.xml @@ -0,0 +1,14 @@ + + + + UnknownStruct270 + + + false + + + false + + + + diff --git a/templates/DKCR/Structs/UnknownStruct271.xml b/templates/DKCR/Structs/UnknownStruct271.xml new file mode 100644 index 00000000..8967f730 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct271.xml @@ -0,0 +1,24 @@ + + + + UnknownStruct271 + + + + 2.0 + + + 0.25 + + + 3.0 + + + 3.0 + + + 0.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct272.xml b/templates/DKCR/Structs/UnknownStruct272.xml new file mode 100644 index 00000000..4b1df797 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct272.xml @@ -0,0 +1,21 @@ + + + + UnknownStruct272 + + + 0xEA8DB211 + + + + + + + + + + 0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct273.xml b/templates/DKCR/Structs/UnknownStruct273.xml new file mode 100644 index 00000000..b1548432 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct273.xml @@ -0,0 +1,14 @@ + + + + UnknownStruct273 + + + 1 + + + 1 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct274.xml b/templates/DKCR/Structs/UnknownStruct274.xml new file mode 100644 index 00000000..8df1f7c6 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct274.xml @@ -0,0 +1,84 @@ + + + + UnknownStruct274 + + + 0xC0C853B9 + + + + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct275.xml b/templates/DKCR/Structs/UnknownStruct275.xml new file mode 100644 index 00000000..eff6ab6d --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct275.xml @@ -0,0 +1,43 @@ + + + + UnknownStruct275 + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct276.xml b/templates/DKCR/Structs/UnknownStruct276.xml new file mode 100644 index 00000000..d47b0991 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct276.xml @@ -0,0 +1,18 @@ + + + + UnknownStruct276 + + + + 5.0 + + + 4.0 + + + 5.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct277.xml b/templates/DKCR/Structs/UnknownStruct277.xml new file mode 100644 index 00000000..6e2c1dcb --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct277.xml @@ -0,0 +1,16 @@ + + + + UnknownStruct277 + + + 0x10DEA989 + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct278.xml b/templates/DKCR/Structs/UnknownStruct278.xml new file mode 100644 index 00000000..86c5dbbb --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct278.xml @@ -0,0 +1,15 @@ + + + + UnknownStruct278 + + + 0 + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct279.xml b/templates/DKCR/Structs/UnknownStruct279.xml new file mode 100644 index 00000000..8a7ea7e9 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct279.xml @@ -0,0 +1,17 @@ + + + + UnknownStruct279 + + + 1 + + + 2.0 + + + 30.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct280.xml b/templates/DKCR/Structs/UnknownStruct280.xml new file mode 100644 index 00000000..256b3d63 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct280.xml @@ -0,0 +1,23 @@ + + + + UnknownStruct280 + + + 2 + + + 4 + + + 2.0 + + + 1.0 + + + 30.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct281.xml b/templates/DKCR/Structs/UnknownStruct281.xml new file mode 100644 index 00000000..8aea122f --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct281.xml @@ -0,0 +1,14 @@ + + + + UnknownStruct281 + + + 1 + + + 30.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct282.xml b/templates/DKCR/Structs/UnknownStruct282.xml new file mode 100644 index 00000000..9193fb68 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct282.xml @@ -0,0 +1,17 @@ + + + + UnknownStruct282 + + + 3 + + + 5 + + + 0.5 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct283.xml b/templates/DKCR/Structs/UnknownStruct283.xml new file mode 100644 index 00000000..bab2be4f --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct283.xml @@ -0,0 +1,14 @@ + + + + UnknownStruct283 + + + 1 + + + 3 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct284.xml b/templates/DKCR/Structs/UnknownStruct284.xml new file mode 100644 index 00000000..67f8fe39 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct284.xml @@ -0,0 +1,11 @@ + + + + UnknownStruct284 + + + 1 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct285.xml b/templates/DKCR/Structs/UnknownStruct285.xml new file mode 100644 index 00000000..c0b71216 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct285.xml @@ -0,0 +1,18 @@ + + + + UnknownStruct285 + + + + + + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct286.xml b/templates/DKCR/Structs/UnknownStruct286.xml new file mode 100644 index 00000000..7a04f604 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct286.xml @@ -0,0 +1,14 @@ + + + + UnknownStruct286 + + + 0 + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct287.xml b/templates/DKCR/Structs/UnknownStruct287.xml new file mode 100644 index 00000000..ab8a57f9 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct287.xml @@ -0,0 +1,16 @@ + + + + UnknownStruct287 + + + 0x99761FAF + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct288.xml b/templates/DKCR/Structs/UnknownStruct288.xml new file mode 100644 index 00000000..e9d334fd --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct288.xml @@ -0,0 +1,20 @@ + + + + UnknownStruct288 + + + 32.0 + + + 8.0 + + + 10.0 + + + 50.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct289.xml b/templates/DKCR/Structs/UnknownStruct289.xml new file mode 100644 index 00000000..dc626e62 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct289.xml @@ -0,0 +1,12 @@ + + + + UnknownStruct289 + + + + 50.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct290.xml b/templates/DKCR/Structs/UnknownStruct290.xml new file mode 100644 index 00000000..2269b344 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct290.xml @@ -0,0 +1,12 @@ + + + + UnknownStruct290 + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct291.xml b/templates/DKCR/Structs/UnknownStruct291.xml new file mode 100644 index 00000000..882d5b85 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct291.xml @@ -0,0 +1,27 @@ + + + + UnknownStruct291 + + + 3.4000001 + + + 0.5 + + + 1.0 + + + 0.5 + + + + PART + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct292.xml b/templates/DKCR/Structs/UnknownStruct292.xml new file mode 100644 index 00000000..c0b664a4 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct292.xml @@ -0,0 +1,32 @@ + + + + UnknownStruct292 + + + + CMDL + + + + + 1.5 + + + 0.69999999 + + + 1.0 + + + 0.2 + + + + PART + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct293.xml b/templates/DKCR/Structs/UnknownStruct293.xml new file mode 100644 index 00000000..7422cc9f --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct293.xml @@ -0,0 +1,17 @@ + + + + UnknownStruct293 + + + 0 + + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct294.xml b/templates/DKCR/Structs/UnknownStruct294.xml new file mode 100644 index 00000000..5465ae2b --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct294.xml @@ -0,0 +1,12 @@ + + + + UnknownStruct294 + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct295.xml b/templates/DKCR/Structs/UnknownStruct295.xml new file mode 100644 index 00000000..60ac8e09 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct295.xml @@ -0,0 +1,16 @@ + + + + UnknownStruct295 + + + 55.0 + + + 0.5 + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct296.xml b/templates/DKCR/Structs/UnknownStruct296.xml new file mode 100644 index 00000000..e173a062 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct296.xml @@ -0,0 +1,14 @@ + + + + UnknownStruct296 + + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct297.xml b/templates/DKCR/Structs/UnknownStruct297.xml new file mode 100644 index 00000000..cefcf795 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct297.xml @@ -0,0 +1,90 @@ + + + + UnknownStruct297 + + + 15.0 + + + 35.0 + + + 3.0 + + + 12.5 + + + 20.0 + + + 15.0 + + + 20.0 + + + -9.0 + + + 0.80000001 + + + 0.80000001 + + + 0.2 + + + 0.80000001 + + + 10.0 + + + 0.94999999 + + + 360.0 + + + 30.0 + + + 35.0 + + + 4.0 + + + 10.0 + + + 4.0 + + + 4.0 + + + 1.0 + + + + CAUD + + + + + + + + CAUD + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct298.xml b/templates/DKCR/Structs/UnknownStruct298.xml new file mode 100644 index 00000000..da0e0122 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct298.xml @@ -0,0 +1,36 @@ + + + + UnknownStruct298 + + + + true + + + 12.0 + + + 12.0 + + + 55.0 + + + 4 + + + 0.0 + + + 3.0 + + + 6.0 + + + 9.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct299.xml b/templates/DKCR/Structs/UnknownStruct299.xml new file mode 100644 index 00000000..eee7c647 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct299.xml @@ -0,0 +1,18 @@ + + + + UnknownStruct299 + + + false + + + + 0.0 + 0.0 + 0.0 + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct510.xml b/templates/DKCR/Structs/UnknownStruct510.xml new file mode 100644 index 00000000..47bf65ff --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct510.xml @@ -0,0 +1,19 @@ + + + + UnknownStruct510 + + + 0x845C872E + + + + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct59.xml b/templates/DKCR/Structs/UnknownStruct59.xml new file mode 100644 index 00000000..995327d4 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct59.xml @@ -0,0 +1,14 @@ + + + + UnknownStruct59 + + + 3.0 + + + 7.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct60.xml b/templates/DKCR/Structs/UnknownStruct60.xml new file mode 100644 index 00000000..df2d2633 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct60.xml @@ -0,0 +1,20 @@ + + + + UnknownStruct60 + + + 0x226CDE94 + + + + + + + + + 0x25234BDB + + + + diff --git a/templates/DKCR/Structs/UnknownStruct61.xml b/templates/DKCR/Structs/UnknownStruct61.xml new file mode 100644 index 00000000..f30ae34c --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct61.xml @@ -0,0 +1,20 @@ + + + + UnknownStruct61 + + + 6 + + + 20.0 + + + 15.0 + + + 20.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct62.xml b/templates/DKCR/Structs/UnknownStruct62.xml new file mode 100644 index 00000000..65c8d020 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct62.xml @@ -0,0 +1,11 @@ + + + + UnknownStruct62 + + + 2.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct63.xml b/templates/DKCR/Structs/UnknownStruct63.xml new file mode 100644 index 00000000..8c70b929 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct63.xml @@ -0,0 +1,40 @@ + + + + UnknownStruct63 + + + 20.0 + + + 1.0 + + + + CAUD + + + + + + + + CAUD + + + + + + + + CAUD + + + + + CAUD + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct64.xml b/templates/DKCR/Structs/UnknownStruct64.xml new file mode 100644 index 00000000..82e7a2dc --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct64.xml @@ -0,0 +1,17 @@ + + + + UnknownStruct64 + + + 50.0 + + + 30.0 + + + 60.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct65.xml b/templates/DKCR/Structs/UnknownStruct65.xml new file mode 100644 index 00000000..66812ec4 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct65.xml @@ -0,0 +1,16 @@ + + + + UnknownStruct65 + + + + 0xB7646F3 + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct66.xml b/templates/DKCR/Structs/UnknownStruct66.xml new file mode 100644 index 00000000..da7f2c26 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct66.xml @@ -0,0 +1,17 @@ + + + + UnknownStruct66 + This struct isn't read by the game, so it has no ingame effect. + + + Always + false + + + + 0.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct67.xml b/templates/DKCR/Structs/UnknownStruct67.xml new file mode 100644 index 00000000..84cbed4d --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct67.xml @@ -0,0 +1,12 @@ + + + + UnknownStruct67 + + + + true + + + + diff --git a/templates/DKCR/Structs/UnknownStruct68.xml b/templates/DKCR/Structs/UnknownStruct68.xml new file mode 100644 index 00000000..cd21ae1d --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct68.xml @@ -0,0 +1,18 @@ + + + + UnknownStruct68 + + + 0xD7ECE572 + + + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct69.xml b/templates/DKCR/Structs/UnknownStruct69.xml new file mode 100644 index 00000000..a0c2ee84 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct69.xml @@ -0,0 +1,50 @@ + + + + UnknownStruct69 + + + 3.0 + + + 1.0 + + + 14.0 + + + 11.0 + + + 5.5 + + + 2.5 + + + 0.75 + + + 2.0 + + + 6.0999999 + + + true + + + 1.1 + + + true + + + 0.1 + + + 0.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct70.xml b/templates/DKCR/Structs/UnknownStruct70.xml new file mode 100644 index 00000000..b9fea0ac --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct70.xml @@ -0,0 +1,17 @@ + + + + UnknownStruct70 + + + 2.0 + + + 1.0 + + + false + + + + diff --git a/templates/DKCR/Structs/UnknownStruct71.xml b/templates/DKCR/Structs/UnknownStruct71.xml new file mode 100644 index 00000000..02507f7e --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct71.xml @@ -0,0 +1,22 @@ + + + + UnknownStruct71 + + + 0x2AD11F8C + + + + + + + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct72.xml b/templates/DKCR/Structs/UnknownStruct72.xml new file mode 100644 index 00000000..64e65a14 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct72.xml @@ -0,0 +1,20 @@ + + + + UnknownStruct72 + + + 0.5 + + + true + + + 0.5 + + + 1.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct73.xml b/templates/DKCR/Structs/UnknownStruct73.xml new file mode 100644 index 00000000..3e6d277a --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct73.xml @@ -0,0 +1,25 @@ + + + + UnknownStruct73 + + + + 26.0 + 0.0 + 0.0 + + + + + false + + + false + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct74.xml b/templates/DKCR/Structs/UnknownStruct74.xml new file mode 100644 index 00000000..a3bc0e5e --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct74.xml @@ -0,0 +1,9 @@ + + + + UnknownStruct74 + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct76.xml b/templates/DKCR/Structs/UnknownStruct76.xml new file mode 100644 index 00000000..c101406b --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct76.xml @@ -0,0 +1,21 @@ + + + + UnknownStruct76 + + + + false + + + + 0xB1059189 + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct77.xml b/templates/DKCR/Structs/UnknownStruct77.xml new file mode 100644 index 00000000..d4ba4f44 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct77.xml @@ -0,0 +1,30 @@ + + + + UnknownStruct77 + + + + + + true + + + + 4.0 + + + 9.0 + + + 1.0 + + + 4.25 + + + 12.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct83.xml b/templates/DKCR/Structs/UnknownStruct83.xml new file mode 100644 index 00000000..b63da5b8 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct83.xml @@ -0,0 +1,24 @@ + + + + UnknownStruct83 + + + 0xD16A0571 + + + + + + + 4 + + + 3 + + + 0.5 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct84.xml b/templates/DKCR/Structs/UnknownStruct84.xml new file mode 100644 index 00000000..45e4e626 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct84.xml @@ -0,0 +1,22 @@ + + + + UnknownStruct84 + + + 0xE56D8C03 + + + + + + + + + + + false + + + + diff --git a/templates/DKCR/Structs/UnknownStruct85.xml b/templates/DKCR/Structs/UnknownStruct85.xml new file mode 100644 index 00000000..ba61f070 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct85.xml @@ -0,0 +1,17 @@ + + + + UnknownStruct85 + + + true + + + 0.5 + + + 1.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct86.xml b/templates/DKCR/Structs/UnknownStruct86.xml new file mode 100644 index 00000000..4b062812 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct86.xml @@ -0,0 +1,25 @@ + + + + UnknownStruct86 + + + true + + + 1.0 + + + 0x8FE7F58B + + + + + + + + 1.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct87.xml b/templates/DKCR/Structs/UnknownStruct87.xml new file mode 100644 index 00000000..e79227b4 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct87.xml @@ -0,0 +1,20 @@ + + + + UnknownStruct87 + + + 3.0 + + + 3.0 + + + 0.33000001 + + + 2.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct88.xml b/templates/DKCR/Structs/UnknownStruct88.xml new file mode 100644 index 00000000..32899637 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct88.xml @@ -0,0 +1,11 @@ + + + + UnknownStruct88 + + + 0.5 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct89.xml b/templates/DKCR/Structs/UnknownStruct89.xml new file mode 100644 index 00000000..ea9235f7 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct89.xml @@ -0,0 +1,40 @@ + + + + UnknownStruct89 + + + 55.0 + + + true + + + true + + + 5.0 + + + 0.66000003 + + + 10.0 + + + 3.0 + + + 5 + + + 3.5 + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct9.xml b/templates/DKCR/Structs/UnknownStruct9.xml new file mode 100644 index 00000000..a73b0660 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct9.xml @@ -0,0 +1,35 @@ + + + + UnknownStruct9 + + + 0.0 + + + 1.0 + + + 1.0 + + + false + + + true + + + false + + + 7.0 + + + false + + + 5.0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct91.xml b/templates/DKCR/Structs/UnknownStruct91.xml new file mode 100644 index 00000000..cf63db36 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct91.xml @@ -0,0 +1,35 @@ + + + + UnknownStruct91 + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + + diff --git a/templates/DKCR/Structs/UnknownStruct92.xml b/templates/DKCR/Structs/UnknownStruct92.xml new file mode 100644 index 00000000..e6de009f --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct92.xml @@ -0,0 +1,14 @@ + + + + UnknownStruct92 + + + true + + + true + + + + diff --git a/templates/DKCR/Structs/UnknownStruct93.xml b/templates/DKCR/Structs/UnknownStruct93.xml new file mode 100644 index 00000000..cc98758f --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct93.xml @@ -0,0 +1,38 @@ + + + + UnknownStruct93 + + + false + + + false + + + + + TXTR + + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 30.0 + + + 0 + + + + diff --git a/templates/DKCR/Structs/UnknownStruct94.xml b/templates/DKCR/Structs/UnknownStruct94.xml new file mode 100644 index 00000000..b694bdf6 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct94.xml @@ -0,0 +1,10 @@ + + + + UnknownStruct94 + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct95.xml b/templates/DKCR/Structs/UnknownStruct95.xml new file mode 100644 index 00000000..96aa5a63 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct95.xml @@ -0,0 +1,37 @@ + + + + UnknownStruct95 + + + + + + 1.5 + + + 10.0 + + + 10.0 + + + 1.0 + + + 1.0 + + + 1.0 + + + + + + + + + + + + diff --git a/templates/DKCR/Structs/UnknownStruct96.xml b/templates/DKCR/Structs/UnknownStruct96.xml new file mode 100644 index 00000000..39ccfff8 --- /dev/null +++ b/templates/DKCR/Structs/UnknownStruct96.xml @@ -0,0 +1,14 @@ + + + + UnknownStruct96 + + + true + + + true + + + + diff --git a/templates/DKCR/Structs/VelocityConvergence.xml b/templates/DKCR/Structs/VelocityConvergence.xml new file mode 100644 index 00000000..7945073e --- /dev/null +++ b/templates/DKCR/Structs/VelocityConvergence.xml @@ -0,0 +1,17 @@ + + + + VelocityConvergence + + + 0.0 + + + 0.0 + + + 1.0 + + + + diff --git a/templates/DKCR/Structs/VerticalFlightBehaviorData.xml b/templates/DKCR/Structs/VerticalFlightBehaviorData.xml new file mode 100644 index 00000000..f50fc6de --- /dev/null +++ b/templates/DKCR/Structs/VerticalFlightBehaviorData.xml @@ -0,0 +1,14 @@ + + + + VerticalFlightBehaviorData + + + 0.0 + + + false + + + + diff --git a/templates/DKCR/Structs/VisControl.xml b/templates/DKCR/Structs/VisControl.xml new file mode 100644 index 00000000..7d2cdcd1 --- /dev/null +++ b/templates/DKCR/Structs/VisControl.xml @@ -0,0 +1,14 @@ + + + + VisControl + + + 0 + + + + + + + diff --git a/templates/DKCR/Structs/WanderBehaviorData.xml b/templates/DKCR/Structs/WanderBehaviorData.xml new file mode 100644 index 00000000..aeee7b19 --- /dev/null +++ b/templates/DKCR/Structs/WanderBehaviorData.xml @@ -0,0 +1,46 @@ + + + + WanderBehaviorData + + + false + + + false + + + false + + + 0.0 + + + false + + + 7.0 + + + 1.0 + + + false + + + 3.0 + + + false + + + false + + + + false + + + + + diff --git a/templates/DKCR/Structs/WanderRandomTurnData.xml b/templates/DKCR/Structs/WanderRandomTurnData.xml new file mode 100644 index 00000000..b694edea --- /dev/null +++ b/templates/DKCR/Structs/WanderRandomTurnData.xml @@ -0,0 +1,17 @@ + + + + WanderRandomTurnData + + + 2.0 + + + 5.0 + + + 4.0 + + + + diff --git a/templates/DKCR/Structs/ZoomBehaviorData.xml b/templates/DKCR/Structs/ZoomBehaviorData.xml new file mode 100644 index 00000000..3f54f78d --- /dev/null +++ b/templates/DKCR/Structs/ZoomBehaviorData.xml @@ -0,0 +1,55 @@ + + + + ZoomBehaviorData + + + + true + + + false + + + 1.777 + + + false + + + + true + + + true + + + 1.5 + + + + + 0xBCC8352 + + + + + 15.0 + + + 100.0 + + + + + + + + false + + + 30.5 + + + + diff --git a/templates/GameList.xml b/templates/GameList.xml index 21871ada..0e94e7cd 100644 --- a/templates/GameList.xml +++ b/templates/GameList.xml @@ -1,34 +1,27 @@ - - Properties.xml - - Metroid Prime - 0x0F - mp1/MasterTemplate.xml - - - Metroid Prime 2: Echoes Bonus Disc - 0x15 - mp2demo/MasterTemplate.xml - - - Metroid Prime 2: Echoes - 0x19 - mp2/MasterTemplate.xml - - - Metroid Prime 3: Corruption E3 2006 Prototype Build - 0x1D - mp3proto/MasterTemplate.xml - - - Metroid Prime 3: Corruption - 0x1E - mp3/MasterTemplate.xml - - - Donkey Kong Country Returns - 0x20 - dkcr/MasterTemplate.xml - + + + Metroid Prime + MP1/Game.xml + + + Metroid Prime 2: Echoes Bonus Disc + MP2Demo/Game.xml + + + Metroid Prime 2: Echoes + MP2/Game.xml + + + Metroid Prime 3: Corruption E3 2006 Prototype Build + MP3Proto/Game.xml + + + Metroid Prime 3: Corruption + MP3/Game.xml + + + Donkey Kong Country Returns + DKCR/Game.xml + diff --git a/templates/MP1/Enums/PlayerItem.xml b/templates/MP1/Enums/PlayerItem.xml new file mode 100644 index 00000000..6228d943 --- /dev/null +++ b/templates/MP1/Enums/PlayerItem.xml @@ -0,0 +1,50 @@ + + + + PlayerItem + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/MP1/Game.xml b/templates/MP1/Game.xml new file mode 100644 index 00000000..ab731979 --- /dev/null +++ b/templates/MP1/Game.xml @@ -0,0 +1,895 @@ + + + + + 0x0 + + + + 0x2 + + + + 0x3 + + + + 0x4 + + + + 0x5 + + + + 0x6 + + + + 0x7 + + + + 0x8 + + + + 0x9 + + + + 0xA + + + + 0xB + + + + 0xC + + + + 0xD + + + + 0xE + + + + 0xF + + + + 0x10 + + + + 0x11 + + + + 0x13 + + + + 0x14 + + + + 0x15 + + + + 0x16 + + + + 0x17 + + + + 0x18 + + + + 0x19 + + + + 0x1A + + + + 0x1B + + + + 0x1C + + + + 0x1D + + + + 0x20 + + + + 0x21 + + + + 0x24 + + + + 0x25 + + + + 0x26 + + + + 0x27 + + + + 0x28 + + + + 0x2A + + + + 0x2C + + + + 0x2D + + + + 0x2E + + + + 0x2F + + + + 0x30 + + + + 0x31 + + + + 0x32 + + + + 0x33 + + + + 0x34 + + + + 0x35 + + + + 0x36 + + + + 0x37 + + + + 0x38 + + + + 0x39 + + + + 0x3A + + + + 0x3B + + + + 0x3D + + + + 0x3E + + + + 0x3F + + + + 0x40 + + + + 0x41 + + + + 0x42 + + + + 0x43 + + + + 0x44 + + + + 0x45 + + + + 0x46 + + + + 0x47 + + + + 0x48 + + + + 0x49 + + + + 0x4A + + + + 0x4B + + + + 0x4C + + + + 0x4D + + + + 0x4E + + + + 0x4F + + + + 0x50 + + + + 0x51 + + + + 0x52 + + + + 0x53 + + + + 0x54 + + + + 0x55 + + + + 0x56 + + + + 0x57 + + + + 0x58 + + + + 0x5A + + + + 0x5B + + + + 0x5C + + + + 0x5D + + + + 0x5E + + + + 0x5F + + + + 0x60 + + + + 0x61 + + + + 0x62 + + + + 0x63 + + + + 0x64 + + + + 0x65 + + + + 0x66 + + + + 0x67 + + + + 0x68 + + + + 0x69 + + + + 0x6A + + + + 0x6B + + + + 0x6C + + + + 0x6D + + + + 0x6E + + + + 0x6F + + + + 0x70 + + + + 0x71 + + + + 0x72 + + + + 0x73 + + + + 0x74 + + + + 0x75 + + + + 0x77 + + + + 0x78 + + + + 0x79 + + + + 0x7A + + + + 0x7B + + + + 0x7C + + + + 0x7D + + + + 0x7F + + + + 0x81 + + + + 0x82 + + + + 0x83 + + + + 0x84 + + + + 0x85 + + + + 0x86 + + + + 0x87 + + + + 0x88 + + + + 0x89 + + + + 0x8A + + + + 0x8B + + + + + + ActorParameters + + + + BeamCombos + + + + BehaveChance + + + + BoolFloat + + + + BoolVec3f + + + + CameraHintStruct + + + + ChargedBeams + + + + DamageInfo + + + + DamageVulnerability + + + + FlareDef + + + + FluidLayerMotion + + + + FluidUVMotion + + + + GrappleParameters + + + + GuessStruct + + + + HealthInfo + + + + IntBool + + + + LayerSwitch + + + + LightParameters + + + + MagdoliteStruct + + + + MassivePrimeStruct + + + + NewCameraShakerStruct + + + + PathCameraStruct + + + + PatternedAITypedef + + + + PlayerAction + + + + PlayerActorStruct + + + + PlayerHintStruct + + + + PlayerItem + + + + PrimeStruct1 + + + + PrimeStruct2 + + + + PrimeStruct3 + + + + PrimeStruct4 + + + + PrimeStruct5 + + + + PrimeStruct6 + + + + RidleyStruct1 + + + + RidleyStruct2 + + + + RumbleEffectStruct + + + + ScannableParameters + + + + ScriptBeamStruct + + + + SpindleCameraStruct + + + + Vector2f + + + + VisorParameters + + + + VulnerabilityType + + + + WeaponType + + + + + + 0x0 + Active + + + 0x1 + Arrived + + + 0x2 + Closed + + + 0x3 + Entered + + + 0x4 + Exited + + + 0x5 + Inactive + + + 0x6 + Inside + + + 0x7 + MaxReached + + + 0x8 + Open + + + 0x9 + Zero + + + 0xA + Attack + + + 0xB + UnknownState1 + + + 0xC + Retreat + + + 0xD + Patrol + + + 0xE + Dead + + + 0xF + CameraPath + + + 0x10 + CameraTarget + + + 0x11 + UnknownState2 + + + 0x12 + Play + + + 0x13 + UnknownState3 + + + 0x14 + DeathRattle + + + 0x15 + UnknownState4 + + + 0x16 + Damage + + + 0x17 + UnknownState5 + + + 0x18 + UnknownState6 + + + 0x19 + Modify + + + 0x1C + ScanDone + + + 0x1E + DFST + + + 0x1F + ReflectedDamage + + + 0x20 + InheritBounds + + + + + 0x1 + Activate + + + 0x2 + UnknownMessage1 + + + 0x3 + Close + + + 0x4 + Deactivate + + + 0x5 + Decrement + + + 0x6 + Follow + + + 0x7 + Increment + + + 0x8 + Next + + + 0x9 + Open + + + 0xA + Reset + + + 0xB + ResetAndStart + + + 0xC + SetToMax + + + 0xD + SetToZero + + + 0xE + Start + + + 0xF + Stop + + + 0x10 + StopAndReset + + + 0x11 + ToggleActive + + + 0x12 + UnknownMessage2 + + + 0x13 + Action + + + 0x14 + Play + + + 0x15 + Alert + + + diff --git a/templates/MP1/Structs/BoolFloat.xml b/templates/MP1/Structs/BoolFloat.xml new file mode 100644 index 00000000..a43b7eb0 --- /dev/null +++ b/templates/MP1/Structs/BoolFloat.xml @@ -0,0 +1,15 @@ + + + + BoolFloat + true + + + Unknown 1 + + + Unknown 2 + + + + diff --git a/templates/MP1/Structs/BoolVec3f.xml b/templates/MP1/Structs/BoolVec3f.xml new file mode 100644 index 00000000..5295c001 --- /dev/null +++ b/templates/MP1/Structs/BoolVec3f.xml @@ -0,0 +1,15 @@ + + + + BoolVec3f + true + + + Unknown 1 + + + Unknown 2 + + + + diff --git a/templates/MP1/Structs/CameraHintStruct.xml b/templates/MP1/Structs/CameraHintStruct.xml new file mode 100644 index 00000000..d160aaa0 --- /dev/null +++ b/templates/MP1/Structs/CameraHintStruct.xml @@ -0,0 +1,74 @@ + + + + CameraHintStruct + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + Unknown 12 + + + Unknown 13 + + + Unknown 14 + + + Unknown 15 + + + Unknown 16 + + + Unknown 17 + + + Unknown 18 + + + Unknown 19 + + + Unknown 21 + + + Unknown 22 + + + Unknown 23 + + + + diff --git a/templates/MP1/Structs/GuessStruct.xml b/templates/MP1/Structs/GuessStruct.xml new file mode 100644 index 00000000..019a5d09 --- /dev/null +++ b/templates/MP1/Structs/GuessStruct.xml @@ -0,0 +1,15 @@ + + + + GuessStruct + true + + + Unknown 1 + + + Unknown 2 + + + + diff --git a/templates/MP1/Structs/IntBool.xml b/templates/MP1/Structs/IntBool.xml new file mode 100644 index 00000000..69c5c14c --- /dev/null +++ b/templates/MP1/Structs/IntBool.xml @@ -0,0 +1,15 @@ + + + + IntBool + true + + + Unknown 1 + + + Unknown 2 + + + + diff --git a/templates/MP1/Structs/MagdoliteStruct.xml b/templates/MP1/Structs/MagdoliteStruct.xml new file mode 100644 index 00000000..2ac93d57 --- /dev/null +++ b/templates/MP1/Structs/MagdoliteStruct.xml @@ -0,0 +1,29 @@ + + + + MagdoliteStruct + + + Unknown 1 + + + Particle + + PART + + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + + diff --git a/templates/MP1/Structs/MassivePrimeStruct.xml b/templates/MP1/Structs/MassivePrimeStruct.xml new file mode 100644 index 00000000..7b4a70a8 --- /dev/null +++ b/templates/MP1/Structs/MassivePrimeStruct.xml @@ -0,0 +1,191 @@ + + + + MassivePrimeStruct + true + + + Unknown 1 + + + + + Unknown 2 + + + PrimeStruct2 1 + + + PrimeStruct2 2 + + + PrimeStruct2 3 + + + Unknown 3 + + + Particle 1 + + PART + + + + Particle 2 + + PART + + + + Particle 3 + + PART + + + + DamageInfo 1 + + + Unknown 4 + + + Unknown 5 + + + Texture 1 + + TXTR + + + + Unknown 6 + + + Unknown 7 + + + Particle 4 + + PART + + + + PrimeStruct4 1 + + + PrimeStruct4 2 + + + PrimeStruct4 3 + + + PrimeStruct4 4 + + + WPSC 1 + + WPSC + + + + DamageInfo 2 + + + PrimeStruct2 4 + + + WPSC 2 + + WPSC + + + + DamageInfo 3 + + + PrimeStruct2 5 + + + Unknown 8 + + + Particle 5 + + PART + + + + DamageInfo 4 + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + Texture 2 + + TXTR + + + + Unknown 12 + + + Unknown 13 + + + Unknown 14 + + + Unknown 15 + + + DamageInfo 5 + + + PrimeStruct2 6 + + + Particle 6 + + PART + + + + SWHC + + SWHC + + + + Particle 7 + + PART + + + + Particle 8 + + PART + + + + PrimeStruct6 1 + + + PrimeStruct6 2 + + + PrimeStruct6 3 + + + PrimeStruct6 4 + + + + diff --git a/templates/MP1/Structs/NewCameraShakerStruct.xml b/templates/MP1/Structs/NewCameraShakerStruct.xml new file mode 100644 index 00000000..347156d0 --- /dev/null +++ b/templates/MP1/Structs/NewCameraShakerStruct.xml @@ -0,0 +1,51 @@ + + + + NewCameraShakerStruct + true + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + Unknown 12 + + + Unknown 13 + + + Unknown 14 + + + + diff --git a/templates/MP1/Structs/PathCameraStruct.xml b/templates/MP1/Structs/PathCameraStruct.xml new file mode 100644 index 00000000..5804a3e8 --- /dev/null +++ b/templates/MP1/Structs/PathCameraStruct.xml @@ -0,0 +1,26 @@ + + + + PathCameraStruct + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + + diff --git a/templates/MP1/Structs/PatternedAITypedef.xml b/templates/MP1/Structs/PatternedAITypedef.xml new file mode 100644 index 00000000..2a28d9b7 --- /dev/null +++ b/templates/MP1/Structs/PatternedAITypedef.xml @@ -0,0 +1,129 @@ + + + + PatternedAITypedef + + + Mass + + + Speed + + + Turn Speed + + + Detection Range + + + Detection Height Range + + + Detection Angle + + + Min Attack Range + + + Max Attack Range + + + Average Attack Time + + + Attack Time Variation + + + Leash Radius + + + Player Leash Radius + + + Player Leash Time + + + ContactDamage + + + Damage Wait Time + + + + Vulnerability + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Death Sound + + + AnimationParameters + + + Active + + + State Machine + + AFSM + + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + Unknown 12 + + + Particle 1 + + PART + + + + Unknown 13 + + + Unknown 14 + + + Particle 2 + + PART + + + + Ice Shatter Sound + + + + diff --git a/templates/MP1/Structs/PlayerActorStruct.xml b/templates/MP1/Structs/PlayerActorStruct.xml new file mode 100644 index 00000000..bbf05dbc --- /dev/null +++ b/templates/MP1/Structs/PlayerActorStruct.xml @@ -0,0 +1,23 @@ + + + + PlayerActorStruct + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + + diff --git a/templates/MP1/Structs/PlayerHintStruct.xml b/templates/MP1/Structs/PlayerHintStruct.xml new file mode 100644 index 00000000..32905c17 --- /dev/null +++ b/templates/MP1/Structs/PlayerHintStruct.xml @@ -0,0 +1,56 @@ + + + + PlayerHintStruct + + + Unknown 1 + + + Unknown 2 + Inverts morph ball controls? + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + Affects Spider Ball controls in some situations. + + + Disable Unmorph + + + Disable Morph + + + Disable Controls + + + Disable Boost + + + Activate Combat Visor + + + Activate Scan Visor + + + Activate Thermal Visor + + + Activate X-Ray Visor + + + Unknown 6 + + + Face Object On Unmorph + On state Play, send a Play message to the target object. + + + + diff --git a/templates/MP1/Structs/PrimeStruct1.xml b/templates/MP1/Structs/PrimeStruct1.xml new file mode 100644 index 00000000..a06b9614 --- /dev/null +++ b/templates/MP1/Structs/PrimeStruct1.xml @@ -0,0 +1,50 @@ + + + + PrimeStruct1 + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + Unknown 12 + + + Unknown 13 + + + Unknown 14 + + + + diff --git a/templates/MP1/Structs/PrimeStruct2.xml b/templates/MP1/Structs/PrimeStruct2.xml new file mode 100644 index 00000000..0d49436f --- /dev/null +++ b/templates/MP1/Structs/PrimeStruct2.xml @@ -0,0 +1,27 @@ + + + + PrimeStruct2 + true + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + PrimeStruct3 1 + + + PrimeStruct3 2 + + + PrimeStruct3 3 + + + + diff --git a/templates/MP1/Structs/PrimeStruct3.xml b/templates/MP1/Structs/PrimeStruct3.xml new file mode 100644 index 00000000..c202b61d --- /dev/null +++ b/templates/MP1/Structs/PrimeStruct3.xml @@ -0,0 +1,36 @@ + + + + PrimeStruct3 + true + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + + diff --git a/templates/MP1/Structs/PrimeStruct4.xml b/templates/MP1/Structs/PrimeStruct4.xml new file mode 100644 index 00000000..28dd5e6f --- /dev/null +++ b/templates/MP1/Structs/PrimeStruct4.xml @@ -0,0 +1,88 @@ + + + + PrimeStruct4 + true + + + Unknown 1 + + + Unknown 2 + + + Particle 1 + + PART + + + + Particle 2 + + PART + + + + Texture 1 + + TXTR + + + + Texture 2 + + TXTR + + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + Unknown 12 + + + Unknown 13 + + + WPSC + + WPSC + + + + DamageInfo 1 + + + + Unknown 22 + + + DamageInfo 2 + + + + diff --git a/templates/MP1/Structs/PrimeStruct5.xml b/templates/MP1/Structs/PrimeStruct5.xml new file mode 100644 index 00000000..43381f69 --- /dev/null +++ b/templates/MP1/Structs/PrimeStruct5.xml @@ -0,0 +1,41 @@ + + + + PrimeStruct5 + + + Unknown 1 + + TXTR + + + + Unknown 2 + + + Unknown 3 + + ELSC + + + + Unknown 4 + + PART + + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + + diff --git a/templates/MP1/Structs/PrimeStruct6.xml b/templates/MP1/Structs/PrimeStruct6.xml new file mode 100644 index 00000000..f0097a9a --- /dev/null +++ b/templates/MP1/Structs/PrimeStruct6.xml @@ -0,0 +1,18 @@ + + + + PrimeStruct6 + + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + + diff --git a/templates/MP1/Structs/RidleyStruct1.xml b/templates/MP1/Structs/RidleyStruct1.xml new file mode 100644 index 00000000..09ea86c7 --- /dev/null +++ b/templates/MP1/Structs/RidleyStruct1.xml @@ -0,0 +1,72 @@ + + + + RidleyStruct1 + true + + + Unknown 1 + + + Unknown 2 + + + Particle 1 + + PART + + + + Particle 2 + + PART + + + + Texture 1 + + TXTR + + + + Texture 2 + + TXTR + + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + Unknown 12 + + + Unknown 13 + + + + diff --git a/templates/MP1/Structs/RidleyStruct2.xml b/templates/MP1/Structs/RidleyStruct2.xml new file mode 100644 index 00000000..ac5e3dc4 --- /dev/null +++ b/templates/MP1/Structs/RidleyStruct2.xml @@ -0,0 +1,36 @@ + + + + RidleyStruct2 + true + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + + diff --git a/templates/MP1/Structs/RumbleEffectStruct.xml b/templates/MP1/Structs/RumbleEffectStruct.xml new file mode 100644 index 00000000..833dcc3a --- /dev/null +++ b/templates/MP1/Structs/RumbleEffectStruct.xml @@ -0,0 +1,14 @@ + + + + RumbleEffectStruct + + + Unknown 1 + + + Unknown 2 + + + + diff --git a/templates/MP1/Structs/ScriptBeamStruct.xml b/templates/MP1/Structs/ScriptBeamStruct.xml new file mode 100644 index 00000000..fd6104e5 --- /dev/null +++ b/templates/MP1/Structs/ScriptBeamStruct.xml @@ -0,0 +1,68 @@ + + + + ScriptBeamStruct + + + Unknown 1 + + + Particle 1 + + PART + + + + Particle 2 + + PART + + + + Texture 1 + + TXTR + + + + Texture 2 + + TXTR + + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + Unknown 12 + + + + diff --git a/templates/MP1/Structs/SpindleCameraStruct.xml b/templates/MP1/Structs/SpindleCameraStruct.xml new file mode 100644 index 00000000..dc3e0546 --- /dev/null +++ b/templates/MP1/Structs/SpindleCameraStruct.xml @@ -0,0 +1,33 @@ + + + + SpindleCameraStruct + true + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + + diff --git a/templates/MP2/Enums/PlayerItem.xml b/templates/MP2/Enums/PlayerItem.xml new file mode 100644 index 00000000..17ef9ffb --- /dev/null +++ b/templates/MP2/Enums/PlayerItem.xml @@ -0,0 +1,119 @@ + + + + PlayerItem + 0x0 + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/MP2/Game.xml b/templates/MP2/Game.xml new file mode 100644 index 00000000..3eccb8d6 --- /dev/null +++ b/templates/MP2/Game.xml @@ -0,0 +1,1755 @@ + + + + + ACKF + + + + ACNT + + + + ACTR + + + + ADMG + + + + AIHT + + + + AIKF + + + + AIMT + + + + AIWP + + + + AJMP + + + + AMIA + + + + AROT + + + + ATMA + + + + ATMB + + + + BALS + + + + BALT + + + + BALW + + + + BLOG + + + + BLUR + + + + BRZG + + + + BSWM + + + + CAMH + + + + CAMP + + + + CAMR + + + + CAMS + + + + CAMW + + + + CANB + + + + CHOG + + + + CLRM + + + + CMDO + + + + CNTA + + + + CNTR + + + + COIN + + + + COVR + + + + CRLT + + + + CRLY + + + + CTLH + + + + DBAR + + + + DBR1 + + + + DBR2 + + + + DFOG + + + + DGHD + + + + DGRD + + + + DKTR + + + + DLHT + + + + DMGA + + + + DOCK + + + + DOOR + + + + DRKC + + + + DRKS + + + + DSBS + + + + DTRG + + + + DTRO + + + + EFCT + + + + EM2T + + + + EMPU + + + + EMS1 + + + + EMS3 + + + + EPRT + + + + EYEB + + + + FGTO + + + + FILT + + + + FISH + + + + FLAR + + + + FNWK + + + + FOGO + + + + FOGV + + + + FPRT + + + + FSHM + + + + FSWM + + + + FXDC + + + + GBUG + + + + GENR + + + + GMNU + + + + GNTB + + + + GNTT + + + + GPJN + + + + GRAP + + + + GRCH + + + + GSCR + + + + GSLD + + + + GWIG + + + + HHNT + + + + HINT + + + + IBBG + + + + IBSM + + + + INGS + + + + IPUD + + + + ISBG + + + + ISJG + + + + ISSW + + + + KRAL + + + + KROC + + + + LUMI + + + + MEMO + + + + MIDI + + + + MING + + + + MNNG + + + + MOVI + + + + MREE + + + + MRLY + + + + MSWM + + + + MTDA + + + + MYSF + + + + OCTS + + + + PARA + + + + PCAM + + + + PCKP + + + + PILB + + + + PIRT + + + + PKGN + + + + PLAC + + + + PLAT + + + + PLCT + + + + PLRT + + + + PMCT + + + + POIN + + + + PRTT + + + + PSCH + + + + PSSM + + + + PUFR + + + + RADD + + + + RBPZ + + + + REAA + + + + REPL + + + + REZB + + + + RIPL + + + + RIPR + + + + RMAC + + + + RPTL + + + + RRLY + + + + RSFA + + + + RUMB + + + + SAFE + + + + SBS1 + + + + SBS2 + + + + SFZC + + + + SHDW + + + + SHRD + + + + SHRK + + + + SILH + + + + SKRP + + + + SLCT + + + + SNAK + + + + SNDB + + + + SNDM + + + + SOND + + + + SPBB + + + + SPBN + + + + SPBP + + + + SPBT + + + + SPFN + + + + SPIN + + + + SPLL + + + + SPLU + + + + SPND + + + + SPNK + + + + SPOR + + + + SPTR + + + + SPWN + + + + SQTR + + + + SRLY + + + + STAU + + + + STEM + + + + STOD + + + + SUBT + + + + SURC + + + + SWTC + + + + TEL1 + + + + TGPT + + + + TIMR + + + + TKEY + + + + TMAI + + + + TRGE + + + + TRGO + + + + TRGR + + + + TRYC + + + + TXPN + + + + VGOO + + + + WATR + + + + WAYP + + + + WISP + + + + WLIT + + + + WLWK + + + + WORM + + + + + + ActorParameters + + + + AudioPlaybackParms + + + + BasicSwarmProperties + + + + BehaveChance + + + + BloggStruct + + + + CameraHintStructA + + + + CameraHintStructB + + + + CameraHintStructC + + + + CameraShakerData + + + + ConditionalTest + + + + Connection + + + + ControlHintStruct + + + + ControllerActionStruct + + + + DamageInfo + + + + DamageVulnerability + + + + DigitalGuardianData + + + + DigitalGuardianHeadData + + + + DigitalGuardianHeadStruct + + + + DynamicLightFalloff + + + + DynamicLightIntensity + + + + DynamicLightMotionSpline + + + + DynamicLightParent + + + + DynamicLightSpotlight + + + + EchoParameters + + + + EditorProperties + + + + EmperorIngStage3Data + + + + EmperorIngStage3StructA + + + + EmperorIngStage3StructB + + + + FlareDef + + + + GrappleParameters + + + + GuiWidgetProperties + + + + HealthInfo + + + + IngBoostBallGuardianStruct + + + + IngPossessionData + + + + IngSpaceJumpGuardianStruct + + + + IngSpiderballGuardianStruct + + + + LayerInfo + + + + LayerSwitch + + + + LightParameters + + + + MysteryFlyerData + + + + PatternedAITypedef + + + + PlasmaBeamInfo + + + + PlatformMotionProperties + + + + PlayerItem + + + + PowerBombGuardianStageProperties + + + + RezbitData + + + + RotationSplines + + + + SafeZoneStructA + + + + SafeZoneStructB + + + + SandBossData + + + + SandBossStructA + + + + SandBossStructB + + + + SandwormStruct + + + + ScaleSplines + + + + ScannableParameters + + + + ShockWaveInfo + + + + SpacePirateWeaponData + + + + SpawnPointStruct + + + + SpindleCameraStruct + + + + SplineType + + + + SplitterMainChassisData + + + + SurroundPan + + + + SwampBossStage1Struct + + + + SwampBossStage2Data + + + + SwampBossStage2Struct + + + + TextProperties + + + + Transform + + + + TriggerInfo + + + + UnknownStruct10 + + + + UnknownStruct11 + + + + UnknownStruct12 + + + + UnknownStruct13 + + + + UnknownStruct14 + + + + UnknownStruct15 + + + + UnknownStruct16 + + + + UnknownStruct17 + + + + UnknownStruct18 + + + + UnknownStruct19 + + + + UnknownStruct2 + + + + UnknownStruct20 + + + + UnknownStruct21 + + + + UnknownStruct22 + + + + UnknownStruct23 + + + + UnknownStruct24 + + + + UnknownStruct25 + + + + UnknownStruct26 + + + + UnknownStruct28 + + + + UnknownStruct29 + + + + UnknownStruct3 + + + + UnknownStruct30 + + + + UnknownStruct31 + + + + UnknownStruct32 + + + + UnknownStruct33 + + + + UnknownStruct34 + + + + UnknownStruct35 + + + + UnknownStruct36 + + + + UnknownStruct37 + + + + UnknownStruct38 + + + + UnknownStruct39 + + + + UnknownStruct4 + + + + UnknownStruct40 + + + + UnknownStruct41 + + + + UnknownStruct42 + + + + UnknownStruct43 + + + + UnknownStruct5 + + + + UnknownStruct6 + + + + UnknownStruct7 + + + + UnknownStruct8 + + + + UnknownStruct9 + + + + Vector2f + + + + VisorParameters + + + + WeaponType + + + + WeaponVulnerability + + + + + + !ZER + NonZero + + + ACTV + Active + + + AIS1 + AILogicState1 + + + AIS2 + AILogicState2 + + + AIS3 + AILogicState3 + + + APRC + Approach + + + ARRV + Arrived + + + ATCL + AttachedCollisionObject + + + ATOB + AttachedAnimatedObject + + + ATTK + Attack + + + BIDG + BallIceXDamage + + + BXDG + BallXDamage + + + CLOS + Closed + + + CONN + Connect + + + CPLR + CPLR + + + CPTH + CameraPath + + + CTGT + CameraTarget + + + CTIM + CameraTime + + + DAMG + Damage + + + DANN + DamageAnnihilator + + + DBAI + DBAI + + + DBAL + DBAL + + + DBMB + DBMB + + + DCAN + DCAN + + + DDRK + DamageDark + + + DEAD + Dead + + + DFST + DFST + + + DGNR + DeGenerate + + + DLGT + DamageLight + + + DMIS + DMIS + + + DPBM + DPBM + + + DPHZ + DPHZ + + + DPWR + DamagePower + + + DRKX + DarkXDamage + + + DSCW + DSCW + + + ENTR + Entered + + + EXIT + Exited + + + FOOT + Footstep + + + FREZ + Freeze + + + GRNT + Generate + + + IBND + InheritBounds + + + ICTV + Inactive + + + IDMG + IceXDamage + + + INSD + Inside + + + IS00 + InternalState00 + + + IS01 + InternalState01 + + + IS02 + InternalState02 + + + IS03 + InternalState03 + + + IS04 + InternalState04 + + + IS05 + InternalState05 + + + IS06 + InternalState06 + + + IS07 + InternalState07 + + + IS08 + InternalState08 + + + IS09 + InternalState09 + + + IS10 + InternalState10 + + + IS11 + InternalState11 + + + IS12 + InternalState12 + + + IS13 + InternalState13 + + + IS14 + InternalState14 + + + IS15 + InternalState15 + + + IS16 + InternalState16 + + + IS17 + InternalState17 + + + IS18 + InternalState18 + + + IS19 + InternalState19 + + + LEFT + Left + + + MAXR + MaxReached + + + MDFY + Modify + + + OPEN + Open + + + PLAY + Play + + + PRSA + PressA + + + PRSB + PressB + + + PRST + PressStart + + + PRSX + PressX + + + PRSY + PressY + + + PRSZ + PressZ + + + PTRL + Patrol + + + RATL + DeathRattle + + + RDUE + SpawnResidue + + + REFD + ReflectedDamage + + + RESD + ResistedDamage + + + RGHT + Right + + + RTRT + Retreat + + + SCND + ScanDone + + + SCNS + ScanSource + + + SQNC + Sequence + + + UFRZ + UnFreeze + + + UP + Up + + + XDMG + XDamage + + + XINB + InBack + + + XINF + InFront + + + ZERO + Zero + + + + + ACTN + Action + + + ACTV + Activate + + + ALRT + Alert + + + ARRV + Arrive + + + ATCH + Attach + + + CLOS + Close + + + CORG + ClearOriginator + + + DCTV + Deactivate + + + DECR + Decrement + + + ESCP + Escape + + + FOLW + Follow + + + IM00 + InternalMessage00 + + + IM01 + InternalMessage01 + + + IM02 + InternalMessage02 + + + IM03 + InternalMessage03 + + + IM04 + InternalMessage04 + + + IM05 + InternalMessage05 + + + IM06 + InternalMessage06 + + + IM07 + InternalMessage07 + + + IM08 + InternalMessage08 + + + IM09 + InternalMessage09 + + + IM10 + InternalMessage10 + + + IM11 + InternalMessage11 + + + IM12 + InternalMessage12 + + + IM13 + InternalMessage13 + + + IM14 + InternalMessage14 + + + INCR + Increment + + + KILL + Kill + + + LEFT + Left + + + LOAD + Load + + + LOCK + Lock + + + NEXT + Next + + + OPEN + Open + + + PLAY + Play + + + RSET + Reset + + + RSTS + ResetAndStart + + + SMAX + SetToMax + + + SORG + SetOriginator + + + STOP + Stop + + + STPR + StopAndReset + + + STRT + Start + + + TCTV + ToggleActive + + + ULCK + Unlock + + + ULOD + Unload + + + XCLR + Clear + + + XDEL + Delete + + + XDMG + XDamage + + + ZERO + SetToZero + + + diff --git a/templates/MP2/Structs/Connection.xml b/templates/MP2/Structs/Connection.xml new file mode 100644 index 00000000..4bdbe09a --- /dev/null +++ b/templates/MP2/Structs/Connection.xml @@ -0,0 +1,24 @@ + + + + Connection + true + + + Connection Index + 0 + + + Activation Times + + + 0.0 + + + + Unknown + false + + + + diff --git a/templates/MP2/Structs/DigitalGuardianData.xml b/templates/MP2/Structs/DigitalGuardianData.xml new file mode 100644 index 00000000..e7d7f1bf --- /dev/null +++ b/templates/MP2/Structs/DigitalGuardianData.xml @@ -0,0 +1,166 @@ + + + + DigitalGuardianData + + + + SCAN + + + + 10.0 + + + 17.0 + + + 5.0 + + + + + 0xB + + + 50.0 + + + 10.0 + + + + + 75.0 + + + + CMDL + + + + + PART + + + + + + + + + + 5.0 + + + 50.0 + + + 30.0 + + + 20.0 + + + 20.0 + + + + + 0xB + + + 50.0 + + + 10.0 + + + + + -5734 + + + 8191 + + + 100.0 + + + + + CMDL + + + + + CMDL + + + + 100.0 + + + + + + CMDL + + + + + 2.0 + + + 5.0 + + + 10.0 + + + 0.69999999 + + + 0.69999999 + + + 0.69999999 + + + 1.0 + + + + CMDL + + + + + PART + + + + + + + + 500.0 + + + + PART + + + + + PART + + + + + + + + + + diff --git a/templates/MP2/Structs/DigitalGuardianHeadData.xml b/templates/MP2/Structs/DigitalGuardianHeadData.xml new file mode 100644 index 00000000..fb8361cf --- /dev/null +++ b/templates/MP2/Structs/DigitalGuardianHeadData.xml @@ -0,0 +1,243 @@ + + + + DigitalGuardianHeadData + + + + SCAN + + + + + SCAN + + + + + SCAN + + + + + CMDL + + + + 60.0 + + + 20.0 + + + 100.0 + + + 5.0 + + + 10.0 + + + 22.5 + + + 15.0 + + + + 5.0 + + + + PART + + + + + + + + PART + + + + 100.0 + + + + CMDL + + + + + PART + + + + + PART + + + + + + + + + + 30.0 + + + + PART + + + + + + + + WPSC + + + + + + 0xB + + + 20.0 + + + 10.0 + + + + + + WPSC + + + + + + 0xB + + + 20.0 + + + 10.0 + + + + + 6.0 + + + 1500 + + + + FRME + + + + + + 500.0 + + + 4.0 + + + 1.0 + + + 20.0 + + + 0.25 + + + 2.0 + + + + 0.49803901 + 0.0 + 0.0 + 0.49803901 + + + + + 0.698039 + 0.0 + 0.0 + 0.49803901 + + + + + + + WPSC + + + + + + 0xB + + + 20.0 + + + 10.0 + + + + + + WPSC + + + + + + 0xB + + + 20.0 + + + 10.0 + + + + + + 15.0 + + + 2.0 + + + 0.5 + + + 0.15000001 + + + + + + + + + + + + diff --git a/templates/MP2/Structs/DynamicLightFalloff.xml b/templates/MP2/Structs/DynamicLightFalloff.xml new file mode 100644 index 00000000..113a6a82 --- /dev/null +++ b/templates/MP2/Structs/DynamicLightFalloff.xml @@ -0,0 +1,18 @@ + + + + DynamicLightFalloff + + + 0 + + + + 0.0 + + + false + + + + diff --git a/templates/MP2/Structs/DynamicLightIntensity.xml b/templates/MP2/Structs/DynamicLightIntensity.xml new file mode 100644 index 00000000..2a3bd630 --- /dev/null +++ b/templates/MP2/Structs/DynamicLightIntensity.xml @@ -0,0 +1,15 @@ + + + + DynamicLightIntensity + + + + 0.0 + + + false + + + + diff --git a/templates/MP2/Structs/DynamicLightMotionSpline.xml b/templates/MP2/Structs/DynamicLightMotionSpline.xml new file mode 100644 index 00000000..93bb0743 --- /dev/null +++ b/templates/MP2/Structs/DynamicLightMotionSpline.xml @@ -0,0 +1,16 @@ + + + + DynamicLightMotionSpline + + + false + + + + + 10.0 + + + + diff --git a/templates/MP2/Structs/DynamicLightParent.xml b/templates/MP2/Structs/DynamicLightParent.xml new file mode 100644 index 00000000..0b420553 --- /dev/null +++ b/templates/MP2/Structs/DynamicLightParent.xml @@ -0,0 +1,26 @@ + + + + DynamicLightParent + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + false + + + + diff --git a/templates/MP2/Structs/DynamicLightSpotlight.xml b/templates/MP2/Structs/DynamicLightSpotlight.xml new file mode 100644 index 00000000..05b03fca --- /dev/null +++ b/templates/MP2/Structs/DynamicLightSpotlight.xml @@ -0,0 +1,15 @@ + + + + DynamicLightSpotlight + + + + 0.0 + + + false + + + + diff --git a/templates/MP2/Structs/EmperorIngStage3Data.xml b/templates/MP2/Structs/EmperorIngStage3Data.xml new file mode 100644 index 00000000..c78ef3ab --- /dev/null +++ b/templates/MP2/Structs/EmperorIngStage3Data.xml @@ -0,0 +1,45 @@ + + + + EmperorIngStage3Data + + + 0.0 + + + + + 0.0 + + + 0.0 + + + + + + + + + + + + + PART + + + + + + + + + 0 + + + + + + + + diff --git a/templates/MP2/Structs/LayerInfo.xml b/templates/MP2/Structs/LayerInfo.xml new file mode 100644 index 00000000..4e86fbb8 --- /dev/null +++ b/templates/MP2/Structs/LayerInfo.xml @@ -0,0 +1,23 @@ + + + + LayerInfo + + + -2143184152 + + + 0.0 + + + 0.0 + + + -0.0 + + + 0.0 + + + + diff --git a/templates/MP2/Structs/MysteryFlyerData.xml b/templates/MP2/Structs/MysteryFlyerData.xml new file mode 100644 index 00000000..d9774a1c --- /dev/null +++ b/templates/MP2/Structs/MysteryFlyerData.xml @@ -0,0 +1,35 @@ + + + + MysteryFlyerData + + + + WPSC + + + + + + 0xB + + + 5.0 + + + + + 10.0 + + + 2.0 + + + 5.0 + + + true + + + + diff --git a/templates/MP2/Structs/PatternedAITypedef.xml b/templates/MP2/Structs/PatternedAITypedef.xml new file mode 100644 index 00000000..561f449b --- /dev/null +++ b/templates/MP2/Structs/PatternedAITypedef.xml @@ -0,0 +1,159 @@ + + + + PatternedAITypedef + + + 150.0 + + + 1.0 + + + 120.0 + + + 100.0 + + + 0.0 + + + 60.0 + + + 6.0 + + + 11.0 + + + 2.0 + + + 1.0 + + + 50.0 + + + 25.0 + + + 5.0 + + + + 2.0 + + + + + 2.0 + + + + + + 1.0 + + + 2.0 + + + + 0.0 + 0.0 + 0.0 + + + + 0.1 + + + 1000.0 + + + 1000.0 + + + 0.0 + + + 0 + + + + + AFSM + + + + + FSM2 + + + + 0.1 + + + 0.1 + + + 2.0 + + + 0 + + + + 0.0 + 0.0 + 0.0 + + + + + PART + + + + + + 0.0 + 0.0 + 0.0 + + + + + PART + + + + 0 + + + 0 + + + 0 + + + + RULE + + + + 0 + + + + + true + + + + + + diff --git a/templates/MP2/Structs/PlatformMotionProperties.xml b/templates/MP2/Structs/PlatformMotionProperties.xml new file mode 100644 index 00000000..09b424f0 --- /dev/null +++ b/templates/MP2/Structs/PlatformMotionProperties.xml @@ -0,0 +1,22 @@ + + + + PlatformMotionProperties + + + + + 10.0 + + + 0.0 + + + 288 + + + + + + + diff --git a/templates/MP2/Structs/RezbitData.xml b/templates/MP2/Structs/RezbitData.xml new file mode 100644 index 00000000..1c32f2f4 --- /dev/null +++ b/templates/MP2/Structs/RezbitData.xml @@ -0,0 +1,200 @@ + + + + RezbitData + + + 20.0 + + + 20.0 + + + 10.0 + + + + CMDL + + + + + CSKR + + + + 3.0 + + + 2.0 + + + 3.0 + + + 1.0 + + + + PART + + + + + + + + 12.0 + + + 1.2 + + + + 2.0 + + + 100.0 + + + 2.0 + + + 100.0 + + + 4.0 + + + 50.0 + + + 50.0 + + + 20.0 + + + 40.0 + + + + + 0xB + + + 20.0 + + + 5.0 + + + + + + WPSC + + + + 4.0 + + + 2.0 + + + 0.5 + + + + 0.0 + + + 30.0 + + + 6.0 + + + + + 0xB + + + 20.0 + + + 5.0 + + + + + -1 + + + 0 + + + 0 + + + 20.0 + + + 40.0 + + + + + 0xB + + + 20.0 + + + 5.0 + + + + + + + + 500.0 + + + 4.0 + + + 1.0 + + + 20.0 + + + 0.25 + + + 2.0 + + + + 0.49803901 + 0.49803901 + 0.49803901 + 0.49803901 + + + + + 0.60000002 + 0.60000002 + 0.0 + 0.49803901 + + + + + + + + diff --git a/templates/MP2/Structs/RotationSplines.xml b/templates/MP2/Structs/RotationSplines.xml new file mode 100644 index 00000000..114704bb --- /dev/null +++ b/templates/MP2/Structs/RotationSplines.xml @@ -0,0 +1,11 @@ + + + + RotationSplines + + + + + + + diff --git a/templates/MP2/Structs/SandBossData.xml b/templates/MP2/Structs/SandBossData.xml new file mode 100644 index 00000000..8f3cbcbf --- /dev/null +++ b/templates/MP2/Structs/SandBossData.xml @@ -0,0 +1,121 @@ + + + + SandBossData + + + + SCAN + + + + 0 + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + + 0xB + + + 20.0 + + + 10.0 + + + + + + + 0xB + + + 20.0 + + + 10.0 + + + + + 4.0 + + + 1.0 + + + + WPSC + + + + + + 0x1 + + + 20.0 + + + 10.0 + + + + + 90.0 + + + 10.0 + + + 100.0 + + + 7.0 + + + 30.0 + + + 5.0 + + + + PART + + + + + + + + + CMDL + + + + + CSKR + + + + + + + + diff --git a/templates/MP2/Structs/ScaleSplines.xml b/templates/MP2/Structs/ScaleSplines.xml new file mode 100644 index 00000000..499c2a40 --- /dev/null +++ b/templates/MP2/Structs/ScaleSplines.xml @@ -0,0 +1,11 @@ + + + + ScaleSplines + + + + + + + diff --git a/templates/MP2/Structs/SpacePirateWeaponData.xml b/templates/MP2/Structs/SpacePirateWeaponData.xml new file mode 100644 index 00000000..9e22170e --- /dev/null +++ b/templates/MP2/Structs/SpacePirateWeaponData.xml @@ -0,0 +1,77 @@ + + + + SpacePirateWeaponData + + + 0 + + + + CMDL + + + + 3 + + + 15.0 + + + 50.0 + + + + + 0xB + + + 40.0 + + + 8.0 + + + 10.0 + + + + + + PART + + + + + PART + + + + + PART + + + + 25.0 + + + 0.40000001 + + + 20.0 + + + 50.0 + + + 2 + + + 0 + + + 0 + + + + diff --git a/templates/MP2/Structs/SplineType.xml b/templates/MP2/Structs/SplineType.xml new file mode 100644 index 00000000..7beb1897 --- /dev/null +++ b/templates/MP2/Structs/SplineType.xml @@ -0,0 +1,11 @@ + + + + SplineType + + + 0 + + + + diff --git a/templates/MP2/Structs/SplitterMainChassisData.xml b/templates/MP2/Structs/SplitterMainChassisData.xml new file mode 100644 index 00000000..542daf1f --- /dev/null +++ b/templates/MP2/Structs/SplitterMainChassisData.xml @@ -0,0 +1,105 @@ + + + + SplitterMainChassisData + + + 124 + + + 2.0 + + + 2.5 + + + 6.0 + + + + + 0xB + + + 20.0 + + + 5.0 + + + + + 3.0 + + + 100.0 + + + 40.0 + + + 3.0 + + + 6.0 + + + 30.0 + + + 60.0 + + + 20.0 + + + 20.0 + + + 60.0 + + + 20.0 + + + 6.0 + + + 6.0 + + + 1.5 + + + 10.0 + + + 30.0 + + + 4 + + + 30.0 + + + + + 0xB + + + 20.0 + + + 5.0 + + + + + 0 + + + + + + diff --git a/templates/MP2/Structs/SurroundPan.xml b/templates/MP2/Structs/SurroundPan.xml new file mode 100644 index 00000000..c70ae121 --- /dev/null +++ b/templates/MP2/Structs/SurroundPan.xml @@ -0,0 +1,14 @@ + + + + SurroundPan + + + 0.0 + + + 0.0 + + + + diff --git a/templates/MP2/Structs/SwampBossStage2Data.xml b/templates/MP2/Structs/SwampBossStage2Data.xml new file mode 100644 index 00000000..8dfbc3fa --- /dev/null +++ b/templates/MP2/Structs/SwampBossStage2Data.xml @@ -0,0 +1,188 @@ + + + + SwampBossStage2Data + + + 10.0 + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + 1.0 + + + + + + + 30.0 + + + 2 + + + + WPSC + + + + + + 0xB + + + 5.0 + + + + + + PART + + + + 0 + + + 2.0 + + + + + 0xB + + + 0.5 + + + + + 10.0 + + + 0.2 + + + + PART + + + + 100.0 + + + 2.0 + + + 100.0 + + + 100.0 + + + 30.0 + + + 30.0 + + + 40.0 + + + 50.0 + + + 50.0 + + + + 2.0 + + + 0.40000001 + + + + SCAN + + + + + SCAN + + + + + PART + + + + + PART + + + + + + PART + + + + + + 0xB + + + 0.5 + + + + + 0.1 + + + 5.0 + + + 30.0 + + + + + + + 15.0 + + + + 0.80000001 + + + + + 4.0 + + + + + + diff --git a/templates/MP2/Structs/UnknownStruct10.xml b/templates/MP2/Structs/UnknownStruct10.xml new file mode 100644 index 00000000..092e81e8 --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct10.xml @@ -0,0 +1,78 @@ + + + + UnknownStruct10 + + + 10.0 + + + 0.25 + + + 80.0 + + + 15.0 + + + 50.0 + + + + + 0xB + + + 50.0 + + + 10.0 + + + 10.0 + + + + + + PART + + + + + PART + + + + + PART + + + + 25.0 + + + 0.40000001 + + + 20.0 + + + 50.0 + + + 0 + + + 8.0 + + + 0 + + + 0 + + + + diff --git a/templates/MP2/Structs/UnknownStruct11.xml b/templates/MP2/Structs/UnknownStruct11.xml new file mode 100644 index 00000000..955aebe7 --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct11.xml @@ -0,0 +1,75 @@ + + + + UnknownStruct11 + + + + + 0xB + + + 10.0 + + + 5.0 + + + + + + 15.0 + + + 30.0 + + + 40.0 + + + + PART + + + + 0 + + + 50.0 + + + 1.5 + + + 50.0 + + + 4.0 + + + 1.0 + + + + PART + + + + + PART + + + + + PART + + + + 0 + + + 0 + + + + diff --git a/templates/MP2/Structs/UnknownStruct12.xml b/templates/MP2/Structs/UnknownStruct12.xml new file mode 100644 index 00000000..58daf148 --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct12.xml @@ -0,0 +1,69 @@ + + + + UnknownStruct12 + + + 2.0 + + + 35.0 + + + 100.0 + + + + + 0xB + + + 20.0 + + + 10.0 + + + + + + PART + + + + + PART + + + + + PART + + + + 25.0 + + + 0.40000001 + + + 20.0 + + + 50.0 + + + 0 + + + 8.0 + + + 0 + + + 0 + + + + diff --git a/templates/MP2/Structs/UnknownStruct13.xml b/templates/MP2/Structs/UnknownStruct13.xml new file mode 100644 index 00000000..484375dd --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct13.xml @@ -0,0 +1,51 @@ + + + + UnknownStruct13 + + + 2.0 + + + 10.0 + + + 35.0 + + + + + 0xB + + + 40.0 + + + 10.0 + + + + + + WPSC + + + + + PART + + + + + + 0xB + + + 0.083329998 + + + + + + + diff --git a/templates/MP2/Structs/UnknownStruct14.xml b/templates/MP2/Structs/UnknownStruct14.xml new file mode 100644 index 00000000..fe3a3d03 --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct14.xml @@ -0,0 +1,30 @@ + + + + UnknownStruct14 + + + 25.0 + + + 40.0 + + + 25.0 + + + 20.0 + + + + PART + + + + + + + + + + diff --git a/templates/MP2/Structs/UnknownStruct15.xml b/templates/MP2/Structs/UnknownStruct15.xml new file mode 100644 index 00000000..b5377313 --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct15.xml @@ -0,0 +1,38 @@ + + + + UnknownStruct15 + + + 12.5 + + + 12.5 + + + 25.0 + + + 50.0 + + + + + 0xB + + + 20.0 + + + 10.0 + + + + + + + + + + + diff --git a/templates/MP2/Structs/UnknownStruct16.xml b/templates/MP2/Structs/UnknownStruct16.xml new file mode 100644 index 00000000..161ab4a9 --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct16.xml @@ -0,0 +1,17 @@ + + + + UnknownStruct16 + + + 50.0 + + + 100.0 + + + 100.0 + + + + diff --git a/templates/MP2/Structs/UnknownStruct17.xml b/templates/MP2/Structs/UnknownStruct17.xml new file mode 100644 index 00000000..2180acc2 --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct17.xml @@ -0,0 +1,117 @@ + + + + UnknownStruct17 + + + -1.0 + + + 2.5 + + + 4.0 + + + 2.5 + + + 4.0 + + + 20.0 + + + 1.5 + + + 3.0 + + + 0.0 + + + + false + + + false + + + false + + + false + + + false + + + false + + + 0.0 + + + 0.0 + + + true + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + false + + + true + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + false + + + 0.0 + + + 0.0 + + + false + + + + diff --git a/templates/MP2/Structs/UnknownStruct18.xml b/templates/MP2/Structs/UnknownStruct18.xml new file mode 100644 index 00000000..43d4995f --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct18.xml @@ -0,0 +1,14 @@ + + + + UnknownStruct18 + + + 0.0 + + + 0.0 + + + + diff --git a/templates/MP2/Structs/UnknownStruct19.xml b/templates/MP2/Structs/UnknownStruct19.xml new file mode 100644 index 00000000..ba2cdc6e --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct19.xml @@ -0,0 +1,19 @@ + + + + UnknownStruct19 + + + + + + + + 0.0 + + + 0 + + + + diff --git a/templates/MP2/Structs/UnknownStruct20.xml b/templates/MP2/Structs/UnknownStruct20.xml new file mode 100644 index 00000000..f593c127 --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct20.xml @@ -0,0 +1,9 @@ + + + + UnknownStruct20 + + + + + diff --git a/templates/MP2/Structs/UnknownStruct21.xml b/templates/MP2/Structs/UnknownStruct21.xml new file mode 100644 index 00000000..eed57504 --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct21.xml @@ -0,0 +1,19 @@ + + + + UnknownStruct21 + + + + WPSC + + + + + + PART + + + + + diff --git a/templates/MP2/Structs/UnknownStruct22.xml b/templates/MP2/Structs/UnknownStruct22.xml new file mode 100644 index 00000000..bd12a928 --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct22.xml @@ -0,0 +1,27 @@ + + + + UnknownStruct22 + + + + PART + + + + + + -1 + + + -1 + + + 0 + + + 0 + + + + diff --git a/templates/MP2/Structs/UnknownStruct23.xml b/templates/MP2/Structs/UnknownStruct23.xml new file mode 100644 index 00000000..698c39a7 --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct23.xml @@ -0,0 +1,18 @@ + + + + UnknownStruct23 + + + 0.0 + + + 0 + + + + 0 + + + + diff --git a/templates/MP2/Structs/UnknownStruct24.xml b/templates/MP2/Structs/UnknownStruct24.xml new file mode 100644 index 00000000..68393110 --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct24.xml @@ -0,0 +1,50 @@ + + + + UnknownStruct24 + + + + + 500.0 + + + 4.0 + + + 1.0 + + + 20.0 + + + 0.25 + + + 2.0 + + + + 0.49803901 + 0.49803901 + 0.49803901 + 0.49803901 + + + + + 0.60000002 + 0.60000002 + 0.0 + 0.49803901 + + + + + + + 0 + + + + diff --git a/templates/MP2/Structs/UnknownStruct25.xml b/templates/MP2/Structs/UnknownStruct25.xml new file mode 100644 index 00000000..042bc73a --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct25.xml @@ -0,0 +1,48 @@ + + + + UnknownStruct25 + + + + + + + + + 0.0 + + + 0.0 + + + 0.0 + + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + -1 + + + 0.0 + + + 0.0 + + + 0.0 + + + + diff --git a/templates/MP2/Structs/UnknownStruct26.xml b/templates/MP2/Structs/UnknownStruct26.xml new file mode 100644 index 00000000..08d8d3e5 --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct26.xml @@ -0,0 +1,67 @@ + + + + UnknownStruct26 + + + + PART + + + + 0 + + + + + 0xB + + + 20.0 + + + 10.0 + + + + + + + 500.0 + + + 4.0 + + + 1.0 + + + 20.0 + + + 0.25 + + + 2.0 + + + + 0.49803901 + 0.49803901 + 0.49803901 + 0.49803901 + + + + + 0.60000002 + 0.60000002 + 0.0 + 0.49803901 + + + + + + + diff --git a/templates/MP2/Structs/UnknownStruct28.xml b/templates/MP2/Structs/UnknownStruct28.xml new file mode 100644 index 00000000..389b1f81 --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct28.xml @@ -0,0 +1,260 @@ + + + + UnknownStruct28 + + + 0 + + + 50.0 + + + 15.0 + + + 7.0 + + + 25.0 + + + 25.0 + + + 360.0 + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + PART + + + + + SRSC + + + + + PART + + + + 0.34999999 + + + + PART + + + + 15.0 + + + 1.5 + + + 1.5 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 15.0 + + + 1.5 + + + 2.0 + + + 25.0 + + + 10.0 + + + + + 0xB + + + 20.0 + + + 10.0 + + + + + + + 0xB + + + 20.0 + + + 5.0 + + + + + 20.0 + + + 5.0 + + + + PART + + + + 25.0 + + + 2.0 + + + 20.0 + + + 40.0 + + + 0 + + + 0 + + + 70.0 + + + 40.0 + + + 100.0 + + + + PART + + + + 0 + + + + + 0xB + + + 20.0 + + + 10.0 + + + + + + + 500.0 + + + 4.0 + + + 1.0 + + + 20.0 + + + 0.25 + + + 2.0 + + + + 0.49803901 + 0.49803901 + 0.49803901 + 0.49803901 + + + + + 0.60000002 + 0.60000002 + 0.0 + 0.49803901 + + + + + + + 1.0 + 1.0 + 1.0 + + + + 5.0 + + + + + diff --git a/templates/MP2/Structs/UnknownStruct29.xml b/templates/MP2/Structs/UnknownStruct29.xml new file mode 100644 index 00000000..1d5862cf --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct29.xml @@ -0,0 +1,290 @@ + + + + UnknownStruct29 + + + + 1.8 + 1.8 + 1.8 + + + + 150.0 + + + 0.5 + + + + + + 0x7 + + + 30.0 + + + 1.5 + + + 4.0 + + + + + + + 0x7 + + + 30.0 + + + 1.5 + + + 6.0 + + + + + 10.0 + + + 3.0 + + + + CMDL + + + + + PART + + + + + PART + + + + + SPSC + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + 2 + + + 3 + + + 80.0 + + + 0.2 + + + + + 0xB + + + 20.0 + + + 10.0 + + + + + + + 0xB + + + 10.0 + + + 5.0 + + + + + + PART + + + + + PART + + + + + PART + + + + + + 15.0 + + + 0.5 + + + 90.0 + + + 10.0 + + + 2.0 + + + 5.0 + + + 3 + + + 3 + + + 1 + + + 5 + + + 6 + + + 10 + + + 1.0 + + + 1.0 + + + + + + + 15.0 + + + 0.5 + + + 90.0 + + + 10.0 + + + 2.0 + + + 5.0 + + + 3 + + + 3 + + + 1 + + + 5 + + + 6 + + + 10 + + + 1.0 + + + 1.0 + + + + + + + 15.0 + + + 0.5 + + + 90.0 + + + 10.0 + + + 2.0 + + + 5.0 + + + 3 + + + 3 + + + 1 + + + 5 + + + 6 + + + 10 + + + 1.0 + + + 1.0 + + + + + + diff --git a/templates/MP2/Structs/UnknownStruct3.xml b/templates/MP2/Structs/UnknownStruct3.xml new file mode 100644 index 00000000..e64b6778 --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct3.xml @@ -0,0 +1,66 @@ + + + + UnknownStruct3 + + + 90.0 + + + 90.0 + + + 60.0 + + + 60.0 + + + 30.0 + + + 30.0 + + + 30.0 + + + 1.0 + + + 0.0 + + + 90.0 + + + 40.0 + + + 20.0 + + + 2.0 + + + + + WPSC + + + + + + + AFSM + FSM2 + + + + + PART + + + + + diff --git a/templates/MP2/Structs/UnknownStruct30.xml b/templates/MP2/Structs/UnknownStruct30.xml new file mode 100644 index 00000000..5d26b2fb --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct30.xml @@ -0,0 +1,60 @@ + + + + UnknownStruct30 + + + + AFSM + FSM2 + + + + + + 2.0 + + + + + 20.0 + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + diff --git a/templates/MP2/Structs/UnknownStruct31.xml b/templates/MP2/Structs/UnknownStruct31.xml new file mode 100644 index 00000000..d830fe64 --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct31.xml @@ -0,0 +1,39 @@ + + + + UnknownStruct31 + + + + + + + + + 2.0 + + + + + 0xB + + + 40.0 + + + 10.0 + + + + + 20.0 + + + + + + + + + + diff --git a/templates/MP2/Structs/UnknownStruct32.xml b/templates/MP2/Structs/UnknownStruct32.xml new file mode 100644 index 00000000..43934a7e --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct32.xml @@ -0,0 +1,90 @@ + + + + UnknownStruct32 + + + + PART + + + + 0 + + + + + + + + 1.0 + 1.0 + 1.0 + + + + 5.0 + + + + PART + + + + 0 + + + + + 0xB + + + 20.0 + + + 10.0 + + + + + + + 500.0 + + + 4.0 + + + 1.0 + + + 20.0 + + + 0.25 + + + 2.0 + + + + 0.49803901 + 0.49803901 + 0.49803901 + 0.49803901 + + + + + 0.60000002 + 0.60000002 + 0.0 + 0.49803901 + + + + + + + + diff --git a/templates/MP2/Structs/UnknownStruct33.xml b/templates/MP2/Structs/UnknownStruct33.xml new file mode 100644 index 00000000..e158f0bf --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct33.xml @@ -0,0 +1,87 @@ + + + + UnknownStruct33 + + + + + 0xB + + + 10.0 + + + 4.5 + + + 4.0 + + + + + 5.0 + + + 10.0 + + + 15.0 + + + 7.0 + + + 25.0 + + + 2.0 + + + 360.0 + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 100.0 + + + 0.2 + + + + + diff --git a/templates/MP2/Structs/UnknownStruct34.xml b/templates/MP2/Structs/UnknownStruct34.xml new file mode 100644 index 00000000..69ae2556 --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct34.xml @@ -0,0 +1,76 @@ + + + + UnknownStruct34 + + + + + + 0x9 + + + 5.0 + + + 1.0 + + + + + + PART + + + + + PART + + + + + PART + + + + 4.0 + + + 0.5 + + + 15.0 + + + 20.0 + + + 5 + + + 0 + + + 0 + + + 30.0 + + + 2.0 + + + 0 + + + 3 + + + 40.0 + + + true + + + + diff --git a/templates/MP2/Structs/UnknownStruct35.xml b/templates/MP2/Structs/UnknownStruct35.xml new file mode 100644 index 00000000..717f7a8f --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct35.xml @@ -0,0 +1,17 @@ + + + + UnknownStruct35 + + + 90.0 + + + + AFSM + FSM2 + + + + + diff --git a/templates/MP2/Structs/UnknownStruct36.xml b/templates/MP2/Structs/UnknownStruct36.xml new file mode 100644 index 00000000..8848dbef --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct36.xml @@ -0,0 +1,20 @@ + + + + UnknownStruct36 + + + + + + + + + + 10.0 + + + + + + diff --git a/templates/MP2/Structs/UnknownStruct37.xml b/templates/MP2/Structs/UnknownStruct37.xml new file mode 100644 index 00000000..9b2085f7 --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct37.xml @@ -0,0 +1,95 @@ + + + + UnknownStruct37 + + + + PART + + + + 3.0 + + + 6.0 + + + + PART + + + + + + PART + + + + + CMDL + + + + + CMDL + + + + + + PART + + + + 50.0 + + + 5.0 + + + 15.0 + + + 180.0 + + + 100.0 + + + + 2.0 + + + + WPSC + + + + + + 0xB + + + 5.0 + + + + + + PART + + + + 0 + + + 2.0 + + + + + + + + diff --git a/templates/MP2/Structs/UnknownStruct38.xml b/templates/MP2/Structs/UnknownStruct38.xml new file mode 100644 index 00000000..86bcf37d --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct38.xml @@ -0,0 +1,27 @@ + + + + UnknownStruct38 + + + 20.0 + + + 180.0 + + + 0 + + + 5.0 + + + + 0.0 + 1.0 + 5.0 + + + + + diff --git a/templates/MP2/Structs/UnknownStruct39.xml b/templates/MP2/Structs/UnknownStruct39.xml new file mode 100644 index 00000000..addd22be --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct39.xml @@ -0,0 +1,48 @@ + + + + UnknownStruct39 + + + 10 + + + + 4.0 + + + 4.0 + + + 4.0 + + + 4.0 + + + 5.0 + + + 14.0 + + + 16.0 + + + 20.0 + + + 40.0 + + + 100.0 + + + false + + + 0.0 + + + + diff --git a/templates/MP2/Structs/UnknownStruct4.xml b/templates/MP2/Structs/UnknownStruct4.xml new file mode 100644 index 00000000..028656c5 --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct4.xml @@ -0,0 +1,11 @@ + + + + UnknownStruct4 + + + 0 + + + + diff --git a/templates/MP2/Structs/UnknownStruct40.xml b/templates/MP2/Structs/UnknownStruct40.xml new file mode 100644 index 00000000..31c88989 --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct40.xml @@ -0,0 +1,52 @@ + + + + UnknownStruct40 + + + 1.5 + + + 2.5 + + + 3.0 + + + 150.0 + + + + PART + + + + 0 + + + 0 + + + + + 0xB + + + 20.0 + + + 13.0 + + + 10.0 + + + + + + PART + + + + + diff --git a/templates/MP2/Structs/UnknownStruct41.xml b/templates/MP2/Structs/UnknownStruct41.xml new file mode 100644 index 00000000..994edbd9 --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct41.xml @@ -0,0 +1,51 @@ + + + + UnknownStruct41 + + + + + + + 500.0 + + + 1.0 + + + 4.0 + + + 1.0 + + + 20.0 + + + 0.25 + + + 2.0 + + + + 0.49803901 + 0.49803901 + 0.49803901 + 0.49803901 + + + + + 0.60000002 + 0.60000002 + 0.0 + 0.49803901 + + + + + + + diff --git a/templates/MP2/Structs/UnknownStruct42.xml b/templates/MP2/Structs/UnknownStruct42.xml new file mode 100644 index 00000000..1f9454f1 --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct42.xml @@ -0,0 +1,52 @@ + + + + UnknownStruct42 + + + 20.0 + + + + 0.247059 + 0.0 + 0.0 + 0.0 + + + + + 0.49803901 + 0.098039001 + 0.098039001 + 0.0 + + + + + 0.34902 + 0.0 + 0.0 + 0.0 + + + + + 0.14902 + 0.0 + 0.0 + 0.0 + + + + 10.0 + + + 5.0 + + + 4.0 + + + + diff --git a/templates/MP2/Structs/UnknownStruct43.xml b/templates/MP2/Structs/UnknownStruct43.xml new file mode 100644 index 00000000..dd589948 --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct43.xml @@ -0,0 +1,138 @@ + + + + UnknownStruct43 + + + 10 + + + 20.0 + + + 720.0 + + + 20.0 + + + 4.0 + + + 10.0 + + + 20.0 + + + 3 + + + + WPSC + + + + + + 0xB + + + 10.0 + + + + + 1 + + + 3 + + + 100.0 + + + 10.0 + + + 100.0 + + + 45.0 + + + + + 0xB + + + 10.0 + + + + + + + 500.0 + + + 4.0 + + + 1.0 + + + 20.0 + + + 0.25 + + + 2.0 + + + + 0.49803901 + 0.49803901 + 0.49803901 + 0.49803901 + + + + + 0.60000002 + 0.60000002 + 0.0 + 0.49803901 + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + -1 + + + -1 + + + 0 + + + + + + + diff --git a/templates/MP2/Structs/UnknownStruct5.xml b/templates/MP2/Structs/UnknownStruct5.xml new file mode 100644 index 00000000..7a6e361f --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct5.xml @@ -0,0 +1,18 @@ + + + + UnknownStruct5 + + + false + + + + 0.0 + 1.0 + 1.0 + + + + + diff --git a/templates/MP2/Structs/UnknownStruct6.xml b/templates/MP2/Structs/UnknownStruct6.xml new file mode 100644 index 00000000..73da5819 --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct6.xml @@ -0,0 +1,14 @@ + + + + UnknownStruct6 + + + false + + + 55.0 + + + + diff --git a/templates/MP2/Structs/UnknownStruct7.xml b/templates/MP2/Structs/UnknownStruct7.xml new file mode 100644 index 00000000..8c0105bc --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct7.xml @@ -0,0 +1,14 @@ + + + + UnknownStruct7 + + + false + + + 120.0 + + + + diff --git a/templates/MP2/Structs/UnknownStruct8.xml b/templates/MP2/Structs/UnknownStruct8.xml new file mode 100644 index 00000000..a9ff5c34 --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct8.xml @@ -0,0 +1,14 @@ + + + + UnknownStruct8 + + + false + + + 2.7 + + + + diff --git a/templates/MP2/Structs/UnknownStruct9.xml b/templates/MP2/Structs/UnknownStruct9.xml new file mode 100644 index 00000000..08ff77c7 --- /dev/null +++ b/templates/MP2/Structs/UnknownStruct9.xml @@ -0,0 +1,11 @@ + + + + UnknownStruct9 + + + 1 + + + + diff --git a/templates/MP2Demo/Game.xml b/templates/MP2Demo/Game.xml new file mode 100644 index 00000000..f6dbe255 --- /dev/null +++ b/templates/MP2Demo/Game.xml @@ -0,0 +1,1455 @@ + + + + + ACKF + + + + ACTR + + + + ADMG + + + + AIKF + + + + AIMT + + + + AIWP + + + + AJMP + + + + AMIA + + + + AROT + + + + ATMA + + + + BALS + + + + BALT + + + + BALW + + + + BLOG + + + + BLUR + + + + BRZG + + + + CAMH + + + + CAMP + + + + CAMR + + + + CAMS + + + + CAMW + + + + CANB + + + + CHOG + + + + CLRM + + + + CMDO + + + + CNTA + + + + CNTR + + + + COIN + + + + COVR + + + + CRLY + + + + DBR1 + + + + DBR2 + + + + DFOG + + + + DGHD + + + + DGRD + + + + DKTR + + + + DLHT + + + + DOCK + + + + DOOR + + + + DRKS + + + + DTRG + + + + DTRO + + + + EFCT + + + + EMPU + + + + EMS1 + + + + EPRT + + + + FILT + + + + FISH + + + + FLAR + + + + FNWK + + + + FOGV + + + + FPRT + + + + FSHM + + + + FXDC + + + + GBUG + + + + GENR + + + + GMNU + + + + GNTB + + + + GNTT + + + + GRAP + + + + GRCH + + + + GSCR + + + + GSLD + + + + GWIG + + + + HINT + + + + INGS + + + + ISJG + + + + ISSW + + + + KRAL + + + + KROC + + + + LUMI + + + + MEMO + + + + MIDI + + + + MING + + + + MNNG + + + + MREE + + + + MRLY + + + + MTDA + + + + OCTS + + + + PARA + + + + PCAM + + + + PCKP + + + + PILB + + + + PIRT + + + + PKGN + + + + PLAC + + + + PLAT + + + + PLCT + + + + PLRT + + + + PMCT + + + + POIN + + + + PSCH + + + + PUFR + + + + RADD + + + + REAA + + + + REPL + + + + REZB + + + + RIPL + + + + RIPR + + + + RMAC + + + + RPTL + + + + RRLY + + + + RSFA + + + + RUMB + + + + SAFE + + + + SHDW + + + + SHRD + + + + SHRK + + + + SILH + + + + SNAK + + + + SNDB + + + + SOND + + + + SPBB + + + + SPBN + + + + SPBP + + + + SPBT + + + + SPFN + + + + SPLL + + + + SPLU + + + + SPND + + + + SPNK + + + + SPTR + + + + SPWN + + + + SQTR + + + + SRLY + + + + STAU + + + + STEM + + + + STOD + + + + SUBT + + + + SURC + + + + SWRM + + + + SWTC + + + + TEL1 + + + + TGPT + + + + TIMR + + + + TKEY + + + + TMAI + + + + TRGE + + + + TRGO + + + + TRGR + + + + TRYC + + + + TXPN + + + + VGOO + + + + WATR + + + + WAYP + + + + WISP + + + + WLIT + + + + WLWK + + + + WORM + + + + + + ActorParameters + + + + BehaveChance + + + + CameraHintStructA + + + + CameraHintStructA1 + + + + CameraHintStructB + + + + CameraShakerData + + + + ConditionalTest + + + + Connection + + + + DamageInfo + + + + DamageVulnerability + + + + DarkSamusStruct + + + + DigitalGuardianData + + + + DigitalGuardianHeadData + + + + DigitalGuardianHeadStruct + + + + DynamicLightFalloff + + + + DynamicLightIntensity + + + + DynamicLightMotionSpline + + + + DynamicLightParent + + + + DynamicLightSpotlight + + + + EditorProperties + + + + FlareDef + + + + GrappleParameters + + + + GuiWidgetProperties + + + + HealthInfo + + + + IngPossessionData + + + + LayerInfo + + + + LayerSwitch + + + + LightParameters + + + + PatternedAITypedef + + + + PlasmaBeamInfo + + + + PlatformMotionProperties + + + + RezbitData + + + + RotationSplines + + + + SafeZoneStruct + + + + SandwormStruct + + + + ScaleSplines + + + + ScannableParameters + + + + ShockWaveInfo + + + + SpacePirateWeaponData + + + + SpawnPointStruct + + + + SpindleCameraStruct + + + + SplineType + + + + SplitterMainChassisData + + + + SurroundPan + + + + TextProperties + + + + Transform + + + + TriggerInfo + + + + UnknownStruct1 + + + + UnknownStruct10 + + + + UnknownStruct11 + + + + UnknownStruct12 + + + + UnknownStruct13 + + + + UnknownStruct14 + + + + UnknownStruct15 + + + + UnknownStruct16 + + + + UnknownStruct17 + + + + UnknownStruct18 + + + + UnknownStruct19 + + + + UnknownStruct2 + + + + UnknownStruct20 + + + + UnknownStruct21 + + + + UnknownStruct22 + + + + UnknownStruct23 + + + + UnknownStruct3 + + + + UnknownStruct4 + + + + UnknownStruct5 + + + + UnknownStruct6 + + + + UnknownStruct7 + + + + UnknownStruct8 + + + + UnknownStruct9 + + + + Vector2f + + + + VisorParameters + + + + WeaponVulnerability + + + + + + !ZER + NonZero + + + ACTV + Active + + + AIS1 + AILogicState1 + + + AIS2 + AILogicState2 + + + AIS3 + AILogicState3 + + + APRC + Approach + + + ARRV + Arrived + + + ATCL + AttachedCollisionObject + + + ATOB + AttachedAnimatedObject + + + ATTK + Attack + + + BIDG + BallIceXDamage + + + BXDG + BallXDamage + + + CLOS + Closed + + + CONN + Connect + + + CPLR + CPLR + + + CPTH + CameraPath + + + CTGT + CameraTarget + + + CTIM + CameraTime + + + DAMG + Damage + + + DANN + DANN + + + DBAI + DBAI + + + DBAL + DBAL + + + DBMB + DBMB + + + DCAN + DCAN + + + DDRK + DDRK + + + DEAD + Dead + + + DFST + DFST + + + DGNR + DeGenerate + + + DLGT + DLGT + + + DMIS + DMIS + + + DPBM + DPBM + + + DPHZ + DPHZ + + + DPWR + DPWR + + + DRKX + DarkXDamage + + + DSCW + DSCW + + + ENTR + Entered + + + EXIT + Exited + + + FOOT + Footstep + + + FREZ + Freeze + + + GRNT + Generate + + + IBND + InheritBounds + + + ICTV + Inactive + + + IDMG + IceXDamage + + + INSD + Inside + + + IS00 + InternalState00 + + + IS01 + InternalState01 + + + IS02 + InternalState02 + + + IS03 + InternalState03 + + + IS04 + InternalState04 + + + IS05 + InternalState05 + + + IS06 + InternalState06 + + + IS07 + InternalState07 + + + IS08 + InternalState08 + + + IS09 + InternalState09 + + + IS10 + InternalState10 + + + IS11 + InternalState11 + + + IS12 + InternalState12 + + + IS13 + InternalState13 + + + IS14 + InternalState14 + + + IS15 + InternalState15 + + + IS16 + InternalState16 + + + IS17 + InternalState17 + + + IS18 + InternalState18 + + + IS19 + InternalState19 + + + LEFT + Left + + + MAXR + MaxReached + + + MDFY + Modify + + + OPEN + Open + + + PLAY + Play + + + PRSA + PressA + + + PRSB + PressB + + + PRST + PressStart + + + PRSX + PressX + + + PRSY + PressY + + + PRSZ + PressZ + + + PTRL + Patrol + + + RATL + DeathRattle + + + RDUE + SpawnResidue + + + REFD + ReflectedDamage + + + RESD + ResistedDamage + + + RGHT + Right + + + RTRT + Retreat + + + SCND + ScanDone + + + SCNS + ScanSource + + + SQNC + Sequence + + + UFRZ + UnFreeze + + + UP + Up + + + XDMG + XDamage + + + XINB + InBack + + + XINF + InFront + + + ZERO + Zero + + + + + ACTN + Action + + + ACTV + Activate + + + ALRT + Alert + + + ARRV + Arrive + + + ATCH + Attach + + + CLOS + Close + + + CORG + ClearOriginator + + + DCTV + Deactivate + + + DECR + Decrement + + + ESCP + Escape + + + FOLW + Follow + + + IM00 + InternalMessage00 + + + IM01 + InternalMessage01 + + + IM02 + InternalMessage02 + + + IM03 + InternalMessage03 + + + IM04 + InternalMessage04 + + + IM05 + InternalMessage05 + + + IM06 + InternalMessage06 + + + IM07 + InternalMessage07 + + + IM08 + InternalMessage08 + + + IM09 + InternalMessage09 + + + IM10 + InternalMessage10 + + + IM11 + InternalMessage11 + + + IM12 + InternalMessage12 + + + IM13 + InternalMessage13 + + + IM14 + InternalMessage14 + + + INCR + Increment + + + KILL + Kill + + + LEFT + Left + + + LOAD + Load + + + LOCK + Lock + + + NEXT + Next + + + OPEN + Open + + + PLAY + Play + + + RSET + Reset + + + RSTS + ResetAndStart + + + SMAX + SetToMax + + + SORG + SetOriginator + + + STOP + Stop + + + STPR + StopAndReset + + + STRT + Start + + + TCTV + ToggleActive + + + ULCK + Unlock + + + ULOD + Unload + + + XCLR + Clear + + + XDEL + Delete + + + XDMG + XDamage + + + ZERO + SetToZero + + + diff --git a/templates/MP2Demo/Structs/CameraHintStructA1.xml b/templates/MP2Demo/Structs/CameraHintStructA1.xml new file mode 100644 index 00000000..69f44aed --- /dev/null +++ b/templates/MP2Demo/Structs/CameraHintStructA1.xml @@ -0,0 +1,11 @@ + + + + CameraHintStructA1 + + + 0 + + + + diff --git a/templates/MP2Demo/Structs/Connection.xml b/templates/MP2Demo/Structs/Connection.xml new file mode 100644 index 00000000..fc6b5478 --- /dev/null +++ b/templates/MP2Demo/Structs/Connection.xml @@ -0,0 +1,20 @@ + + + + Connection + true + + + Connection Index + 0 + + + Activation Times + + + 0.0 + + + + + diff --git a/templates/MP2Demo/Structs/DigitalGuardianData.xml b/templates/MP2Demo/Structs/DigitalGuardianData.xml new file mode 100644 index 00000000..9332b047 --- /dev/null +++ b/templates/MP2Demo/Structs/DigitalGuardianData.xml @@ -0,0 +1,88 @@ + + + + DigitalGuardianData + + + 10.0 + + + 17.0 + + + 5.0 + + + + + 9 + + + 50.0 + + + 10.0 + + + + + + 5.0 + + + 15.0 + + + 50.0 + + + 30.0 + + + 20.0 + + + 20.0 + + + + + 9 + + + 50.0 + + + 10.0 + + + + + -1 + + + 100.0 + + + -1 + + + -1 + + + 2.0 + + + -1 + + + 500.0 + + + -1 + + + + + + diff --git a/templates/MP2Demo/Structs/DigitalGuardianHeadData.xml b/templates/MP2Demo/Structs/DigitalGuardianHeadData.xml new file mode 100644 index 00000000..3e660081 --- /dev/null +++ b/templates/MP2Demo/Structs/DigitalGuardianHeadData.xml @@ -0,0 +1,112 @@ + + + + DigitalGuardianHeadData + + + + CMDL + + + + 60.0 + + + 20.0 + + + 100.0 + + + 5.0 + + + 30.0 + + + 5.0 + + + 1.25 + + + 5.0 + + + 2.0 + + + 30.0 + + + + WPSC + + + + + + 9 + + + 20.0 + + + 10.0 + + + + + -1 + + + + WPSC + + + + + + 9 + + + 20.0 + + + 10.0 + + + + + -1 + + + + WPSC + + + + + + 9 + + + 20.0 + + + 10.0 + + + + + -1 + + + + + + + + + + diff --git a/templates/MP2Demo/Structs/DynamicLightFalloff.xml b/templates/MP2Demo/Structs/DynamicLightFalloff.xml new file mode 100644 index 00000000..667389b0 --- /dev/null +++ b/templates/MP2Demo/Structs/DynamicLightFalloff.xml @@ -0,0 +1,18 @@ + + + + DynamicLightFalloff + + + 0 + + + + 0.0 + + + false + + + + diff --git a/templates/MP2Demo/Structs/DynamicLightIntensity.xml b/templates/MP2Demo/Structs/DynamicLightIntensity.xml new file mode 100644 index 00000000..8bf28279 --- /dev/null +++ b/templates/MP2Demo/Structs/DynamicLightIntensity.xml @@ -0,0 +1,15 @@ + + + + DynamicLightIntensity + + + + 0.0 + + + false + + + + diff --git a/templates/MP2Demo/Structs/DynamicLightMotionSpline.xml b/templates/MP2Demo/Structs/DynamicLightMotionSpline.xml new file mode 100644 index 00000000..eec28ab7 --- /dev/null +++ b/templates/MP2Demo/Structs/DynamicLightMotionSpline.xml @@ -0,0 +1,16 @@ + + + + DynamicLightMotionSpline + + + false + + + + + 10.0 + + + + diff --git a/templates/MP2Demo/Structs/DynamicLightParent.xml b/templates/MP2Demo/Structs/DynamicLightParent.xml new file mode 100644 index 00000000..45eb45dd --- /dev/null +++ b/templates/MP2Demo/Structs/DynamicLightParent.xml @@ -0,0 +1,26 @@ + + + + DynamicLightParent + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + false + + + + diff --git a/templates/MP2Demo/Structs/DynamicLightSpotlight.xml b/templates/MP2Demo/Structs/DynamicLightSpotlight.xml new file mode 100644 index 00000000..3b447986 --- /dev/null +++ b/templates/MP2Demo/Structs/DynamicLightSpotlight.xml @@ -0,0 +1,15 @@ + + + + DynamicLightSpotlight + + + + 0.0 + + + false + + + + diff --git a/templates/MP2Demo/Structs/PatternedAITypedef.xml b/templates/MP2Demo/Structs/PatternedAITypedef.xml new file mode 100644 index 00000000..acef95ce --- /dev/null +++ b/templates/MP2Demo/Structs/PatternedAITypedef.xml @@ -0,0 +1,146 @@ + + + + PatternedAITypedef + + + 150.0 + + + 1.0 + + + 120.0 + + + 100.0 + + + 0.0 + + + 60.0 + + + 6.0 + + + 11.0 + + + 2.0 + + + 1.0 + + + 50.0 + + + 25.0 + + + 5.0 + + + + 2.0 + + + + + 2.0 + + + + + + 1.0 + + + 2.0 + + + + 0.0 + 0.0 + 0.0 + + + + 0.1 + + + 1000.0 + + + 1000.0 + + + 0.0 + + + -1 + + + + + AFSM + + + + + FSM2 + + + + 0.1 + + + 0.1 + + + 2.0 + + + 0 + + + + 0.0 + 0.0 + 0.0 + + + + + PART + + + + + + 0.0 + 0.0 + 0.0 + + + + + PART + + + + -1 + + + + RULE + + + + 0 + + + + diff --git a/templates/MP2Demo/Structs/PlatformMotionProperties.xml b/templates/MP2Demo/Structs/PlatformMotionProperties.xml new file mode 100644 index 00000000..971fe640 --- /dev/null +++ b/templates/MP2Demo/Structs/PlatformMotionProperties.xml @@ -0,0 +1,22 @@ + + + + PlatformMotionProperties + + + + + 10.0 + + + 0.0 + + + 288 + + + + + + + diff --git a/templates/MP2Demo/Structs/RezbitData.xml b/templates/MP2Demo/Structs/RezbitData.xml new file mode 100644 index 00000000..8cc6211b --- /dev/null +++ b/templates/MP2Demo/Structs/RezbitData.xml @@ -0,0 +1,120 @@ + + + + RezbitData + + + 20.0 + + + 10.0 + + + + CMDL + + + + + CSKR + + + + 20.0 + + + 40.0 + + + 10.0 + + + + + 9 + + + 20.0 + + + 5.0 + + + + + -1 + + + 20.0 + + + 40.0 + + + 10.0 + + + + + 9 + + + 20.0 + + + 5.0 + + + + + + WPSC + + + + 4.0 + + + 2.0 + + + + + 500.0 + + + 4.0 + + + 1.0 + + + 20.0 + + + 0.25 + + + 2.0 + + + + 0.49803901 + 0.49803901 + 0.49803901 + 0.49803901 + + + + + 0.60000002 + 0.60000002 + 0.0 + 0.49803901 + + + + + + + diff --git a/templates/MP2Demo/Structs/RotationSplines.xml b/templates/MP2Demo/Structs/RotationSplines.xml new file mode 100644 index 00000000..5181a067 --- /dev/null +++ b/templates/MP2Demo/Structs/RotationSplines.xml @@ -0,0 +1,11 @@ + + + + RotationSplines + + + + + + + diff --git a/templates/MP2Demo/Structs/ScaleSplines.xml b/templates/MP2Demo/Structs/ScaleSplines.xml new file mode 100644 index 00000000..71962c4f --- /dev/null +++ b/templates/MP2Demo/Structs/ScaleSplines.xml @@ -0,0 +1,11 @@ + + + + ScaleSplines + + + + + + + diff --git a/templates/MP2Demo/Structs/SpacePirateWeaponData.xml b/templates/MP2Demo/Structs/SpacePirateWeaponData.xml new file mode 100644 index 00000000..a97178c6 --- /dev/null +++ b/templates/MP2Demo/Structs/SpacePirateWeaponData.xml @@ -0,0 +1,77 @@ + + + + SpacePirateWeaponData + + + 0 + + + + CMDL + + + + 3 + + + 15.0 + + + 50.0 + + + + + 9 + + + 40.0 + + + 8.0 + + + 10.0 + + + + + + PART + + + + + PART + + + + + PART + + + + 25.0 + + + 0.40000001 + + + 20.0 + + + 50.0 + + + 2 + + + 0 + + + 0 + + + + diff --git a/templates/MP2Demo/Structs/SplitterMainChassisData.xml b/templates/MP2Demo/Structs/SplitterMainChassisData.xml new file mode 100644 index 00000000..33e55103 --- /dev/null +++ b/templates/MP2Demo/Structs/SplitterMainChassisData.xml @@ -0,0 +1,104 @@ + + + + SplitterMainChassisData + + + 124 + + + 2.0 + + + 2.5 + + + 6.0 + + + + + 9 + + + 20.0 + + + 5.0 + + + + + 3.0 + + + 100.0 + + + 40.0 + + + 3.0 + + + 6.0 + + + 30.0 + + + 60.0 + + + 20.0 + + + 20.0 + + + 60.0 + + + 20.0 + + + 6.0 + + + 6.0 + + + 1.5 + + + 10.0 + + + 30.0 + + + 4 + + + 30.0 + + + + + 9 + + + 20.0 + + + 5.0 + + + + + 0 + + + + + diff --git a/templates/MP2Demo/Structs/SurroundPan.xml b/templates/MP2Demo/Structs/SurroundPan.xml new file mode 100644 index 00000000..53636770 --- /dev/null +++ b/templates/MP2Demo/Structs/SurroundPan.xml @@ -0,0 +1,14 @@ + + + + SurroundPan + + + 0.0 + + + 0.0 + + + + diff --git a/templates/MP2Demo/Structs/UnknownStruct10.xml b/templates/MP2Demo/Structs/UnknownStruct10.xml new file mode 100644 index 00000000..5d7936c4 --- /dev/null +++ b/templates/MP2Demo/Structs/UnknownStruct10.xml @@ -0,0 +1,14 @@ + + + + UnknownStruct10 + + + false + + + 2.7 + + + + diff --git a/templates/MP2Demo/Structs/UnknownStruct11.xml b/templates/MP2Demo/Structs/UnknownStruct11.xml new file mode 100644 index 00000000..5df5ed0b --- /dev/null +++ b/templates/MP2Demo/Structs/UnknownStruct11.xml @@ -0,0 +1,78 @@ + + + + UnknownStruct11 + + + 10.0 + + + 0.25 + + + 80.0 + + + 15.0 + + + 50.0 + + + + + 9 + + + 50.0 + + + 10.0 + + + 10.0 + + + + + + PART + + + + + PART + + + + + PART + + + + 25.0 + + + 0.40000001 + + + 20.0 + + + 50.0 + + + 0 + + + 8.0 + + + 0 + + + 0 + + + + diff --git a/templates/MP2Demo/Structs/UnknownStruct12.xml b/templates/MP2Demo/Structs/UnknownStruct12.xml new file mode 100644 index 00000000..37590ff6 --- /dev/null +++ b/templates/MP2Demo/Structs/UnknownStruct12.xml @@ -0,0 +1,72 @@ + + + + UnknownStruct12 + + + + + 10.0 + + + 5.0 + + + + + + 15.0 + + + 30.0 + + + 40.0 + + + + PART + + + + 0 + + + 50.0 + + + 1.5 + + + 50.0 + + + 4.0 + + + 1.0 + + + + PART + + + + + PART + + + + + PART + + + + 0 + + + 0 + + + + diff --git a/templates/MP2Demo/Structs/UnknownStruct13.xml b/templates/MP2Demo/Structs/UnknownStruct13.xml new file mode 100644 index 00000000..e489784c --- /dev/null +++ b/templates/MP2Demo/Structs/UnknownStruct13.xml @@ -0,0 +1,16 @@ + + + + UnknownStruct13 + + + + + + + + 0.0 + + + + diff --git a/templates/MP2Demo/Structs/UnknownStruct14.xml b/templates/MP2Demo/Structs/UnknownStruct14.xml new file mode 100644 index 00000000..1f5965b3 --- /dev/null +++ b/templates/MP2Demo/Structs/UnknownStruct14.xml @@ -0,0 +1,9 @@ + + + + UnknownStruct14 + + + + + diff --git a/templates/MP2Demo/Structs/UnknownStruct15.xml b/templates/MP2Demo/Structs/UnknownStruct15.xml new file mode 100644 index 00000000..25005c69 --- /dev/null +++ b/templates/MP2Demo/Structs/UnknownStruct15.xml @@ -0,0 +1,14 @@ + + + + UnknownStruct15 + + + + WPSC + + + + + + diff --git a/templates/MP2Demo/Structs/UnknownStruct16.xml b/templates/MP2Demo/Structs/UnknownStruct16.xml new file mode 100644 index 00000000..b0bd9ede --- /dev/null +++ b/templates/MP2Demo/Structs/UnknownStruct16.xml @@ -0,0 +1,17 @@ + + + + UnknownStruct16 + + + + + + 0.0 + + + 0.0 + + + + diff --git a/templates/MP2Demo/Structs/UnknownStruct17.xml b/templates/MP2Demo/Structs/UnknownStruct17.xml new file mode 100644 index 00000000..f4a569c2 --- /dev/null +++ b/templates/MP2Demo/Structs/UnknownStruct17.xml @@ -0,0 +1,29 @@ + + + + UnknownStruct17 + + + 75.0 + + + 50.0 + + + 25.0 + + + 10.0 + + + -1.0 + + + 10.0 + + + 50.0 + + + + diff --git a/templates/MP2Demo/Structs/UnknownStruct18.xml b/templates/MP2Demo/Structs/UnknownStruct18.xml new file mode 100644 index 00000000..4adad53a --- /dev/null +++ b/templates/MP2Demo/Structs/UnknownStruct18.xml @@ -0,0 +1,84 @@ + + + + UnknownStruct18 + + + 10.0 + + + 50.0 + + + + 1.0 + 1.0 + 1.0 + + + + 5.0 + + + + PART + + + + 0 + + + + + 9 + + + 20.0 + + + 10.0 + + + + + + + 500.0 + + + 4.0 + + + 1.0 + + + 20.0 + + + 0.25 + + + 2.0 + + + + 0.49803901 + 0.49803901 + 0.49803901 + 0.49803901 + + + + + 0.60000002 + 0.60000002 + 0.0 + 0.49803901 + + + + + + + + diff --git a/templates/MP2Demo/Structs/UnknownStruct19.xml b/templates/MP2Demo/Structs/UnknownStruct19.xml new file mode 100644 index 00000000..d8b1c44f --- /dev/null +++ b/templates/MP2Demo/Structs/UnknownStruct19.xml @@ -0,0 +1,78 @@ + + + + UnknownStruct19 + + + + + 9 + + + 10.0 + + + 4.5 + + + 4.0 + + + + + 5.0 + + + 10.0 + + + 15.0 + + + 7.0 + + + 25.0 + + + 360.0 + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + diff --git a/templates/MP2Demo/Structs/UnknownStruct20.xml b/templates/MP2Demo/Structs/UnknownStruct20.xml new file mode 100644 index 00000000..c8e65367 --- /dev/null +++ b/templates/MP2Demo/Structs/UnknownStruct20.xml @@ -0,0 +1,74 @@ + + + + UnknownStruct20 + + + + + + 9 + + + 5.0 + + + 1.0 + + + + + + PART + + + + + PART + + + + -1 + + + 4.0 + + + 0.5 + + + 15.0 + + + 20.0 + + + 5 + + + 0 + + + 0 + + + 30.0 + + + 2.0 + + + 0 + + + 3 + + + 40.0 + + + true + + + + diff --git a/templates/MP2Demo/Structs/UnknownStruct21.xml b/templates/MP2Demo/Structs/UnknownStruct21.xml new file mode 100644 index 00000000..f9872e22 --- /dev/null +++ b/templates/MP2Demo/Structs/UnknownStruct21.xml @@ -0,0 +1,84 @@ + + + + UnknownStruct21 + + + false + + + + 1.8 + 1.8 + 1.8 + + + + 150.0 + + + 0.5 + + + + + 9 + + + 5.0 + + + 1.0 + + + + + + 10.0 + + + 3.0 + + + -1 + + + -1 + + + -1 + + + -1 + + + -1 + + + 1.5 + + + + + 9 + + + 5.0 + + + 1.0 + + + + + 3 + + + 5 + + + 2 + + + + diff --git a/templates/MP2Demo/Structs/UnknownStruct22.xml b/templates/MP2Demo/Structs/UnknownStruct22.xml new file mode 100644 index 00000000..e8729a3e --- /dev/null +++ b/templates/MP2Demo/Structs/UnknownStruct22.xml @@ -0,0 +1,42 @@ + + + + UnknownStruct22 + + + 10 + + + + 4.0 + + + 4.0 + + + 4.0 + + + 4.0 + + + 5.0 + + + 14.0 + + + 16.0 + + + 20.0 + + + 40.0 + + + 100.0 + + + + diff --git a/templates/MP2Demo/Structs/UnknownStruct23.xml b/templates/MP2Demo/Structs/UnknownStruct23.xml new file mode 100644 index 00000000..dcdbde64 --- /dev/null +++ b/templates/MP2Demo/Structs/UnknownStruct23.xml @@ -0,0 +1,136 @@ + + + + UnknownStruct23 + + + 10 + + + 20.0 + + + 720.0 + + + 20.0 + + + 4.0 + + + 10.0 + + + 20.0 + + + 3 + + + + WPSC + + + + + + 9 + + + 10.0 + + + + + 1 + + + 3 + + + 100.0 + + + 10.0 + + + 100.0 + + + 45.0 + + + + + 9 + + + 10.0 + + + + + + + 500.0 + + + 4.0 + + + 1.0 + + + 20.0 + + + 0.25 + + + 2.0 + + + + 0.49803901 + 0.49803901 + 0.49803901 + 0.49803901 + + + + + 0.60000002 + 0.60000002 + 0.0 + 0.49803901 + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + -1 + + + -1 + + + 0 + + + + + + diff --git a/templates/MP2Demo/Structs/UnknownStruct3.xml b/templates/MP2Demo/Structs/UnknownStruct3.xml new file mode 100644 index 00000000..1ca0b7f6 --- /dev/null +++ b/templates/MP2Demo/Structs/UnknownStruct3.xml @@ -0,0 +1,20 @@ + + + + UnknownStruct3 + + + 0 + + + 10.0 + + + 1.0 + + + 1.0 + + + + diff --git a/templates/MP2Demo/Structs/UnknownStruct5.xml b/templates/MP2Demo/Structs/UnknownStruct5.xml new file mode 100644 index 00000000..257f515f --- /dev/null +++ b/templates/MP2Demo/Structs/UnknownStruct5.xml @@ -0,0 +1,65 @@ + + + + UnknownStruct5 + + + 90.0 + + + 90.0 + + + 60.0 + + + 60.0 + + + 30.0 + + + 30.0 + + + 30.0 + + + 1.0 + + + 0.0 + + + 90.0 + + + 40.0 + + + 20.0 + + + 2.0 + + + + + WPSC + + + + + + + AFSM + + + + + PART + + + + + diff --git a/templates/MP2Demo/Structs/UnknownStruct6.xml b/templates/MP2Demo/Structs/UnknownStruct6.xml new file mode 100644 index 00000000..0207a806 --- /dev/null +++ b/templates/MP2Demo/Structs/UnknownStruct6.xml @@ -0,0 +1,11 @@ + + + + UnknownStruct6 + + + 0 + + + + diff --git a/templates/MP2Demo/Structs/UnknownStruct7.xml b/templates/MP2Demo/Structs/UnknownStruct7.xml new file mode 100644 index 00000000..fea03859 --- /dev/null +++ b/templates/MP2Demo/Structs/UnknownStruct7.xml @@ -0,0 +1,18 @@ + + + + UnknownStruct7 + + + false + + + + 0.0 + 1.0 + 1.0 + + + + + diff --git a/templates/MP2Demo/Structs/UnknownStruct8.xml b/templates/MP2Demo/Structs/UnknownStruct8.xml new file mode 100644 index 00000000..6611dbc1 --- /dev/null +++ b/templates/MP2Demo/Structs/UnknownStruct8.xml @@ -0,0 +1,14 @@ + + + + UnknownStruct8 + + + false + + + 55.0 + + + + diff --git a/templates/MP2Demo/Structs/UnknownStruct9.xml b/templates/MP2Demo/Structs/UnknownStruct9.xml new file mode 100644 index 00000000..034d3ff9 --- /dev/null +++ b/templates/MP2Demo/Structs/UnknownStruct9.xml @@ -0,0 +1,14 @@ + + + + UnknownStruct9 + + + false + + + 120.0 + + + + diff --git a/templates/MP3/Enums/PlayerItem.xml b/templates/MP3/Enums/PlayerItem.xml new file mode 100644 index 00000000..661695b3 --- /dev/null +++ b/templates/MP3/Enums/PlayerItem.xml @@ -0,0 +1,69 @@ + + + + PlayerItem + 0x0 + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/MP3/Game.xml b/templates/MP3/Game.xml new file mode 100644 index 00000000..0de02df4 --- /dev/null +++ b/templates/MP3/Game.xml @@ -0,0 +1,2879 @@ + + + + + ACHI + + + + ACKF + + + + ACTR + + + + ADMG + + + + AIFZ + + + + AIHT + + + + AIKF + + + + AITP + + + + AIWP + + + + ALRM + + + + AMIA + + + + AMOR + + + + AOCL + + + + ASAS + + + + ATMA + + + + ATRN + + + + AUR1 + + + + AUR2 + + + + AVIS + + + + AVMC + + + + BALS + + + + BALT + + + + BALW + + + + BEAM + + + + BLUR + + + + BLWF + + + + BOS3 + + + + BSKR + + + + BSTR + + + + CABL + + + + CABP + + + + CACL + + + + CAIF + + + + CAMH + + + + CAMP + + + + CAMS + + + + CANB + + + + CAWL + + + + CINE + + + + CLRM + + + + CMBT + + + + CNTA + + + + CNTR + + + + COVR + + + + CRAR + + + + CRLY + + + + CSAC + + + + CSAT + + + + CTLH + + + + DEBR + + + + DEFM + + + + DFOG + + + + DGMN + + + + DKSE + + + + DLHT + + + + DMGA + + + + DOCK + + + + DOOR + + + + DRKS + + + + DTRG + + + + DTRO + + + + EFCT + + + + EFTR + + + + EMPU + + + + EYEP + + + + FGHS + + + + FGHT + + + + FILT + + + + FISH + + + + FLAR + + + + FLPS + + + + FLYP + + + + FOGO + + + + FOGV + + + + FRND + + + + FSHM + + + + FSWM + + + + FXDC + + + + GAND + + + + GENR + + + + GHOR + + + + GHRU + + + + GMNU + + + + GNTB + + + + GNTT + + + + GOBD + + + + GRAP + + + + GRFL + + + + GSAC + + + + GSCR + + + + GSLD + + + + GWIG + + + + HHNT + + + + HINT + + + + IFTC + + + + KRAK + + + + KRBA + + + + KRBM + + + + LODC + + + + LUAX + + + + LVOL + + + + MEMO + + + + MHAT + + + + MHOP + + + + MIIA + + + + MINI + + + + MMDL + + + + MOVI + + + + MPHZ + + + + MREE + + + + MRLY + + + + MYSF + + + + NBAR + + + + NOTU + + + + OPAA + + + + PARA + + + + PCKP + + + + PCTL + + + + PDBR + + + + PDRN + + + + PGVS + + + + PHHR + + + + PHPF + + + + PHZD + + + + PHZS + + + + PILL + + + + PIRT + + + + PLAC + + + + PLAT + + + + PLCH + + + + PLPX + + + + PMCT + + + + POIN + + + + PPDL + + + + PSSM + + + + PTNT + + + + PUAP + + + + PUFR + + + + RADD + + + + REAA + + + + REPH + + + + REPL + + + + RID1 + + + + RIPL + + + + RMAC + + + + RRLY + + + + RSPL + + + + RUMB + + + + RUND + + + + SAMD + + + + SAMF + + + + SB2G + + + + SB2P + + + + SB2X + + + + SBEM + + + + SBMI + + + + SBO1 + + + + SCIC + + + + SCTL + + + + SDB1 + + + + SDRN + + + + SHBG + + + + SHBR + + + + SHCI + + + + SHCP + + + + SHDW + + + + SHHC + + + + SHIP + + + + SHPX + + + + SKRP + + + + SLCT + + + + SNAG + + + + SNDM + + + + SOND + + + + SPDC + + + + SPFN + + + + SPIN + + + + SPRL + + + + SPRT + + + + SPWN + + + + SQTR + + + + SRLY + + + + STAU + + + + STEM + + + + STMB + + + + STML + + + + SUBT + + + + SWBT + + + + SWJT + + + + SWRM + + + + SWTC + + + + TEL1 + + + + TGPT + + + + TIMR + + + + TKEY + + + + TMAI + + + + TRGR + + + + TXPN + + + + VGOO + + + + VOLG + + + + WATR + + + + WAYP + + + + WEED + + + + WLDA + + + + WLIT + + + + WPNG + + + + WTAT + + + + WTCR + + + + + + Abilities + + + + ActivationTime + + + + ActorParameters + + + + AiDifficultySettings + + + + Armor + + + + AuroraUnit1Data + + + + AuroraUnit2Data + + + + Ball + + + + BeastRiderData + + + + BerserkerData + + + + BerserkerEnum + + + + BlinkWolfData + + + + BonusCredit + + + + CableEnum + + + + CableProperties + + + + CameraConstraints + + + + CameraFieldOfView + + + + CameraInterpolation + + + + CameraMotion + + + + CameraNavigation + + + + CameraOrientation + + + + CameraPosition + + + + CameraRotation + + + + CameraShakerData + + + + CameraShakerEnvelope + + + + CattleProd + + + + Chakram + + + + ChasePosition + + + + CinematicBlend + + + + CircleLineMode + + + + ColliderPosition + + + + CommandData + + + + ConditionalTest + + + + Connection + + + + ContextActionCombinationLockStruct + + + + ControlCommands + + + + Convergence + + + + CounterConditions + + + + DamageInfo + + + + DamageVulnerability + + + + DamageableTriggerEnum + + + + DarkSamusData + + + + DarkSamusEchoData + + + + DebrisProperties + + + + DebrisPropertiesOrientationEnum + + + + DefenseMechanoidData + + + + DynamicLightFalloff + + + + DynamicLightIntensity + + + + DynamicLightMotionSpline + + + + DynamicLightParent + + + + DynamicLightSpotlight + + + + EditorProperties + + + + ElectricBeamInfo + + + + EnergyWhip + + + + EyePodData + + + + EyePodStruct + + + + FOVInterpolationMethod + + + + FargullHatcherData + + + + FargullHatcherSwarmData + + + + FederationData + + + + FishCloudAggressionData + + + + FlareDef + + + + FluidProperties + + + + FlyerMovementMode + + + + FlyerSwarmData + + + + FlyingPirateData + + + + FlyingPirateHelixMissileData + + + + FlyingPirateStruct + + + + FriendlyData + + + + GandraydaData + + + + GeneratedObjectDeleterProperties + + + + GhorStructA + + + + GhorStructB + + + + GhorStructC + + + + GragnolFlyerData + + + + GrappleBlock + + + + GrappleData + + + + GrappleInfo + + + + GuiWidgetProperties + + + + GunTurretBaseData + + + + GunTurretTopData + + + + HealthInfo + + + + HoverThenHomeProjectile + + + + HyperMode + + + + HyperModeData + + + + InterpolationMethod + + + + Inventory + + + + JetPack + + + + KorakkData + + + + KorbaMawData + + + + KorbaSnatcherData + + + + LaunchProjectileData + + + + LayerID + + + + LayerInfo + + + + LightParameters + + + + MetroidHatcherData + + + + MetroidHopperData + + + + MetroidHopperStruct + + + + MetroidPhazeoidStruct + + + + Misc + + + + ModIncaData + + + + MotionInterpolationMethod + + + + MultiModelActorStruct + + + + MultiModelInformation + + + + MysteryFlyerData + + + + NonSlowdown + + + + OffsetInterpolant + + + + OffsetPosition + + + + OffsetSplines + + + + OptionalAreaAssetTypes + + + + OrientationInterpolationMethod + + + + PIDConvergence + + + + PTCNoseTurretData + + + + ParticleBlaster + + + + PathDetermination + + + + PathDeterminationMethodType + + + + PathPosition + + + + PathType + + + + PatternedAITypedef + + + + PhaazoidData + + + + PhazonFlyerSwarmData + + + + PhazonLeechData + + + + PhazonPuddleData + + + + PhysicsDebrisProperties + + + + PhysicsDebrisPropertiesOrientationEnum + + + + PirateDroneData + + + + PlasmaBeamInfo + + + + PlatformMotionProperties + + + + PlayerActorStruct + + + + PlayerInventoryItem + + + + PlayerItem + + + + ProportionalConvergence + + + + PuddleControlData + + + + PuddleControlPhaseData + + + + RagDollData + + + + RainProperties + + + + ReptilicusHunterData + + + + ReptilicusHunterStruct + + + + Ridley1Data + + + + RotationSplines + + + + RundasData + + + + SavedStateID + + + + ScaleSplines + + + + ScanBeamInfo + + + + ScannableParameters + + + + SeedBoss1Action + + + + SeedBoss1Data + + + + SeedBoss1HandData + + + + SeedBoss1OrbData + + + + SeedBoss1Shield + + + + SeedBoss1Stage + + + + SeedBoss2PrimeBotData + + + + SeedBoss3Data + + + + Ship + + + + ShipData + + + + ShipDecalControllerStruct + + + + ShockWaveInfo + + + + SpacePirateData + + + + SpacePirateStruct + + + + SpacePirateWeaponData + + + + SpindleOrientation + + + + SpindlePosition + + + + SpindlePositionInterpolant + + + + SplineType + + + + SpringConvergence + + + + SpriteStruct + + + + StaticGeometryTest + + + + SteamBotData + + + + SteamLordData + + + + SurfaceOrientation + + + + SurfacePosition + + + + SurroundPan + + + + SwarmBasicsData + + + + SwarmBotData + + + + SwarmSoundData + + + + TeamAIDebugEnum + + + + TextProperties + + + + Transform + + + + TranslationSplines + + + + TriggerInfo + + + + UnknownEnum1 + + + + UnknownStruct1 + + + + UnknownStruct10 + + + + UnknownStruct11 + + + + UnknownStruct12 + + + + UnknownStruct13 + + + + UnknownStruct14 + + + + UnknownStruct15 + + + + UnknownStruct16 + + + + UnknownStruct17 + + + + UnknownStruct18 + + + + UnknownStruct19 + + + + UnknownStruct2 + + + + UnknownStruct20 + + + + UnknownStruct21 + + + + UnknownStruct22 + + + + UnknownStruct23 + + + + UnknownStruct24 + + + + UnknownStruct25 + + + + UnknownStruct26 + + + + UnknownStruct27 + + + + UnknownStruct28 + + + + UnknownStruct29 + + + + UnknownStruct3 + + + + UnknownStruct30 + + + + UnknownStruct31 + + + + UnknownStruct32 + + + + UnknownStruct33 + + + + UnknownStruct34 + + + + UnknownStruct35 + + + + UnknownStruct36 + + + + UnknownStruct37 + + + + UnknownStruct38 + + + + UnknownStruct39 + + + + UnknownStruct4 + + + + UnknownStruct40 + + + + UnknownStruct41 + + + + UnknownStruct42 + + + + UnknownStruct43 + + + + UnknownStruct44 + + + + UnknownStruct45 + + + + UnknownStruct46 + + + + UnknownStruct47 + + + + UnknownStruct48 + + + + UnknownStruct49 + + + + UnknownStruct5 + + + + UnknownStruct50 + + + + UnknownStruct51 + + + + UnknownStruct52 + + + + UnknownStruct53 + + + + UnknownStruct54 + + + + UnknownStruct55 + + + + UnknownStruct56 + + + + UnknownStruct57 + + + + UnknownStruct58 + + + + UnknownStruct59 + + + + UnknownStruct6 + + + + UnknownStruct60 + + + + UnknownStruct61 + + + + UnknownStruct62 + + + + UnknownStruct63 + + + + UnknownStruct64 + + + + UnknownStruct65 + + + + UnknownStruct66 + + + + UnknownStruct7 + + + + UnknownStruct8 + + + + UnknownStruct9 + + + + Vector2f + + + + VelocityConvergence + + + + VisorParameters + + + + Visors + + + + WallCrawlerData + + + + WeaponGeneratorProperties + + + + WeaponVulnerability + + + + Weapons + + + + + + !ZER + NonZero + + + ACQU + ACQU + + + ACTV + Active + + + AIS1 + AILogicState1 + + + AIS2 + AILogicState2 + + + AIS3 + AILogicState3 + + + ANMO + AnimOver + + + ANMS + AnimStart + + + APRC + Approach + + + ARRV + Arrived + + + ATCL + AttachedCollisionObject + + + ATOB + AttachedAnimatedObject + + + ATPA + ATPA + + + ATTK + Attack + + + BEZR + BEZR + + + BIDG + BallIceXDamage + + + BSCN + BeginScan + + + BSPL + BSPL + + + BXDG + BallXDamage + + + CINT + CINT + + + CLOS + Closed + + + CONN + Connect + + + CPTH + CameraPath + + + CROM + CROM + + + CTGT + CameraTarget + + + CTIM + CameraTime + + + DAMG + Damage + + + DBMB + DBMB + + + DEAD + Dead + + + DGNR + DeGenerate + + + DOWN + Down + + + DRKX + DarkXDamage + + + ENTR + Entered + + + ESCN + EndScan + + + EXIT + Exited + + + FOOT + Footstep + + + FOVP + FOVP + + + FREZ + Freeze + + + GRN0 + GRN0 + + + GRN1 + GRN1 + + + GRNT + Generate + + + IBND + InheritBounds + + + ICTV + Inactive + + + IDMG + IceXDamage + + + INSD + Inside + + + IS00 + InternalState0 + + + IS01 + InternalState1 + + + IS02 + InternalState2 + + + IS03 + InternalState3 + + + IS04 + InternalState4 + + + IS05 + InternalState5 + + + IS06 + InternalState6 + + + IS07 + InternalState7 + + + IS08 + InternalState8 + + + IS09 + InternalState9 + + + IS10 + InternalState10 + + + IS11 + InternalState11 + + + IS12 + InternalState12 + + + IS13 + InternalState13 + + + IS14 + InternalState14 + + + IS15 + InternalState15 + + + IS16 + InternalState16 + + + IS17 + InternalState17 + + + IS18 + InternalState18 + + + IS19 + InternalState19 + + + IS20 + IS20 + + + IS21 + IS21 + + + IS22 + IS22 + + + IS23 + IS23 + + + IS24 + IS24 + + + IS25 + IS25 + + + IS26 + IS26 + + + IS27 + IS27 + + + IS28 + IS28 + + + IS29 + IS29 + + + IS30 + IS30 + + + IS31 + IS31 + + + IS32 + IS32 + + + IS33 + IS33 + + + IS34 + IS34 + + + IS35 + IS35 + + + IS36 + IS36 + + + IS37 + IS37 + + + IS38 + IS38 + + + IS39 + IS39 + + + IS40 + IS40 + + + IS41 + IS41 + + + IS44 + IS44 + + + IS45 + IS45 + + + IS46 + IS46 + + + IS47 + IS47 + + + IS48 + IS48 + + + LDWA + DrawAfter + + + LDWB + DrawBefore + + + LEFT + Left + + + LINR + LINR + + + LOCK + Locked + + + LTKA + ThinkAfter + + + LTKB + ThinkBefore + + + MAXR + MaxReached + + + MDFY + Modify + + + MOTP + MOTP + + + MOTS + MOTS + + + NEXT + NEXT + + + OPEN + Open + + + ORBO + ORBO + + + PLAY + Play + + + PLRP + PLRP + + + PRSA + PressA + + + PRSB + PressB + + + PRST + PressStart + + + PRSX + PressX + + + PRSY + PressY + + + PRSZ + PressZ + + + PTRL + Patrol + + + RATL + DeathRattle + + + RCRM + RCRM + + + RDUE + SpawnResidue + + + REFD + ReflectedDamage + + + RESD + ResistedDamage + + + RGHT + Right + + + RLAY + Relay + + + ROTO + RotationOver + + + ROTS + RotationStart + + + RTRT + Retreat + + + SCND + ScanDone + + + SCNS + ScanSource + + + SE01 + SE01 + + + SE02 + SE02 + + + SE03 + SE03 + + + SLAV + Slave + + + SLCR + SpawnLargeCreatures + + + SMCR + SpawnMediumCreatures + + + SQNC + Sequence + + + SSCR + SpawnSmallCreatures + + + TGTO + TGTO + + + TGTP + TGTP + + + TGTS + TGTS + + + UFRZ + UnFreeze + + + ULCK + Unlocked + + + UP + Up + + + WLTE + WLTE + + + XB2F + BackToFront + + + XDMG + XDamage + + + XF2B + FrontToBack + + + XINB + InBack + + + XINF + InFront + + + XOUT + Outside + + + ZERO + Zero + + + + + ACTN + Action + + + ACTV + Activate + + + ALRT + Alert + + + ARRV + ARRV + + + ATCH + Attach + + + ATCI + AttachInstance + + + CLOS + Close + + + CORG + ClearOriginator + + + DCTV + Deactivate + + + DECR + Decrement + + + DOWN + Down + + + ESCP + Escape + + + FADI + FadeIn + + + FADO + FadeOut + + + FOLW + Follow + + + IM00 + InternalMessage0 + + + IM01 + InternalMessage1 + + + IM02 + InternalMessage2 + + + IM03 + InternalMessage3 + + + IM04 + InternalMessage4 + + + IM05 + InternalMessage5 + + + IM06 + InternalMessage6 + + + IM07 + InternalMessage7 + + + IM08 + InternalMessage8 + + + IM09 + InternalMessage9 + + + IM10 + InternalMessage10 + + + IM11 + InternalMessage11 + + + IM12 + InternalMessage12 + + + IM13 + InternalMessage13 + + + IM14 + InternalMessage14 + + + IM15 + InternalMessage15 + + + IM16 + InternalMessage16 + + + IM17 + InternalMessage17 + + + IM18 + InternalMessage18 + + + IM19 + InternalMessage19 + + + IM20 + IM20 + + + IM21 + IM21 + + + IM22 + IM22 + + + IM23 + IM23 + + + IM24 + IM24 + + + IM25 + IM25 + + + IM26 + IM26 + + + IM27 + IM27 + + + IM28 + IM28 + + + IM42 + IM42 + + + IM43 + IM43 + + + INCR + Increment + + + KILL + Kill + + + LEFT + Left + + + LOAD + Load + + + LOCK + Lock + + + NEXT + Next + + + NONE + None + + + OFF + OFF + + + ON + ON + + + OPEN + OPEN + + + PLAY + PLAY + + + RGHT + Right + + + RMOV + RMOV + + + RSAN + RSAN + + + RSET + Reset + + + RSTP + RSTP + + + RSTS + ResetAndStart + + + SALL + StopAllSounds + + + SALP + StopAllLoopedSounds + + + SMAX + SetToMax + + + SORG + SetOriginator + + + STOP + Stop + + + STPR + StopAndReset + + + STRT + Start + + + TCTV + ToggleActive + + + TOPN + ToggleOpen + + + ULCK + Unlock + + + ULOD + Unload + + + UP + Up + + + XALD + AreaLoaded + + + XAOV + AcidOnVisor + + + XAUD + AIUpdateDisabled + + + XAUL + AreaUnloading + + + XCLR + Clear + + + XCRT + Create + + + XDEL + Delete + + + XDMG + XDMG + + + XENF + EnteredFluid + + + XENT + XENT + + + XEPZ + EnteredPhazonPool + + + XEXF + ExitedFluid + + + XFAL + Falling + + + XHIT + HitObject + + + XINF + InsideFluid + + + XINS + InShrubbery + + + XIPZ + InsidePhazonPool + + + XLAU + Launching + + + XLND + Landed + + + XLSG + LandedOnStaticGround + + + XOFF + OffGround + + + XOND + OnDirt + + + XONI + OnIce + + + XONO + OnOrganic + + + XONP + OnPlatform + + + XRDG + XRDG + + + XWLD + WorldLoaded + + + XXDG + XXDG + + + XXPZ + ExitedPhazonPool + + + ZERO + SetToZero + + + diff --git a/templates/MP3/Structs/Abilities.xml b/templates/MP3/Structs/Abilities.xml new file mode 100644 index 00000000..ee7b5cbe --- /dev/null +++ b/templates/MP3/Structs/Abilities.xml @@ -0,0 +1,17 @@ + + + + Abilities + + + false + + + 0 + + + 0 + + + + diff --git a/templates/MP3/Structs/ActivationTime.xml b/templates/MP3/Structs/ActivationTime.xml new file mode 100644 index 00000000..f413c46e --- /dev/null +++ b/templates/MP3/Structs/ActivationTime.xml @@ -0,0 +1,25 @@ + + + + ActivationTime + true + + + Time + 0.0 + + + Unknown 1 + 0 + + + Unknown 2 + 0 + + + Unknown 3 + 0 + + + + diff --git a/templates/MP3/Structs/Armor.xml b/templates/MP3/Structs/Armor.xml new file mode 100644 index 00000000..86ef6d91 --- /dev/null +++ b/templates/MP3/Structs/Armor.xml @@ -0,0 +1,67 @@ + + + + Armor + + + false + + + + + 100.0 + + + 5.0 + + + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + diff --git a/templates/MP3/Structs/Ball.xml b/templates/MP3/Structs/Ball.xml new file mode 100644 index 00000000..237a44c8 --- /dev/null +++ b/templates/MP3/Structs/Ball.xml @@ -0,0 +1,17 @@ + + + + Ball + + + false + + + false + + + false + + + + diff --git a/templates/MP3/Structs/BeastRiderData.xml b/templates/MP3/Structs/BeastRiderData.xml new file mode 100644 index 00000000..f4cfffa5 --- /dev/null +++ b/templates/MP3/Structs/BeastRiderData.xml @@ -0,0 +1,25 @@ + + + + BeastRiderData + + + + CMDL + + + + + + CMDL + + + + + + CAUD + + + + + diff --git a/templates/MP3/Structs/BlinkWolfData.xml b/templates/MP3/Structs/BlinkWolfData.xml new file mode 100644 index 00000000..e990546b --- /dev/null +++ b/templates/MP3/Structs/BlinkWolfData.xml @@ -0,0 +1,279 @@ + + + + BlinkWolfData + + + false + + + false + + + 20.0 + + + 2.0 + + + 0.5 + + + 5.0 + + + 10.0 + + + 1.0 + + + 15.0 + + + 15.0 + + + 5 + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + CAUD + + + + + CAUD + + + + 70.0 + + + 180.0 + + + 20.0 + + + 15.0 + + + 24.0 + + + 3.0 + + + 1.0 + + + 3.0 + + + 15.0 + + + + 1.0 + + + 0.5 + + + 2.0 + + + 4.0 + + + + PART + + + + + PART + + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 2.0 + + + 1.0 + + + 1.0 + + + 5.0 + + + 1.0 + + + 1.0 + + + 5.0 + + + 100.0 + + + 1.0 + + + 5.0 + + + 5.0 + + + 2.0 + + + 5.0 + + + 2.0 + + + 1.0 + + + 10.0 + + + 2.0 + + + 5.0 + + + 10.0 + + + 15.0 + + + 10.0 + + + 60.0 + + + + diff --git a/templates/MP3/Structs/BonusCredit.xml b/templates/MP3/Structs/BonusCredit.xml new file mode 100644 index 00000000..175f3f7a --- /dev/null +++ b/templates/MP3/Structs/BonusCredit.xml @@ -0,0 +1,18 @@ + + + + BonusCredit + + + 0xBF93CA38 + + + + + + + + + + + diff --git a/templates/MP3/Structs/CableProperties.xml b/templates/MP3/Structs/CableProperties.xml new file mode 100644 index 00000000..1f253717 --- /dev/null +++ b/templates/MP3/Structs/CableProperties.xml @@ -0,0 +1,105 @@ + + + + CableProperties + + + + SWHC + + + + 0x436F402A + + + + + + + + + + 0x2C8482EE + + + + + + + + 0xD6629DCA + + + + + + + 0xB9B7640F + + + + + + + + false + + + 10 + + + 4.0 + + + 4.0 + + + 0x80DD21B4 + + + 0x23363FD3 + + + 0x24CF38F1 + + + 1.0 + + + false + + + false + + + + + false + + + true + + + true + + + + + 0.0 + + + 15.0 + + + 0.0167 + + + 0x23363FD3 + + + + + + + + diff --git a/templates/MP3/Structs/CameraConstraints.xml b/templates/MP3/Structs/CameraConstraints.xml new file mode 100644 index 00000000..dd5a856b --- /dev/null +++ b/templates/MP3/Structs/CameraConstraints.xml @@ -0,0 +1,11 @@ + + + + CameraConstraints + + + 1 + + + + diff --git a/templates/MP3/Structs/CameraFieldOfView.xml b/templates/MP3/Structs/CameraFieldOfView.xml new file mode 100644 index 00000000..ec8604ca --- /dev/null +++ b/templates/MP3/Structs/CameraFieldOfView.xml @@ -0,0 +1,29 @@ + + + + CameraFieldOfView + + + 0xA93DE248 + + + + + + + + 0xD2CFE11 + + + + + + + + 60.0 + + + + + + diff --git a/templates/MP3/Structs/CameraInterpolation.xml b/templates/MP3/Structs/CameraInterpolation.xml new file mode 100644 index 00000000..85ea61e8 --- /dev/null +++ b/templates/MP3/Structs/CameraInterpolation.xml @@ -0,0 +1,44 @@ + + + + CameraInterpolation + + + 3 + + + 100.0 + + + 135.0 + + + + + + 3 + + + 100.0 + + + 135.0 + + + + + + 3 + + + 100.0 + + + 135.0 + + + + + + + diff --git a/templates/MP3/Structs/CameraMotion.xml b/templates/MP3/Structs/CameraMotion.xml new file mode 100644 index 00000000..933a13b6 --- /dev/null +++ b/templates/MP3/Structs/CameraMotion.xml @@ -0,0 +1,17 @@ + + + + CameraMotion + + + + 0xB1059189 + + + + + + + + + diff --git a/templates/MP3/Structs/CameraNavigation.xml b/templates/MP3/Structs/CameraNavigation.xml new file mode 100644 index 00000000..0893a287 --- /dev/null +++ b/templates/MP3/Structs/CameraNavigation.xml @@ -0,0 +1,11 @@ + + + + CameraNavigation + + + 0 + + + + diff --git a/templates/MP3/Structs/CameraPosition.xml b/templates/MP3/Structs/CameraPosition.xml new file mode 100644 index 00000000..46e08d4e --- /dev/null +++ b/templates/MP3/Structs/CameraPosition.xml @@ -0,0 +1,29 @@ + + + + CameraPosition + + + 0xC239D6DB + + + + + + + + + + + + 2 + + + + + + + + + + diff --git a/templates/MP3/Structs/CameraRotation.xml b/templates/MP3/Structs/CameraRotation.xml new file mode 100644 index 00000000..7b22b9ac --- /dev/null +++ b/templates/MP3/Structs/CameraRotation.xml @@ -0,0 +1,9 @@ + + + + CameraRotation + + + + + diff --git a/templates/MP3/Structs/CameraShakerData.xml b/templates/MP3/Structs/CameraShakerData.xml new file mode 100644 index 00000000..942d3764 --- /dev/null +++ b/templates/MP3/Structs/CameraShakerData.xml @@ -0,0 +1,21 @@ + + + + CameraShakerData + + + 48 + + + 5.0 + + + 1.0 + + + + + + + + diff --git a/templates/MP3/Structs/CattleProd.xml b/templates/MP3/Structs/CattleProd.xml new file mode 100644 index 00000000..146bae22 --- /dev/null +++ b/templates/MP3/Structs/CattleProd.xml @@ -0,0 +1,30 @@ + + + + CattleProd + + + + + 5.0 + + + + PART + ELSC + + + + 1.0 + + + 25.0 + + + + CAUD + + + + + diff --git a/templates/MP3/Structs/Chakram.xml b/templates/MP3/Structs/Chakram.xml new file mode 100644 index 00000000..ddc1169c --- /dev/null +++ b/templates/MP3/Structs/Chakram.xml @@ -0,0 +1,72 @@ + + + + Chakram + + + + CMDL + + + + + PART + + + + + PART + + + + + PART + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + + 50.0 + + + 50.0 + + + 720.0 + + + 0.5 + + + + PART + ELSC + + + + 1.0 + + + 20.0 + + + 60.0 + + + + diff --git a/templates/MP3/Structs/ChasePosition.xml b/templates/MP3/Structs/ChasePosition.xml new file mode 100644 index 00000000..866e301c --- /dev/null +++ b/templates/MP3/Structs/ChasePosition.xml @@ -0,0 +1,18 @@ + + + + ChasePosition + + + 0.0 + + + 0.0 + + + 0.0 + + + + + diff --git a/templates/MP3/Structs/CinematicBlend.xml b/templates/MP3/Structs/CinematicBlend.xml new file mode 100644 index 00000000..29cb334a --- /dev/null +++ b/templates/MP3/Structs/CinematicBlend.xml @@ -0,0 +1,11 @@ + + + + CinematicBlend + + + + + + + diff --git a/templates/MP3/Structs/CircleLineMode.xml b/templates/MP3/Structs/CircleLineMode.xml new file mode 100644 index 00000000..67788563 --- /dev/null +++ b/templates/MP3/Structs/CircleLineMode.xml @@ -0,0 +1,15 @@ + + + + CircleLineMode + + + + + + + + + + + diff --git a/templates/MP3/Structs/ColliderPosition.xml b/templates/MP3/Structs/ColliderPosition.xml new file mode 100644 index 00000000..86cb7218 --- /dev/null +++ b/templates/MP3/Structs/ColliderPosition.xml @@ -0,0 +1,65 @@ + + + + ColliderPosition + + + 0xB745A689 + + + + + + 5.0 + + + 10.0 + + + 2.7360001 + + + + + + + 0.0099999998 + + + + + + + + + + + 80.0 + + + 4.0 + + + + + + + + + + + 30.0 + + + 8.0 + + + 2.5 + + + + + + + + diff --git a/templates/MP3/Structs/Connection.xml b/templates/MP3/Structs/Connection.xml new file mode 100644 index 00000000..dede2fb4 --- /dev/null +++ b/templates/MP3/Structs/Connection.xml @@ -0,0 +1,17 @@ + + + + Connection + true + + + Connection Index + 0 + + + Activation Times + + + + + diff --git a/templates/MP3/Structs/CounterConditions.xml b/templates/MP3/Structs/CounterConditions.xml new file mode 100644 index 00000000..d2f7d6ca --- /dev/null +++ b/templates/MP3/Structs/CounterConditions.xml @@ -0,0 +1,38 @@ + + + + CounterConditions + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + 10 + + + + diff --git a/templates/MP3/Structs/DebrisProperties.xml b/templates/MP3/Structs/DebrisProperties.xml new file mode 100644 index 00000000..aaf4b6b5 --- /dev/null +++ b/templates/MP3/Structs/DebrisProperties.xml @@ -0,0 +1,239 @@ + + + + DebrisProperties + + + 180.0 + + + 180.0 + + + + 0.0 + 0.0 + 1.0 + + + + + 0.0 + 0.0 + 0.0 + + + + true + + + 5.0 + + + 15.0 + + + + -1.0 + -1.0 + -1.0 + + + + + 1.0 + 1.0 + 1.0 + + + + 2.0 + + + 3.0 + + + 0.0 + + + 10.0 + + + 80.0 + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + + 1.0 + 1.0 + 1.0 + + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + false + + + false + + + 80.0 + + + + 1.0 + 1.0 + 1.0 + + + + 0.375 + + + 0.1 + + + 25.0 + + + 1.0 + + + + CMDL + + + + + 0.0 + 0.0 + 0.0 + + + + + CAUD + + + + 1 + + + 1.0 + + + 1.0 + + + 0.1 + + + 0.1 + + + 0.1 + + + 0.1 + + + 0.1 + + + + PART + + + + + 1.0 + 1.0 + 1.0 + + + + false + + + false + + + true + + + + + PART + + + + + 1.0 + 1.0 + 1.0 + + + + false + + + false + + + true + + + + true + + + true + + + false + + + + 1.0 + 1.0 + 1.0 + + + + false + + + false + + + true + + + false + + + false + + + false + + + true + + + + diff --git a/templates/MP3/Structs/DynamicLightFalloff.xml b/templates/MP3/Structs/DynamicLightFalloff.xml new file mode 100644 index 00000000..d9f525f2 --- /dev/null +++ b/templates/MP3/Structs/DynamicLightFalloff.xml @@ -0,0 +1,18 @@ + + + + DynamicLightFalloff + + + 0 + + + + 0.0 + + + false + + + + diff --git a/templates/MP3/Structs/DynamicLightIntensity.xml b/templates/MP3/Structs/DynamicLightIntensity.xml new file mode 100644 index 00000000..bd15fced --- /dev/null +++ b/templates/MP3/Structs/DynamicLightIntensity.xml @@ -0,0 +1,15 @@ + + + + DynamicLightIntensity + + + + 0.0 + + + false + + + + diff --git a/templates/MP3/Structs/DynamicLightMotionSpline.xml b/templates/MP3/Structs/DynamicLightMotionSpline.xml new file mode 100644 index 00000000..c97b2eb9 --- /dev/null +++ b/templates/MP3/Structs/DynamicLightMotionSpline.xml @@ -0,0 +1,16 @@ + + + + DynamicLightMotionSpline + + + false + + + + + 10.0 + + + + diff --git a/templates/MP3/Structs/DynamicLightParent.xml b/templates/MP3/Structs/DynamicLightParent.xml new file mode 100644 index 00000000..0ab99492 --- /dev/null +++ b/templates/MP3/Structs/DynamicLightParent.xml @@ -0,0 +1,26 @@ + + + + DynamicLightParent + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + false + + + + diff --git a/templates/MP3/Structs/DynamicLightSpotlight.xml b/templates/MP3/Structs/DynamicLightSpotlight.xml new file mode 100644 index 00000000..53d8f78c --- /dev/null +++ b/templates/MP3/Structs/DynamicLightSpotlight.xml @@ -0,0 +1,15 @@ + + + + DynamicLightSpotlight + + + + 0.0 + + + false + + + + diff --git a/templates/MP3/Structs/EnergyWhip.xml b/templates/MP3/Structs/EnergyWhip.xml new file mode 100644 index 00000000..4c6ecb16 --- /dev/null +++ b/templates/MP3/Structs/EnergyWhip.xml @@ -0,0 +1,30 @@ + + + + EnergyWhip + + + + + + 2.5 + + + 15.0 + + + + PART + + + + + CAUD + + + + false + + + + diff --git a/templates/MP3/Structs/EyePodData.xml b/templates/MP3/Structs/EyePodData.xml new file mode 100644 index 00000000..675531f1 --- /dev/null +++ b/templates/MP3/Structs/EyePodData.xml @@ -0,0 +1,81 @@ + + + + EyePodData + + + 20.0 + + + 40.0 + + + 5.0 + + + 2.0 + + + 5.0 + + + 1 + + + 4 + + + 0.25 + + + 0.5 + + + 0.25 + + + 0.5 + + + 5.0 + + + 7.0 + + + + WPSC + + + + + WPSC + + + + + + 5.0 + + + true + + + 20.0 + + + 2.0 + + + + + + false + + + false + + + + + diff --git a/templates/MP3/Structs/FargullHatcherData.xml b/templates/MP3/Structs/FargullHatcherData.xml new file mode 100644 index 00000000..524efd1b --- /dev/null +++ b/templates/MP3/Structs/FargullHatcherData.xml @@ -0,0 +1,40 @@ + + + + FargullHatcherData + + + false + + + 20.0 + + + 20.0 + + + 20.0 + + + + + 1.0 + + + 5 + + + 10.0 + + + 20.0 + + + 0.5 + + + 2.0 + + + + diff --git a/templates/MP3/Structs/FargullHatcherSwarmData.xml b/templates/MP3/Structs/FargullHatcherSwarmData.xml new file mode 100644 index 00000000..49370b9a --- /dev/null +++ b/templates/MP3/Structs/FargullHatcherSwarmData.xml @@ -0,0 +1,14 @@ + + + + FargullHatcherSwarmData + + + 4.0 + + + 25.0 + + + + diff --git a/templates/MP3/Structs/FederationData.xml b/templates/MP3/Structs/FederationData.xml new file mode 100644 index 00000000..dd5b9167 --- /dev/null +++ b/templates/MP3/Structs/FederationData.xml @@ -0,0 +1,15 @@ + + + + FederationData + + + true + + + + false + + + + diff --git a/templates/MP3/Structs/FishCloudAggressionData.xml b/templates/MP3/Structs/FishCloudAggressionData.xml new file mode 100644 index 00000000..127a9d57 --- /dev/null +++ b/templates/MP3/Structs/FishCloudAggressionData.xml @@ -0,0 +1,34 @@ + + + + FishCloudAggressionData + + + 2.0 + + + 30.0 + + + 1.0 + + + 2.0 + + + + PART + + + + 0 + + + 0.0 + + + 0.0 + + + + diff --git a/templates/MP3/Structs/FluidProperties.xml b/templates/MP3/Structs/FluidProperties.xml new file mode 100644 index 00000000..d5aa6ca4 --- /dev/null +++ b/templates/MP3/Structs/FluidProperties.xml @@ -0,0 +1,284 @@ + + + + FluidProperties + + + 0x54F30820 + + + + + + + + false + + + true + + + true + + + true + + + true + + + 0.25 + + + 1.0 + + + 5.0 + + + 5.0 + + + 0x48DC9CE2 + + + + + + + + + + + + + 0.0 + 0.0 + 0.49803901 + + + + + 0.0 + 0.49803901 + 1.0 + + + + + TXTR + + + + + TXTR + + + + + TXTR + + + + + TXTR + + + + + TXTR + + + + + TXTR + + + + 0.25 + + + 0.050000001 + + + 0.30000001 + + + 10.0 + + + 0.0 + + + + + + + + + 1.0 + 1.0 + 1.0 + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + 50.0 + + + 45000.0 + + + + PART + + + + + PART + + + + + PART + + + + + CAUD + + + + + CAUD + + + + 7.0 + + + -0.5 + + + -1.0 + + + 10.0 + + + + 1.0 + 1.0 + 1.0 + + + + 0.0 + + + 0.0 + + + 1.0 + + + false + + + 6.0 + + + 8.0 + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + PART + + + + + CAUD + + + + false + + + 1.0 + + + 300 + + + + + diff --git a/templates/MP3/Structs/FlyingPirateData.xml b/templates/MP3/Structs/FlyingPirateData.xml new file mode 100644 index 00000000..4bdccc51 --- /dev/null +++ b/templates/MP3/Structs/FlyingPirateData.xml @@ -0,0 +1,130 @@ + + + + FlyingPirateData + + + false + + + true + + + false + + + false + + + false + + + 7.0 + + + 50.0 + + + 30.0 + + + 5.0 + + + 1.0 + + + 10.0 + + + 50.0 + + + 2.0 + + + 100.0 + + + + CMDL + + + + + CMDL + + + + 15.0 + + + 30.0 + + + 20.0 + + + 5.0 + + + 15.0 + + + 90.0 + + + 20.0 + + + 20.0 + + + 30.0 + + + 4.0 + + + 80.0 + + + 80.0 + + + 20.0 + + + 30.0 + + + 100.0 + + + 30.0 + + + 3.0 + + + + + + + + + + + + false + + + false + + + + 60.0 + + + + diff --git a/templates/MP3/Structs/FlyingPirateHelixMissileData.xml b/templates/MP3/Structs/FlyingPirateHelixMissileData.xml new file mode 100644 index 00000000..fb0f91ae --- /dev/null +++ b/templates/MP3/Structs/FlyingPirateHelixMissileData.xml @@ -0,0 +1,46 @@ + + + + FlyingPirateHelixMissileData + + + + + WPSC + + + + + WPSC + + + + + + PART + ELSC + + + + + CAUD + + + + 10.0 + + + 20.0 + + + 50.0 + + + 3.0 + + + 1.0 + + + + diff --git a/templates/MP3/Structs/FriendlyData.xml b/templates/MP3/Structs/FriendlyData.xml new file mode 100644 index 00000000..a1198202 --- /dev/null +++ b/templates/MP3/Structs/FriendlyData.xml @@ -0,0 +1,107 @@ + + + + FriendlyData + + + false + + + + false + + + false + + + true + + + false + + + false + + + 10.0 + + + false + + + 30.0 + + + 2.0 + + + 2.0 + + + 1.0 + + + false + + + + WPSC + + + + + CAUD + + + + + + 5.0 + + + + + + + + BFRC + + + + + CMDL + + + + true + + + 10.0 + + + 1000.0 + + + false + + + false + + + 60.0 + + + 90.0 + + + true + + + false + + + true + + + + diff --git a/templates/MP3/Structs/GeneratedObjectDeleterProperties.xml b/templates/MP3/Structs/GeneratedObjectDeleterProperties.xml new file mode 100644 index 00000000..3504a2b4 --- /dev/null +++ b/templates/MP3/Structs/GeneratedObjectDeleterProperties.xml @@ -0,0 +1,11 @@ + + + + GeneratedObjectDeleterProperties + + + true + + + + diff --git a/templates/MP3/Structs/GragnolFlyerData.xml b/templates/MP3/Structs/GragnolFlyerData.xml new file mode 100644 index 00000000..f1ac93cc --- /dev/null +++ b/templates/MP3/Structs/GragnolFlyerData.xml @@ -0,0 +1,282 @@ + + + + GragnolFlyerData + + + false + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + 0.0 + 0.0 + 0.0 + + + + 20.0 + + + 120.0 + + + + + Never + + + + + + PART + + + + + CAUD + + + + -1.0 + + + 5.0 + + + + + Never + + + Never + + + + + 5.0 + + + + + 50.0 + + + Never + + + + + + + Never + + + + + + + Never + + + + + + 5.0 + + + 2.0 + + + 10.0 + + + 1.0 + + + 5.0 + + + false + + + true + + + 5.0 + + + + + 1 + + + Never + + + 10.0 + + + false + + + + + 1 + + + 180.0 + + + false + + + + + + + 180.0 + + + false + + + + + Never + + + Never + + + Never + + + Never + 180.0 + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + false + + + Never + + + + + Never + + + Never + + + Never + + + Never + 180.0 + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + false + + + Never + + + + + + + 180.0 + + + false + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + + diff --git a/templates/MP3/Structs/GrappleInfo.xml b/templates/MP3/Structs/GrappleInfo.xml new file mode 100644 index 00000000..ef062144 --- /dev/null +++ b/templates/MP3/Structs/GrappleInfo.xml @@ -0,0 +1,23 @@ + + + + GrappleInfo + + + 5.0 + + + 20.0 + + + 180.0 + + + false + + + false + + + + diff --git a/templates/MP3/Structs/GunTurretBaseData.xml b/templates/MP3/Structs/GunTurretBaseData.xml new file mode 100644 index 00000000..da5fb226 --- /dev/null +++ b/templates/MP3/Structs/GunTurretBaseData.xml @@ -0,0 +1,43 @@ + + + + GunTurretBaseData + + + false + + + false + + + false + + + false + + + 2.0 + + + 5.0 + + + 1.0 + + + 10.0 + + + 10.0 + + + 0.69999999 + + + + PART + + + + + diff --git a/templates/MP3/Structs/GunTurretTopData.xml b/templates/MP3/Structs/GunTurretTopData.xml new file mode 100644 index 00000000..b978d8d8 --- /dev/null +++ b/templates/MP3/Structs/GunTurretTopData.xml @@ -0,0 +1,71 @@ + + + + GunTurretTopData + + + false + + + false + + + false + + + true + + + 100.0 + + + + 180.0 + + + 10.0 + + + 0.0 + + + 0.0 + + + 1.0 + + + 3.0 + + + 1.0 + + + 1.0 + + + 1 + + + 5 + + + + CRSC + + + + + WPSC + + + + + 10.0 + + + 5.0 + + + + diff --git a/templates/MP3/Structs/HyperMode.xml b/templates/MP3/Structs/HyperMode.xml new file mode 100644 index 00000000..fa270a5c --- /dev/null +++ b/templates/MP3/Structs/HyperMode.xml @@ -0,0 +1,35 @@ + + + + HyperMode + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + + diff --git a/templates/MP3/Structs/Inventory.xml b/templates/MP3/Structs/Inventory.xml new file mode 100644 index 00000000..d56ddef8 --- /dev/null +++ b/templates/MP3/Structs/Inventory.xml @@ -0,0 +1,15 @@ + + + + Inventory + + + + + + + + + + + diff --git a/templates/MP3/Structs/JetPack.xml b/templates/MP3/Structs/JetPack.xml new file mode 100644 index 00000000..280186ea --- /dev/null +++ b/templates/MP3/Structs/JetPack.xml @@ -0,0 +1,37 @@ + + + + JetPack + + + 120.0 + + + 5.0 + + + 1.0 + + + 2.0 + + + + PART + + + + + PART + + + + + PART + + + + + + + diff --git a/templates/MP3/Structs/KorbaMawData.xml b/templates/MP3/Structs/KorbaMawData.xml new file mode 100644 index 00000000..8f414b0e --- /dev/null +++ b/templates/MP3/Structs/KorbaMawData.xml @@ -0,0 +1,18 @@ + + + + KorbaMawData + + + + 0.5 + + + 3.0 + + + 2.8 + + + + diff --git a/templates/MP3/Structs/KorbaSnatcherData.xml b/templates/MP3/Structs/KorbaSnatcherData.xml new file mode 100644 index 00000000..0d87d064 --- /dev/null +++ b/templates/MP3/Structs/KorbaSnatcherData.xml @@ -0,0 +1,43 @@ + + + + KorbaSnatcherData + + + 0.80000001 + + + 5 + + + 8 + + + 1.0 + + + 2.5 + + + 2000.0 + + + 0.1 + + + 0.30000001 + + + 1.0 + + + 30.0 + + + + PART + + + + + diff --git a/templates/MP3/Structs/LayerID.xml b/templates/MP3/Structs/LayerID.xml new file mode 100644 index 00000000..8b18f0f6 --- /dev/null +++ b/templates/MP3/Structs/LayerID.xml @@ -0,0 +1,15 @@ + + + + LayerID + true + + + AreaId + + + LayerId + + + + diff --git a/templates/MP3/Structs/MetroidHopperData.xml b/templates/MP3/Structs/MetroidHopperData.xml new file mode 100644 index 00000000..029c4b33 --- /dev/null +++ b/templates/MP3/Structs/MetroidHopperData.xml @@ -0,0 +1,100 @@ + + + + MetroidHopperData + + + 1.0 + + + 100.0 + + + 1.0 + + + false + + + 1.0 + + + 30.0 + + + 8.0 + + + 11.0 + + + 0.5 + + + + + 0.1 + + + 20.0 + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + 0.60000002 + + + 0.30000001 + + + + + + + ELSC + + + + + CAUD + + + + 5.0 + + + + PART + + + + + + false + + + + diff --git a/templates/MP3/Structs/Misc.xml b/templates/MP3/Structs/Misc.xml new file mode 100644 index 00000000..04961554 --- /dev/null +++ b/templates/MP3/Structs/Misc.xml @@ -0,0 +1,30 @@ + + + + Misc + + + + + 1 + + + 1 + + + + + + + 1 + + + 1 + + + + + + + + diff --git a/templates/MP3/Structs/MultiModelInformation.xml b/templates/MP3/Structs/MultiModelInformation.xml new file mode 100644 index 00000000..7328868e --- /dev/null +++ b/templates/MP3/Structs/MultiModelInformation.xml @@ -0,0 +1,26 @@ + + + + MultiModelInformation + + + 0 + + + false + + + 0.0 + + + + + + + + + + + + + diff --git a/templates/MP3/Structs/MysteryFlyerData.xml b/templates/MP3/Structs/MysteryFlyerData.xml new file mode 100644 index 00000000..55feeaa0 --- /dev/null +++ b/templates/MP3/Structs/MysteryFlyerData.xml @@ -0,0 +1,38 @@ + + + + MysteryFlyerData + + + + WPSC + + + + + + 0xFFFFFFFF + + + 5.0 + + + + + 10.0 + + + 2.0 + + + 5.0 + + + true + + + + + + + diff --git a/templates/MP3/Structs/NonSlowdown.xml b/templates/MP3/Structs/NonSlowdown.xml new file mode 100644 index 00000000..c3ea4913 --- /dev/null +++ b/templates/MP3/Structs/NonSlowdown.xml @@ -0,0 +1,9 @@ + + + + NonSlowdown + + + + + diff --git a/templates/MP3/Structs/OffsetPosition.xml b/templates/MP3/Structs/OffsetPosition.xml new file mode 100644 index 00000000..45638cf8 --- /dev/null +++ b/templates/MP3/Structs/OffsetPosition.xml @@ -0,0 +1,19 @@ + + + + OffsetPosition + + + 0x95BBB57E + + + + + + + + + + + + diff --git a/templates/MP3/Structs/OffsetSplines.xml b/templates/MP3/Structs/OffsetSplines.xml new file mode 100644 index 00000000..5d183240 --- /dev/null +++ b/templates/MP3/Structs/OffsetSplines.xml @@ -0,0 +1,14 @@ + + + + OffsetSplines + + + false + + + + + + + diff --git a/templates/MP3/Structs/OptionalAreaAssetTypes.xml b/templates/MP3/Structs/OptionalAreaAssetTypes.xml new file mode 100644 index 00000000..ac13b06b --- /dev/null +++ b/templates/MP3/Structs/OptionalAreaAssetTypes.xml @@ -0,0 +1,11 @@ + + + + OptionalAreaAssetTypes + + + 0 + + + + diff --git a/templates/MP3/Structs/PIDConvergence.xml b/templates/MP3/Structs/PIDConvergence.xml new file mode 100644 index 00000000..bbecb810 --- /dev/null +++ b/templates/MP3/Structs/PIDConvergence.xml @@ -0,0 +1,24 @@ + + + + PIDConvergence + + + 0x5A778792 + + + + + + + 0.0 + + + 0.0 + + + 0.0 + + + + diff --git a/templates/MP3/Structs/PTCNoseTurretData.xml b/templates/MP3/Structs/PTCNoseTurretData.xml new file mode 100644 index 00000000..02cff41a --- /dev/null +++ b/templates/MP3/Structs/PTCNoseTurretData.xml @@ -0,0 +1,73 @@ + + + + PTCNoseTurretData + + + 0.5 + + + -90.0 + + + 90.0 + + + 90.0 + + + 90.0 + + + 0.0 + + + 15.0 + + + 360.0 + + + 135.0 + + + -135.0 + + + 360.0 + + + 45.0 + + + -45.0 + + + + WPSC + + + + + 1.0 + + + 3 + + + 0.1 + + + 2 + + + + CAUD + + + + false + + + + diff --git a/templates/MP3/Structs/ParticleBlaster.xml b/templates/MP3/Structs/ParticleBlaster.xml new file mode 100644 index 00000000..bdaa46a5 --- /dev/null +++ b/templates/MP3/Structs/ParticleBlaster.xml @@ -0,0 +1,43 @@ + + + + ParticleBlaster + + + + + WPSC + + + + + + CAUD + + + + + PART + ELSC + + + + + CAUD + + + + 50.0 + + + 3.0 + + + 1.0 + + + 0.1 + + + + diff --git a/templates/MP3/Structs/PathDeterminationMethodType.xml b/templates/MP3/Structs/PathDeterminationMethodType.xml new file mode 100644 index 00000000..84b03690 --- /dev/null +++ b/templates/MP3/Structs/PathDeterminationMethodType.xml @@ -0,0 +1,17 @@ + + + + PathDeterminationMethodType + + + 0x15F0534B + + + + + + + + + + diff --git a/templates/MP3/Structs/PathPosition.xml b/templates/MP3/Structs/PathPosition.xml new file mode 100644 index 00000000..39645b15 --- /dev/null +++ b/templates/MP3/Structs/PathPosition.xml @@ -0,0 +1,31 @@ + + + + PathPosition + + + 0 + + + 0xD25FBD92 + + + + + + + + + + + 4.0 + + + 3.0 + + + + + + + diff --git a/templates/MP3/Structs/PathType.xml b/templates/MP3/Structs/PathType.xml new file mode 100644 index 00000000..7b994ad0 --- /dev/null +++ b/templates/MP3/Structs/PathType.xml @@ -0,0 +1,20 @@ + + + + PathType + + + 0x8C1B1D20 + + + + + + + + + + + + + diff --git a/templates/MP3/Structs/PatternedAITypedef.xml b/templates/MP3/Structs/PatternedAITypedef.xml new file mode 100644 index 00000000..80c33018 --- /dev/null +++ b/templates/MP3/Structs/PatternedAITypedef.xml @@ -0,0 +1,191 @@ + + + + PatternedAITypedef + + + 150.0 + + + + 2.0 + + + + + 1.0 + + + 2.0 + + + + 0.0 + 0.0 + 0.0 + + + + 0.1 + + + + + FSM2 + + + + 0 + + + 5.0 + + + false + + + + RULE + + + + 0 + + + + CAUD + + + + + SCAN + + + + 1.0 + + + 120.0 + + + true + + + 100.0 + + + 0.0 + + + 60.0 + + + 6.0 + + + 11.0 + + + 2.0 + + + 1.0 + + + 50.0 + + + 25.0 + + + 5.0 + + + 0.1 + + + 0.1 + + + 2.0 + + + + CAUD + + + + 60.0 + + + 1000.0 + + + 0.0 + + + + CAUD + + + + + 0.0 + 0.0 + 0.0 + + + + + PART + + + + + + 1000.0 + + + + CAUD + + + + + + 0.0 + 0.0 + 0.0 + + + + + PART + + + + + 0.078431003 + 0.235294 + 0.31372601 + + + + + CAUD + + + + + 0.0 + 1.0 + 0.0 + + + + 1.0 + + + + + diff --git a/templates/MP3/Structs/PhaazoidData.xml b/templates/MP3/Structs/PhaazoidData.xml new file mode 100644 index 00000000..facc7e61 --- /dev/null +++ b/templates/MP3/Structs/PhaazoidData.xml @@ -0,0 +1,48 @@ + + + + PhaazoidData + + + 0 + + + false + + + false + + + 65.0 + + + 25.0 + + + 10.0 + + + 35.0 + + + 1.0 + + + 3.5 + + + 2.5 + + + 7.0 + + + + + WPSC + + + + + + diff --git a/templates/MP3/Structs/PhazonFlyerSwarmData.xml b/templates/MP3/Structs/PhazonFlyerSwarmData.xml new file mode 100644 index 00000000..1028b076 --- /dev/null +++ b/templates/MP3/Structs/PhazonFlyerSwarmData.xml @@ -0,0 +1,11 @@ + + + + PhazonFlyerSwarmData + + + 4.0 + + + + diff --git a/templates/MP3/Structs/PhazonLeechData.xml b/templates/MP3/Structs/PhazonLeechData.xml new file mode 100644 index 00000000..5c0d2341 --- /dev/null +++ b/templates/MP3/Structs/PhazonLeechData.xml @@ -0,0 +1,82 @@ + + + + PhazonLeechData + + + 1.0 + + + 0.5 + + + 0.69999999 + + + 0.89999998 + + + 0.15000001 + + + 30.0 + + + 35.0 + + + 55.0 + + + 2.0 + + + 4.0 + + + -1.0 + + + -1.0 + + + 2.0 + + + 1.0 + + + 3.0 + + + 1.0 + + + 1.0 + + + 1.0 + + + 2.0 + + + 1.0 + + + 7.0 + + + + 0.5 + + + 0.1 + + + + false + + + + diff --git a/templates/MP3/Structs/PhazonPuddleData.xml b/templates/MP3/Structs/PhazonPuddleData.xml new file mode 100644 index 00000000..50a9f8bf --- /dev/null +++ b/templates/MP3/Structs/PhazonPuddleData.xml @@ -0,0 +1,178 @@ + + + + PhazonPuddleData + + + + FSM2 + + + + + + 25.0 + + + + + 5.0 + + + + 1.0 + + + + 1.0 + + + 5.0 + + + 50 + + + 15.0 + + + 25.0 + + + 10.0 + + + 5.0 + + + 0.30000001 + + + 0.2 + + + 1.0 + + + 20.0 + + + 0.1 + + + 1.0 + + + 2.0 + + + 30.0 + + + + 5.0 + + + 25.0 + + + + + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + + diff --git a/templates/MP3/Structs/PhysicsDebrisProperties.xml b/templates/MP3/Structs/PhysicsDebrisProperties.xml new file mode 100644 index 00000000..652d3b6a --- /dev/null +++ b/templates/MP3/Structs/PhysicsDebrisProperties.xml @@ -0,0 +1,210 @@ + + + + PhysicsDebrisProperties + + + 180.0 + + + 180.0 + + + + 0.0 + 0.0 + 1.0 + + + + + 0.0 + 0.0 + 0.0 + + + + true + + + 5.0 + + + 15.0 + + + + -1.0 + -1.0 + -1.0 + + + + + 1.0 + 1.0 + 1.0 + + + + 2.0 + + + 3.0 + + + 0.0 + + + 10.0 + + + 80.0 + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + + 1.0 + 1.0 + 1.0 + + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + 80.0 + + + + 1.0 + 1.0 + 1.0 + + + + 0.375 + + + 0.1 + + + 25.0 + + + 1.0 + + + + CMDL + + + + + CAUD + + + + 1 + + + 1.0 + + + 1.0 + + + 0.1 + + + 0.1 + + + 0.1 + + + 0.1 + + + 0.1 + + + + PART + + + + + 1.0 + 1.0 + 1.0 + + + + false + + + false + + + true + + + + + PART + + + + + 1.0 + 1.0 + 1.0 + + + + false + + + false + + + true + + + + true + + + false + + + false + + + false + + + true + + + false + + + false + + + + diff --git a/templates/MP3/Structs/PirateDroneData.xml b/templates/MP3/Structs/PirateDroneData.xml new file mode 100644 index 00000000..69bbac12 --- /dev/null +++ b/templates/MP3/Structs/PirateDroneData.xml @@ -0,0 +1,296 @@ + + + + PirateDroneData + + + false + + + false + + + + + + + 0.69999999 + + + true + + + 5.0 + + + 0.0 + + + 5.0 + + + 0.0 + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + true + + + 0.5 + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + false + + + + + + + + + Never + + + + + + + Never + + + + + 3.0 + + + 2.0 + + + 0.0 + + + 1.0 + + + 1.0 + + + 1080.0 + + + 8.0 + + + 1.0 + + + 10.0 + + + 2.0 + + + 10.0 + + + 1.0 + + + 12.0 + + + 3.0 + + + 10.0 + + + 15.0 + + + 10.0 + + + 15.0 + + + false + + + 5 + + + 3 + + + 5.0 + + + 4.0 + + + 0.30000001 + + + 0.5 + + + 1.0 + + + 5.0 + + + 10.0 + + + true + + + 0.5 + + + true + + + true + + + 0.5 + + + 0.1 + + + false + + + 90.0 + + + 30.0 + + + 1.0 + + + 0 + + + 1 + + + 0 + + + 2 + + + 3.0 + + + 10.0 + + + + + diff --git a/templates/MP3/Structs/ProportionalConvergence.xml b/templates/MP3/Structs/ProportionalConvergence.xml new file mode 100644 index 00000000..ee350322 --- /dev/null +++ b/templates/MP3/Structs/ProportionalConvergence.xml @@ -0,0 +1,12 @@ + + + + ProportionalConvergence + + + 0.0 + + + + + diff --git a/templates/MP3/Structs/RainProperties.xml b/templates/MP3/Structs/RainProperties.xml new file mode 100644 index 00000000..414c2d75 --- /dev/null +++ b/templates/MP3/Structs/RainProperties.xml @@ -0,0 +1,45 @@ + + + + RainProperties + + + + 1.0 + 1.0 + 1.0 + 0.14902 + + + + -40.0 + + + 1.0 + + + 3.0 + + + 6.0 + + + 6.0 + + + 50.0 + + + + + true + + + + CAUD + + + + + + diff --git a/templates/MP3/Structs/ReptilicusHunterData.xml b/templates/MP3/Structs/ReptilicusHunterData.xml new file mode 100644 index 00000000..d91e67b5 --- /dev/null +++ b/templates/MP3/Structs/ReptilicusHunterData.xml @@ -0,0 +1,93 @@ + + + + ReptilicusHunterData + + + true + + + true + + + false + + + false + + + 15.0 + + + 20.0 + + + 40.0 + + + 2.0 + + + 4.0 + + + 1.0 + + + 0.25 + + + + CAUD + + + + + CAUD + + + + 2.0 + + + 300.0 + + + 0.0 + + + 10.0 + + + 0.0 + + + 1.0 + + + 1.0 + + + 1.0 + + + 7.5 + + + 25.0 + + + 10.0 + + + 10.0 + + + + + + + + + + diff --git a/templates/MP3/Structs/RotationSplines.xml b/templates/MP3/Structs/RotationSplines.xml new file mode 100644 index 00000000..b361ee01 --- /dev/null +++ b/templates/MP3/Structs/RotationSplines.xml @@ -0,0 +1,11 @@ + + + + RotationSplines + + + + + + + diff --git a/templates/MP3/Structs/ScaleSplines.xml b/templates/MP3/Structs/ScaleSplines.xml new file mode 100644 index 00000000..6d97ca6f --- /dev/null +++ b/templates/MP3/Structs/ScaleSplines.xml @@ -0,0 +1,11 @@ + + + + ScaleSplines + + + + + + + diff --git a/templates/MP3/Structs/SeedBoss1Data.xml b/templates/MP3/Structs/SeedBoss1Data.xml new file mode 100644 index 00000000..0f9516ba --- /dev/null +++ b/templates/MP3/Structs/SeedBoss1Data.xml @@ -0,0 +1,339 @@ + + + + SeedBoss1Data + + + 0.0 + + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + 0.0 + + + + + + + + + PART + + + + + CAUD + + + + + WPSC + + + + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + + 0.0 + 0.0 + 0.0 + + + + 0.0 + + + 0.0 + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + + 0.0 + 0.0 + 0.0 + + + + 0.0 + + + 0.0 + + + + PART + + + + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + 0.0 + + + 0.0 + + + + + + + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + + + diff --git a/templates/MP3/Structs/SeedBoss1HandData.xml b/templates/MP3/Structs/SeedBoss1HandData.xml new file mode 100644 index 00000000..be66a4ba --- /dev/null +++ b/templates/MP3/Structs/SeedBoss1HandData.xml @@ -0,0 +1,31 @@ + + + + SeedBoss1HandData + + + + + + + FSM2 + + + + + + PART + + + + + CAUD + + + + + 20.0 + + + + diff --git a/templates/MP3/Structs/SeedBoss1OrbData.xml b/templates/MP3/Structs/SeedBoss1OrbData.xml new file mode 100644 index 00000000..2488bfcb --- /dev/null +++ b/templates/MP3/Structs/SeedBoss1OrbData.xml @@ -0,0 +1,43 @@ + + + + SeedBoss1OrbData + + + + + + + 0.0 + 1.0 + 0.0 + + + + true + + + + PART + + + + + CAUD + + + + 0.0 + + + 25.0 + + + 1.0 + + + 1.0 + + + + diff --git a/templates/MP3/Structs/SeedBoss1Shield.xml b/templates/MP3/Structs/SeedBoss1Shield.xml new file mode 100644 index 00000000..1c40d3d1 --- /dev/null +++ b/templates/MP3/Structs/SeedBoss1Shield.xml @@ -0,0 +1,83 @@ + + + + SeedBoss1Shield + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + diff --git a/templates/MP3/Structs/Ship.xml b/templates/MP3/Structs/Ship.xml new file mode 100644 index 00000000..41c0a571 --- /dev/null +++ b/templates/MP3/Structs/Ship.xml @@ -0,0 +1,12 @@ + + + + Ship + + + + false + + + + diff --git a/templates/MP3/Structs/ShipData.xml b/templates/MP3/Structs/ShipData.xml new file mode 100644 index 00000000..5585ebbe --- /dev/null +++ b/templates/MP3/Structs/ShipData.xml @@ -0,0 +1,94 @@ + + + + ShipData + + + false + + + + WPSC + + + + + + 0xCD26D8F0 + + + 50.0 + + + 20.0 + + + 5.0 + + + + + + CAUD + + + + 0.5 + + + 10.0 + + + true + + + + + 90.0 + + + 90.0 + + + + + + PART + + + + + PART + + + + + SWHC + + + + + SWHC + + + + + PART + + + + + PART + + + + + true + + + 40.0 + + + + + diff --git a/templates/MP3/Structs/SpacePirateData.xml b/templates/MP3/Structs/SpacePirateData.xml new file mode 100644 index 00000000..88be2968 --- /dev/null +++ b/templates/MP3/Structs/SpacePirateData.xml @@ -0,0 +1,437 @@ + + + + SpacePirateData + + + 0 + + + true + + + false + + + false + + + false + + + false + + + 50.0 + + + 10.0 + + + false + + + true + + + 10.0 + + + 50.0 + + + 20.0 + + + 20.0 + + + 1000.0 + + + 8.0 + + + false + + + 80.0 + + + 1.0 + + + false + + + false + + + false + + + + + 10.0 + + + 5.0 + + + + + 0.1 + + + 0.050000001 + + + 0 + + + 1.0 + + + 0 + + + 2 + + + false + + + 0.025 + + + 1.0 + + + 0.25 + + + 100.0 + + + 100.0 + + + false + + + 10.0 + + + 5.0 + + + 150.0 + + + 3.0 + + + false + + + false + + + 30.0 + + + 15.0 + + + 50.0 + + + 2.0 + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + 1.0 + + + false + + + 5.0 + + + 10.0 + + + 2.0 + + + 25.0 + + + 16.0 + + + 4.0 + + + 3.0 + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + 10000 + + + 1.5 + + + + + + + false + + + false + + + + + 100.0 + + + + + + 1 + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + SCAN + + + + false + + + + + 100.0 + + + 5.0 + + + + + + + + CMDL + + + + + CSKR + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + false + + + 1 + + + 2 + + + 30.0 + + + false + + + 10.0 + + + 10.0 + + + 5.0 + + + 0 + + + + diff --git a/templates/MP3/Structs/SpindleOrientation.xml b/templates/MP3/Structs/SpindleOrientation.xml new file mode 100644 index 00000000..9fa49ab7 --- /dev/null +++ b/templates/MP3/Structs/SpindleOrientation.xml @@ -0,0 +1,13 @@ + + + + SpindleOrientation + + + 786432 + + + + + + diff --git a/templates/MP3/Structs/SpindlePosition.xml b/templates/MP3/Structs/SpindlePosition.xml new file mode 100644 index 00000000..bbe2082c --- /dev/null +++ b/templates/MP3/Structs/SpindlePosition.xml @@ -0,0 +1,23 @@ + + + + SpindlePosition + + + 320 + + + + + + + + + + + + + + + + diff --git a/templates/MP3/Structs/SpringConvergence.xml b/templates/MP3/Structs/SpringConvergence.xml new file mode 100644 index 00000000..87733416 --- /dev/null +++ b/templates/MP3/Structs/SpringConvergence.xml @@ -0,0 +1,26 @@ + + + + SpringConvergence + + + true + + + 10.0 + + + 0.0 + + + 0.0099999998 + + + 10.0 + + + 1.0 + + + + diff --git a/templates/MP3/Structs/SteamBotData.xml b/templates/MP3/Structs/SteamBotData.xml new file mode 100644 index 00000000..a00683ab --- /dev/null +++ b/templates/MP3/Structs/SteamBotData.xml @@ -0,0 +1,250 @@ + + + + SteamBotData + + + + 100.0 + + + 20.0 + + + 10.0 + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + 100.0 + + + 20.0 + + + 5.0 + + + + 1.0 + 1.0 + 1.0 + + + + 1.0 + + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + 0.1 + + + 0.015 + + + 30.0 + + + 5.0 + + + 0.5 + + + 1 + + + + 5.0 + + + 0.0 + + + 0.0 + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + TXTR + + + + 0.5 + + + 0.1 + + + 2.5 + + + 5.0 + + + 10.0 + + + 0.0 + + + 0.050000001 + + + 0.1 + + + 0.30000001 + + + 1.1 + + + 0.89999998 + + + + + + + + + + 1.0 + + + 5.0 + + + 5.0 + + + 0.5 + + + 0.0 + + + 0.0 + + + true + + + false + + + 5 + + + 4 + + + 2.0999999 + + + 1.9 + + + false + + + + + + 0.5 + + + 10.0 + + + 0.0 + + + 100.0 + + + true + + + + + diff --git a/templates/MP3/Structs/SteamLordData.xml b/templates/MP3/Structs/SteamLordData.xml new file mode 100644 index 00000000..d9b0cbd4 --- /dev/null +++ b/templates/MP3/Structs/SteamLordData.xml @@ -0,0 +1,75 @@ + + + + SteamLordData + + + false + + + false + + + 1.0 + + + 0.25 + + + 2.0 + + + 10.0 + + + 25.0 + + + 10.0 + + + 2.5 + + + 5.0 + + + 5.0 + + + 10.0 + + + 50.0 + + + + ELSC + + + + + PART + + + + + ELSC + + + + + ELSC + + + + 15.0 + + + 5.0 + + + + + + diff --git a/templates/MP3/Structs/SurfaceOrientation.xml b/templates/MP3/Structs/SurfaceOrientation.xml new file mode 100644 index 00000000..cede7e20 --- /dev/null +++ b/templates/MP3/Structs/SurfaceOrientation.xml @@ -0,0 +1,11 @@ + + + + SurfaceOrientation + + + 256 + + + + diff --git a/templates/MP3/Structs/SurfacePosition.xml b/templates/MP3/Structs/SurfacePosition.xml new file mode 100644 index 00000000..d0b3fbeb --- /dev/null +++ b/templates/MP3/Structs/SurfacePosition.xml @@ -0,0 +1,13 @@ + + + + SurfacePosition + + + 1 + + + + + + diff --git a/templates/MP3/Structs/SurroundPan.xml b/templates/MP3/Structs/SurroundPan.xml new file mode 100644 index 00000000..1d06f098 --- /dev/null +++ b/templates/MP3/Structs/SurroundPan.xml @@ -0,0 +1,14 @@ + + + + SurroundPan + + + 0.0 + + + 1.0 + + + + diff --git a/templates/MP3/Structs/SwarmBotData.xml b/templates/MP3/Structs/SwarmBotData.xml new file mode 100644 index 00000000..d337b8b7 --- /dev/null +++ b/templates/MP3/Structs/SwarmBotData.xml @@ -0,0 +1,200 @@ + + + + SwarmBotData + + + 8 + + + 8 + + + true + + + 3 + + + 10.0 + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + true + + + true + + + true + + + true + + + true + + + 28.0 + + + 25.0 + + + + + + WPSC + + + + + + + + PART + + + + + ELSC + + + + + ELSC + + + + + PART + + + + + PART + + + + + PART + + + + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + 0.5 + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + diff --git a/templates/MP3/Structs/TeamAIDebugEnum.xml b/templates/MP3/Structs/TeamAIDebugEnum.xml new file mode 100644 index 00000000..ccd2dc40 --- /dev/null +++ b/templates/MP3/Structs/TeamAIDebugEnum.xml @@ -0,0 +1,17 @@ + + + + TeamAIDebugEnum + + + 0xFC1B1B4F + + + + + + + + + + diff --git a/templates/MP3/Structs/TranslationSplines.xml b/templates/MP3/Structs/TranslationSplines.xml new file mode 100644 index 00000000..d0d20935 --- /dev/null +++ b/templates/MP3/Structs/TranslationSplines.xml @@ -0,0 +1,11 @@ + + + + TranslationSplines + + + + + + + diff --git a/templates/MP3/Structs/UnknownStruct1.xml b/templates/MP3/Structs/UnknownStruct1.xml new file mode 100644 index 00000000..cc236f6d --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct1.xml @@ -0,0 +1,47 @@ + + + + UnknownStruct1 + + + + + 1.0 + 1.0 + 0.0 + + + + 500.0 + + + 0.02 + + + 2.0 + + + 0.0 + + + 3.0 + + + 10.0 + + + 30.0 + + + + CAUD + + + + + CAUD + + + + + diff --git a/templates/MP3/Structs/UnknownStruct11.xml b/templates/MP3/Structs/UnknownStruct11.xml new file mode 100644 index 00000000..e004ab01 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct11.xml @@ -0,0 +1,18 @@ + + + + UnknownStruct11 + + + + WPSC + + + + + 45.0 + + + + + diff --git a/templates/MP3/Structs/UnknownStruct12.xml b/templates/MP3/Structs/UnknownStruct12.xml new file mode 100644 index 00000000..e1b9ef43 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct12.xml @@ -0,0 +1,72 @@ + + + + UnknownStruct12 + + + + WPSC + + + + + + 3 + + + 5 + + + 2.0 + + + 3.0 + + + 1.0 + + + 2.0 + + + 30.0 + + + 1.3 + + + 1.5 + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + 50.0 + + + + + diff --git a/templates/MP3/Structs/UnknownStruct13.xml b/templates/MP3/Structs/UnknownStruct13.xml new file mode 100644 index 00000000..1639c120 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct13.xml @@ -0,0 +1,38 @@ + + + + UnknownStruct13 + + + + + 7.0 + + + 8.0 + + + 45.0 + + + 5.0 + + + 30.0 + + + 45.0 + + + 60.0 + + + 1.3 + + + 1.5 + + + + + diff --git a/templates/MP3/Structs/UnknownStruct14.xml b/templates/MP3/Structs/UnknownStruct14.xml new file mode 100644 index 00000000..2faf2e2c --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct14.xml @@ -0,0 +1,25 @@ + + + + UnknownStruct14 + + + 540.0 + + + 75.0 + + + 250.0 + + + 10.0 + + + 15.0 + + + + + + diff --git a/templates/MP3/Structs/UnknownStruct15.xml b/templates/MP3/Structs/UnknownStruct15.xml new file mode 100644 index 00000000..d11e3eab --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct15.xml @@ -0,0 +1,10 @@ + + + + UnknownStruct15 + + + + + + diff --git a/templates/MP3/Structs/UnknownStruct16.xml b/templates/MP3/Structs/UnknownStruct16.xml new file mode 100644 index 00000000..66d01600 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct16.xml @@ -0,0 +1,43 @@ + + + + UnknownStruct16 + + + + + 5.0 + + + 10.0 + + + 1 + + + + + + 1.0 + 1.0 + 2.0 + + + + 215.0 + + + 100.0 + + + 1.0 + + + 5.0 + + + 0.5 + + + + diff --git a/templates/MP3/Structs/UnknownStruct17.xml b/templates/MP3/Structs/UnknownStruct17.xml new file mode 100644 index 00000000..1840c8c8 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct17.xml @@ -0,0 +1,250 @@ + + + + UnknownStruct17 + + + 750.0 + + + + + + 80.0 + + + 0.0 + + + 4.0 + + + 6.0 + + + 8.0 + + + 12.0 + + + 20.0 + + + 60.0 + + + 40.0 + + + 40.0 + + + 5.0 + + + + + 1 + + + Never + + + + + 1 + + + 180.0 + + + 0.1 + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + 0.5 + + + 2.0 + + + 5.0 + + + 7.0 + + + 0.1 + + + 0.5 + + + 400.0 + + + 60.0 + + + 4.0 + + + 6.0 + + + 25.0 + + + + + + + 20.0 + + + 5.0 + + + 10.0 + + + 1 + + + + + Never + + + Never + + + Never + + + 2.0 + + + Never + + + Never + + + Never + + + Never + + + + + + CMDL + + + + + 0.0 + + + + diff --git a/templates/MP3/Structs/UnknownStruct18.xml b/templates/MP3/Structs/UnknownStruct18.xml new file mode 100644 index 00000000..b1e96efd --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct18.xml @@ -0,0 +1,81 @@ + + + + UnknownStruct18 + + + + PART + + + + + PART + + + + + ELSC + + + + + ELSC + + + + 6 + + + 6 + + + + + 20.0 + + + 10.0 + + + 2 + + + + + + + 20.0 + + + 10.0 + + + 2 + + + + + 3.0 + + + 35.0 + + + 5.0 + + + 1.0 + + + 2.5 + + + 5.0 + + + 9.0 + + + + diff --git a/templates/MP3/Structs/UnknownStruct19.xml b/templates/MP3/Structs/UnknownStruct19.xml new file mode 100644 index 00000000..c2b9b088 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct19.xml @@ -0,0 +1,120 @@ + + + + UnknownStruct19 + + + 750.0 + + + 1.05 + + + + + + + 80.0 + + + 0.0 + + + 25.0 + + + 40.0 + + + 18.0 + + + 15.0 + + + 3.0 + + + 24.0 + + + 16.0 + + + 12.0 + + + 8.0 + + + 15.0 + + + 0.0 + + + 0.0099999998 + + + 1.0 + + + 1.0 + + + 50.0 + + + 3 + + + + 0.1 + + + 1.0 + + + 2.0 + + + 1.5 + + + 0.30000001 + + + + + CMDL + + + + + + + CMDL + + + + + + CMDL + + + + + + CMDL + + + + + + CMDL + + + + + + diff --git a/templates/MP3/Structs/UnknownStruct2.xml b/templates/MP3/Structs/UnknownStruct2.xml new file mode 100644 index 00000000..cee0ac75 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct2.xml @@ -0,0 +1,149 @@ + + + + UnknownStruct2 + + + + 100.0 + + + + 3.0 + + + 1.0 + + + 1.0 + + + 0.5 + + + 2.0 + + + 1.0 + + + 8.0 + + + 0.0 + + + + 2 + + + + WPSC + + + + + 100.0 + + + + PART + + + + + CAUD + + + + 6.75 + + + 1.0 + + + 50.0 + + + 1.0 + + + 0.5 + + + 0.25 + + + 0.0 + + + 3.5 + + + 0.5 + + + 8.0 + + + 1 + + + 3 + + + 1.5 + + + 0.0 + + + 50.0 + + + 10.0 + + + 30.0 + + + 15.0 + + + 0.60000002 + + + 0.30000001 + + + 0.75 + + + 0.5 + + + 0.75 + + + 0.5 + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + diff --git a/templates/MP3/Structs/UnknownStruct20.xml b/templates/MP3/Structs/UnknownStruct20.xml new file mode 100644 index 00000000..dbe80144 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct20.xml @@ -0,0 +1,187 @@ + + + + UnknownStruct20 + + + 750.0 + + + 1.1 + + + + + + 80.0 + + + 0.0 + + + 7.5 + + + 11.25 + + + + + 3.0 + + + 1.0 + + + 10.0 + + + 1 + + + + + 0.40000001 + + + 15.0 + + + 15.0 + + + 5.0 + + + 30.0 + + + 20.0 + + + 44.0 + + + + + + + 10.0 + + + 20.0 + + + 2 + + + + + 5.0 + + + 2.0 + + + 0.89999998 + + + 45.0 + + + + + + + + + 10.0 + + + 15.0 + + + 10.0 + + + 1 + + + + + 0.2 + + + 0.1 + + + 30.0 + + + Never + + + Never + + + 1.0 + + + + + 0.5 + + + 30.0 + + + 60.0 + + + 4 + + + 4 + + + 1 + + + 100.0 + + + 100.0 + + + 100.0 + + + 100.0 + + + 100.0 + + + 200.0 + + + 0.80000001 + + + 0.0 + + + -0.025 + + + 1.0 + + + 0.025 + + + 0.5 + + + + diff --git a/templates/MP3/Structs/UnknownStruct21.xml b/templates/MP3/Structs/UnknownStruct21.xml new file mode 100644 index 00000000..386f3282 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct21.xml @@ -0,0 +1,11 @@ + + + + UnknownStruct21 + + + 0xF12A35C6 + + + + diff --git a/templates/MP3/Structs/UnknownStruct22.xml b/templates/MP3/Structs/UnknownStruct22.xml new file mode 100644 index 00000000..d2fd496a --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct22.xml @@ -0,0 +1,23 @@ + + + + UnknownStruct22 + + + -0.75 + + + 0.75 + + + 0.75 + + + -0.75 + + + 0.1 + + + + diff --git a/templates/MP3/Structs/UnknownStruct23.xml b/templates/MP3/Structs/UnknownStruct23.xml new file mode 100644 index 00000000..5339397a --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct23.xml @@ -0,0 +1,9 @@ + + + + UnknownStruct23 + + + + + diff --git a/templates/MP3/Structs/UnknownStruct24.xml b/templates/MP3/Structs/UnknownStruct24.xml new file mode 100644 index 00000000..84a7e10c --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct24.xml @@ -0,0 +1,117 @@ + + + + UnknownStruct24 + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + CMDL + + + + + PART + + + + + 1.0 + 0.0 + 0.0 + + + + + 1.0 + 1.0 + 1.0 + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + + + CAUD + + + + + CAUD + + + + 0.25 + + + 0.40000001 + + + 100.0 + + + 10.0 + + + + diff --git a/templates/MP3/Structs/UnknownStruct25.xml b/templates/MP3/Structs/UnknownStruct25.xml new file mode 100644 index 00000000..3e034120 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct25.xml @@ -0,0 +1,35 @@ + + + + UnknownStruct25 + + + false + + + 25.0 + + + 2.0 + + + 5.0 + + + 1.0 + + + 2.0 + + + 1.0 + + + 2.0 + + + 0 + + + + diff --git a/templates/MP3/Structs/UnknownStruct26.xml b/templates/MP3/Structs/UnknownStruct26.xml new file mode 100644 index 00000000..8046f027 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct26.xml @@ -0,0 +1,150 @@ + + + + UnknownStruct26 + + + + SCAN + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + ELSC + + + + + WPSC + + + + + WPSC + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + 40.0 + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + + + + diff --git a/templates/MP3/Structs/UnknownStruct27.xml b/templates/MP3/Structs/UnknownStruct27.xml new file mode 100644 index 00000000..176993b4 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct27.xml @@ -0,0 +1,146 @@ + + + + UnknownStruct27 + + + 80.0 + + + 60.0 + + + 40.0 + + + 20.0 + + + -1.0 + + + + SCAN + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + WPSC + + + + + WPSC + + + + + PART + + + + + + PART + + + + + PART + + + + + + WPSC + + + + + + + PART + + + + + SCAN + + + + + WPSC + + + + + + WPSC + + + + + PART + + + + + TXTR + + + + 100.0 + + + + + CAUD + + + + + + + + + + diff --git a/templates/MP3/Structs/UnknownStruct28.xml b/templates/MP3/Structs/UnknownStruct28.xml new file mode 100644 index 00000000..596ab5d1 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct28.xml @@ -0,0 +1,29 @@ + + + + UnknownStruct28 + + + 5.0 + + + 5.0 + + + 10.0 + + + 5.0 + + + 15.0 + + + 30.0 + + + 30.0 + + + + diff --git a/templates/MP3/Structs/UnknownStruct29.xml b/templates/MP3/Structs/UnknownStruct29.xml new file mode 100644 index 00000000..934be024 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct29.xml @@ -0,0 +1,29 @@ + + + + UnknownStruct29 + + + true + + + 2.0 + + + 6.0 + + + 3 + + + 0.1 + + + 0.5 + + + 20.0 + + + + diff --git a/templates/MP3/Structs/UnknownStruct3.xml b/templates/MP3/Structs/UnknownStruct3.xml new file mode 100644 index 00000000..1960fa87 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct3.xml @@ -0,0 +1,36 @@ + + + + UnknownStruct3 + + + 10.0 + + + 100.0 + + + 4.0 + + + 5.0 + + + 0.5 + + + 1.0 + + + 10.0 + + + 15.0 + + + 50.0 + + + + + diff --git a/templates/MP3/Structs/UnknownStruct30.xml b/templates/MP3/Structs/UnknownStruct30.xml new file mode 100644 index 00000000..f26a906d --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct30.xml @@ -0,0 +1,31 @@ + + + + UnknownStruct30 + + + + WPSC + + + + + + PART + ELSC + + + + + CAUD + + + + 20.0 + + + 60.0 + + + + diff --git a/templates/MP3/Structs/UnknownStruct31.xml b/templates/MP3/Structs/UnknownStruct31.xml new file mode 100644 index 00000000..3a856bc6 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct31.xml @@ -0,0 +1,65 @@ + + + + UnknownStruct31 + + + 15.0 + + + 15.0 + + + 85.0 + + + 20.0 + + + 0.0 + + + 20.0 + + + 40.0 + + + 40.0 + + + 20.0 + + + 30.0 + + + 10.0 + + + 45.0 + + + 45.0 + + + 60.0 + + + 0.0 + + + 90.0 + + + 10.0 + + + 60.0 + + + 0.0 + + + + diff --git a/templates/MP3/Structs/UnknownStruct32.xml b/templates/MP3/Structs/UnknownStruct32.xml new file mode 100644 index 00000000..5bae0144 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct32.xml @@ -0,0 +1,95 @@ + + + + UnknownStruct32 + + + 15.0 + + + 80.0 + + + 20.0 + + + 0.0 + + + 80.0 + + + 20.0 + + + 80.0 + + + 0.0 + + + 80.0 + + + 20.0 + + + 20.0 + + + 20.0 + + + 20.0 + + + 20.0 + + + 20.0 + + + 30.0 + + + 80.0 + + + 20.0 + + + 80.0 + + + 0.0 + + + 40.0 + + + 40.0 + + + 20.0 + + + 80.0 + + + 0.0 + + + 15.0 + + + 85.0 + + + 50.0 + + + 0.0 + + + + diff --git a/templates/MP3/Structs/UnknownStruct33.xml b/templates/MP3/Structs/UnknownStruct33.xml new file mode 100644 index 00000000..7ff00cbb --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct33.xml @@ -0,0 +1,41 @@ + + + + UnknownStruct33 + + + 15.0 + + + 10.0 + + + 50.0 + + + 20.0 + + + 30.0 + + + 9.0 + + + 11.0 + + + 1.0 + + + 0.25 + + + 3.0 + + + 4.0 + + + + diff --git a/templates/MP3/Structs/UnknownStruct34.xml b/templates/MP3/Structs/UnknownStruct34.xml new file mode 100644 index 00000000..e8e205e0 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct34.xml @@ -0,0 +1,33 @@ + + + + UnknownStruct34 + + + 1.2 + + + + 20.0 + + + 25.0 + + + 10.0 + + + 15.0 + + + 3.0 + + + 4.0 + + + + + + + diff --git a/templates/MP3/Structs/UnknownStruct35.xml b/templates/MP3/Structs/UnknownStruct35.xml new file mode 100644 index 00000000..2cc457df --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct35.xml @@ -0,0 +1,13 @@ + + + + UnknownStruct35 + + + + + + + + + diff --git a/templates/MP3/Structs/UnknownStruct36.xml b/templates/MP3/Structs/UnknownStruct36.xml new file mode 100644 index 00000000..4d586a10 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct36.xml @@ -0,0 +1,58 @@ + + + + UnknownStruct36 + + + false + + + 4.0 + + + + + + + + + + + + 25.0 + + + 14.0 + + + + + 15.0 + + + 50.0 + + + 40.0 + + + 15.0 + + + 20.0 + + + 20.0 + + + 1.0 + + + 3.0 + + + 8.0 + + + + diff --git a/templates/MP3/Structs/UnknownStruct37.xml b/templates/MP3/Structs/UnknownStruct37.xml new file mode 100644 index 00000000..5d179414 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct37.xml @@ -0,0 +1,51 @@ + + + + UnknownStruct37 + + + 10.0 + + + 1.0 + + + 10.0 + + + 0.5 + + + + + + 20.0 + + + + PART + + + + + SWHC + + + + + CMDL + + + + + CAUD + + + + + CAUD + + + + + diff --git a/templates/MP3/Structs/UnknownStruct38.xml b/templates/MP3/Structs/UnknownStruct38.xml new file mode 100644 index 00000000..6fbecb4f --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct38.xml @@ -0,0 +1,13 @@ + + + + UnknownStruct38 + + + false + + + + + + diff --git a/templates/MP3/Structs/UnknownStruct39.xml b/templates/MP3/Structs/UnknownStruct39.xml new file mode 100644 index 00000000..1017298c --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct39.xml @@ -0,0 +1,30 @@ + + + + UnknownStruct39 + + + + 10.0 + + + 50.0 + + + + + + + + + CAUD + + + + + CAUD + + + + + diff --git a/templates/MP3/Structs/UnknownStruct4.xml b/templates/MP3/Structs/UnknownStruct4.xml new file mode 100644 index 00000000..c7242d3f --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct4.xml @@ -0,0 +1,11 @@ + + + + UnknownStruct4 + + + 30.0 + + + + diff --git a/templates/MP3/Structs/UnknownStruct40.xml b/templates/MP3/Structs/UnknownStruct40.xml new file mode 100644 index 00000000..bfb5ad34 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct40.xml @@ -0,0 +1,57 @@ + + + + UnknownStruct40 + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + + + 4.0 + + + 3.0 + + + 5.0 + + + 100.0 + + + 1.5 + + + 0.5 + + + 4.0 + + + + CAUD + + + + + CAUD + + + + + diff --git a/templates/MP3/Structs/UnknownStruct41.xml b/templates/MP3/Structs/UnknownStruct41.xml new file mode 100644 index 00000000..898e45f6 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct41.xml @@ -0,0 +1,95 @@ + + + + UnknownStruct41 + + + 12.0 + + + 40.0 + + + 3.0 + + + 5.0 + + + 8.0 + + + + CAUD + + + + + CAUD + + + + + + 20.0 + + + + + 3 + + + 20.0 + + + 10.0 + + + 3.0 + + + 5.0 + + + 25.0 + + + 1.0 + + + 10.0 + + + 20.0 + + + 10.0 + + + 25.0 + + + 40.0 + + + 12.0 + + + + CAUD + + + + + + 40.0 + + + 10.0 + + + 8.0 + + + + diff --git a/templates/MP3/Structs/UnknownStruct42.xml b/templates/MP3/Structs/UnknownStruct42.xml new file mode 100644 index 00000000..dcf3a004 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct42.xml @@ -0,0 +1,56 @@ + + + + UnknownStruct42 + + + false + + + + + + + + + + + + + + + + + CAUD + + + + + + + + + 10.0 + + + 20.0 + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + diff --git a/templates/MP3/Structs/UnknownStruct43.xml b/templates/MP3/Structs/UnknownStruct43.xml new file mode 100644 index 00000000..9e105e02 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct43.xml @@ -0,0 +1,41 @@ + + + + UnknownStruct43 + + + 0 + + + 0.34999999 + + + 0.5 + + + 0.02 + + + 0.30000001 + + + 3.0 + + + 20.0 + + + + PART + + + + + + + PART + + + + + diff --git a/templates/MP3/Structs/UnknownStruct44.xml b/templates/MP3/Structs/UnknownStruct44.xml new file mode 100644 index 00000000..0e4928ac --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct44.xml @@ -0,0 +1,172 @@ + + + + UnknownStruct44 + + + + WPSC + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + PART + + + + 25.0 + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + diff --git a/templates/MP3/Structs/UnknownStruct45.xml b/templates/MP3/Structs/UnknownStruct45.xml new file mode 100644 index 00000000..62ce48ce --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct45.xml @@ -0,0 +1,280 @@ + + + + UnknownStruct45 + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + 1.0 + + + 10.0 + + + 5.0 + + + 5.0 + + + + 1.0 + + + + 1.0 + + + 5.0 + + + 0.30000001 + + + 0.2 + + + 1.0 + + + 20.0 + + + 0.1 + + + 1.0 + + + 2.0 + + + 30.0 + + + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + + + 1 + + + Never + + + + + 1 + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + diff --git a/templates/MP3/Structs/UnknownStruct46.xml b/templates/MP3/Structs/UnknownStruct46.xml new file mode 100644 index 00000000..d43fb33d --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct46.xml @@ -0,0 +1,243 @@ + + + + UnknownStruct46 + + + false + + + false + + + false + + + 0.66000003 + + + 0.1 + + + 0.1 + + + 1.0 + + + 5.0 + + + 0.5 + + + + + + + + Never + + + + + + + Never + + + + + + + Never + + + + + + + + + 5.0 + + + + + + + + + + 1.0 + + + 0.1 + + + 0.1 + + + 0.2 + + + 0.5 + + + 1.0 + + + 0.40000001 + + + 0.60000002 + + + 0.5 + + + 1.0 + + + 50.0 + + + -50.0 + + + 25.0 + + + 5.0 + + + 0.0 + + + 15.0 + + + 5.0 + + + 10.0 + + + + + Never + + + + + 0.0 + + + 25.0 + + + 1.0 + + + + 15.0 + + + 0.5 + + + 0.5 + + + 1.0 + + + 0.0 + + + 15.0 + + + 1.0 + + + 2.0 + + + 0.0 + + + false + + + false + + + false + + + 3.0 + + + 10.0 + + + 5.0 + + + 1.0 + + + + ELSC + + + + + PART + + + + + CAUD + + + + 5 + + + 4.0 + + + 0.1 + + + 0.021 + + + 0.1 + + + 0.021 + + + 3.0 + + + -3.0 + + + 1.0 + + + 3.0 + + + 10.0 + + + 0.5 + + + + diff --git a/templates/MP3/Structs/UnknownStruct47.xml b/templates/MP3/Structs/UnknownStruct47.xml new file mode 100644 index 00000000..6eb9e2f3 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct47.xml @@ -0,0 +1,39 @@ + + + + UnknownStruct47 + + + 15.0 + + + 2.0 + + + 2.0 + + + 5.0 + + + 5.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + CAUD + + + + 1.0 + + + + diff --git a/templates/MP3/Structs/UnknownStruct48.xml b/templates/MP3/Structs/UnknownStruct48.xml new file mode 100644 index 00000000..e374fd90 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct48.xml @@ -0,0 +1,15 @@ + + + + UnknownStruct48 + + + 45.0 + + + + 2.0 + + + + diff --git a/templates/MP3/Structs/UnknownStruct49.xml b/templates/MP3/Structs/UnknownStruct49.xml new file mode 100644 index 00000000..e1a0fe7c --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct49.xml @@ -0,0 +1,106 @@ + + + + UnknownStruct49 + + + true + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + 20.0 + + + 4.0 + + + 2.0 + + + 6.0 + + + 0.0 + + + -90.0 + + + 70.0 + + + 90.0 + + + 2.0 + + + 2.0 + + + + + Never + + + + + + + Never + + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + diff --git a/templates/MP3/Structs/UnknownStruct50.xml b/templates/MP3/Structs/UnknownStruct50.xml new file mode 100644 index 00000000..e589bd3a --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct50.xml @@ -0,0 +1,14 @@ + + + + UnknownStruct50 + + + + ELSC + + + + + + diff --git a/templates/MP3/Structs/UnknownStruct51.xml b/templates/MP3/Structs/UnknownStruct51.xml new file mode 100644 index 00000000..016ef0c0 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct51.xml @@ -0,0 +1,96 @@ + + + + UnknownStruct51 + + + false + + + false + + + 2.0 + + + 30.0 + + + true + + + 3.0 + + + 5.0 + + + 15.0 + + + 25.0 + + + 2.0 + + + 10.0 + + + 1.0 + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + PART + + + + + + + PART + + + + + PART + + + + + PART + + + + + CAUD + + + + + diff --git a/templates/MP3/Structs/UnknownStruct52.xml b/templates/MP3/Structs/UnknownStruct52.xml new file mode 100644 index 00000000..79539a39 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct52.xml @@ -0,0 +1,28 @@ + + + + UnknownStruct52 + + + 0 + + + + + 0.34999999 + + + 0.5 + + + 0.02 + + + 0.30000001 + + + 1.5 + + + + diff --git a/templates/MP3/Structs/UnknownStruct53.xml b/templates/MP3/Structs/UnknownStruct53.xml new file mode 100644 index 00000000..431c1cf8 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct53.xml @@ -0,0 +1,132 @@ + + + + UnknownStruct53 + + + + PART + + + + + PART + + + + + PART + + + + + WPSC + + + + + + TXTR + + + + 100.0 + + + + PART + + + + + PART + + + + + WPSC + + + + + WPSC + + + + + WPSC + + + + + PART + + + + + PART + + + + + TXTR + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + 15.0 + + + + 25.0 + + + + + CAUD + + + + + + 500.0 + + + + 250.0 + + + + 100.0 + + + + + + + + diff --git a/templates/MP3/Structs/UnknownStruct54.xml b/templates/MP3/Structs/UnknownStruct54.xml new file mode 100644 index 00000000..0c65bab7 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct54.xml @@ -0,0 +1,26 @@ + + + + UnknownStruct54 + + + 0.0099999998 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.30000001 + + + + diff --git a/templates/MP3/Structs/UnknownStruct55.xml b/templates/MP3/Structs/UnknownStruct55.xml new file mode 100644 index 00000000..cd5308a3 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct55.xml @@ -0,0 +1,263 @@ + + + + UnknownStruct55 + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + WPSC + + + + + WPSC + + + + + WPSC + + + + + WPSC + + + + + WPSC + + + + + TXTR + + + + + PART + + + + + CMDL + + + + + PART + + + + + CMDL + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + WPSC + + + + + PART + + + + + CAUD + + + + 25.0 + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + CAUD + + + + + CAUD + + + + + + SCAN + + + + + diff --git a/templates/MP3/Structs/UnknownStruct56.xml b/templates/MP3/Structs/UnknownStruct56.xml new file mode 100644 index 00000000..df9c2027 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct56.xml @@ -0,0 +1,44 @@ + + + + UnknownStruct56 + + + + 1.3 + + + 3.5 + + + 10.0 + + + + + PART + + + + + PART + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + diff --git a/templates/MP3/Structs/UnknownStruct57.xml b/templates/MP3/Structs/UnknownStruct57.xml new file mode 100644 index 00000000..9af901f6 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct57.xml @@ -0,0 +1,73 @@ + + + + UnknownStruct57 + + + + CMDL + + + + 4.0 + + + 6.0 + + + 3.0 + + + 5.0 + + + 5.0 + + + 100.0 + + + 1.0 + + + 70.0 + + + 0.64999998 + + + 9.0 + + + + + + 80.0 + + + 80.0 + + + 20.0 + + + 72.0 + + + 90.0 + + + 30.0 + + + + + ELSC + + + + 14.0 + + + + diff --git a/templates/MP3/Structs/UnknownStruct58.xml b/templates/MP3/Structs/UnknownStruct58.xml new file mode 100644 index 00000000..7e051c49 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct58.xml @@ -0,0 +1,189 @@ + + + + UnknownStruct58 + + + true + + + + + + PART + + + + + + + ELSC + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + WPSC + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + ELSC + + + + + ELSC + + + + + PART + + + + + PART + + + + + + PART + + + + + PART + + + + + TXTR + + + + 100.0 + + + + PART + + + + + SCAN + + + + + SCAN + + + + + SCAN + + + + + SCAN + + + + + SCAN + + + + + SCAN + + + + + CAUD + + + + + CAUD + + + + + diff --git a/templates/MP3/Structs/UnknownStruct59.xml b/templates/MP3/Structs/UnknownStruct59.xml new file mode 100644 index 00000000..aadf9a3c --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct59.xml @@ -0,0 +1,54 @@ + + + + UnknownStruct59 + + + 30 + + + 30.0 + + + 4.0 + + + + + + PART + + + + 0.1 + + + + PART + + + + + PART + + + + + WPSC + + + + + + + PART + + + + + CAUD + + + + + diff --git a/templates/MP3/Structs/UnknownStruct60.xml b/templates/MP3/Structs/UnknownStruct60.xml new file mode 100644 index 00000000..535233a3 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct60.xml @@ -0,0 +1,29 @@ + + + + UnknownStruct60 + + + 1.0 + + + + PART + + + + + + 0.0 + 0.0 + 0.0 + + + + + CAUD + + + + + diff --git a/templates/MP3/Structs/UnknownStruct61.xml b/templates/MP3/Structs/UnknownStruct61.xml new file mode 100644 index 00000000..a838140d --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct61.xml @@ -0,0 +1,237 @@ + + + + UnknownStruct61 + + + + + + PART + + + + 20.0 + + + 120.0 + + + 3 + + + 0.69999999 + + + 15.0 + + + 10.0 + + + 25.0 + + + 5.0 + + + 3.0 + + + 1.0 + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + 2.0 + + + 2.0 + + + 2.0 + + + + + 1 + + + Never + + + + + 1 + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + 25 + + + 25 + + + 25 + + + 25 + + + 25 + + + 5.0 + + + 25.0 + + + + + diff --git a/templates/MP3/Structs/UnknownStruct62.xml b/templates/MP3/Structs/UnknownStruct62.xml new file mode 100644 index 00000000..8f277221 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct62.xml @@ -0,0 +1,165 @@ + + + + UnknownStruct62 + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + false + + + 0.0 + + + 0.0 + + + + true + + + false + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + diff --git a/templates/MP3/Structs/UnknownStruct63.xml b/templates/MP3/Structs/UnknownStruct63.xml new file mode 100644 index 00000000..216dfd33 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct63.xml @@ -0,0 +1,43 @@ + + + + UnknownStruct63 + + + 0xAAF6CAA5 + + + + + + + + true + + + false + + + -1 + + + -1 + + + -1 + + + -1 + + + -1 + + + -1 + + + -1 + + + + diff --git a/templates/MP3/Structs/UnknownStruct64.xml b/templates/MP3/Structs/UnknownStruct64.xml new file mode 100644 index 00000000..2127ec9d --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct64.xml @@ -0,0 +1,48 @@ + + + + UnknownStruct64 + + + + + 1.0 + + + 0.5 + + + 10.0 + + + 180.0 + + + + + + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + diff --git a/templates/MP3/Structs/UnknownStruct65.xml b/templates/MP3/Structs/UnknownStruct65.xml new file mode 100644 index 00000000..23201e5b --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct65.xml @@ -0,0 +1,14 @@ + + + + UnknownStruct65 + + + + MLVL + + + + + + diff --git a/templates/MP3/Structs/UnknownStruct66.xml b/templates/MP3/Structs/UnknownStruct66.xml new file mode 100644 index 00000000..a1f2037f --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct66.xml @@ -0,0 +1,18 @@ + + + + UnknownStruct66 + + + + MLVL + + + + + MREA + + + + + diff --git a/templates/MP3/Structs/UnknownStruct8.xml b/templates/MP3/Structs/UnknownStruct8.xml new file mode 100644 index 00000000..1afb96e3 --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct8.xml @@ -0,0 +1,31 @@ + + + + UnknownStruct8 + + + + + 8.0 + + + 0.5 + + + 20.0 + + + 15.0 + + + 3.0 + + + 20.0 + + + 75.0 + + + + diff --git a/templates/MP3/Structs/UnknownStruct9.xml b/templates/MP3/Structs/UnknownStruct9.xml new file mode 100644 index 00000000..dcdc3b3e --- /dev/null +++ b/templates/MP3/Structs/UnknownStruct9.xml @@ -0,0 +1,41 @@ + + + + UnknownStruct9 + + + + SCAN + + + + 13.0 + + + 10.0 + + + 9.0 + + + 8.0 + + + 180.0 + + + 30.0 + + + 90.0 + + + 45.0 + + + 150.0 + + + + + diff --git a/templates/MP3/Structs/VelocityConvergence.xml b/templates/MP3/Structs/VelocityConvergence.xml new file mode 100644 index 00000000..5d9be3a2 --- /dev/null +++ b/templates/MP3/Structs/VelocityConvergence.xml @@ -0,0 +1,17 @@ + + + + VelocityConvergence + + + 0.0 + + + 0.0 + + + 1.0 + + + + diff --git a/templates/MP3/Structs/Visors.xml b/templates/MP3/Structs/Visors.xml new file mode 100644 index 00000000..38d835a2 --- /dev/null +++ b/templates/MP3/Structs/Visors.xml @@ -0,0 +1,17 @@ + + + + Visors + + + false + + + false + + + false + + + + diff --git a/templates/MP3/Structs/WeaponGeneratorProperties.xml b/templates/MP3/Structs/WeaponGeneratorProperties.xml new file mode 100644 index 00000000..646a8aac --- /dev/null +++ b/templates/MP3/Structs/WeaponGeneratorProperties.xml @@ -0,0 +1,39 @@ + + + + WeaponGeneratorProperties + + + + + WPSC + + + + + CAUD + + + + 0x9EFB69B1 + + + + + + 0x2B9C9A74 + + + + + + + + + + false + + + + + diff --git a/templates/MP3/Structs/Weapons.xml b/templates/MP3/Structs/Weapons.xml new file mode 100644 index 00000000..c3b6d0aa --- /dev/null +++ b/templates/MP3/Structs/Weapons.xml @@ -0,0 +1,39 @@ + + + + Weapons + + + true + + + false + + + false + + + false + + + + false + + + false + + + false + + + false + + + false + + + false + + + + diff --git a/templates/MP3Proto/Enums/PlayerItem.xml b/templates/MP3Proto/Enums/PlayerItem.xml new file mode 100644 index 00000000..71b3aa49 --- /dev/null +++ b/templates/MP3Proto/Enums/PlayerItem.xml @@ -0,0 +1,46 @@ + + + + PlayerItem + 0x0 + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/MP3Proto/Game.xml b/templates/MP3Proto/Game.xml new file mode 100644 index 00000000..10b5da61 --- /dev/null +++ b/templates/MP3Proto/Game.xml @@ -0,0 +1,2267 @@ + + + + + ACKF + + + + ACTR + + + + ADMG + + + + AIHT + + + + AIKF + + + + AITP + + + + AIWP + + + + AJMP + + + + AMIA + + + + AMOR + + + + ATMA + + + + ATRN + + + + BALS + + + + BALT + + + + BALW + + + + BLUR + + + + BLWF + + + + BSKR + + + + BSTR + + + + CABL + + + + CAMH + + + + CAMP + + + + CAMS + + + + CANB + + + + CINE + + + + CLRM + + + + CNTA + + + + CNTR + + + + COVR + + + + CRAR + + + + CRLY + + + + CSAC + + + + CSAT + + + + CTLH + + + + DBAR + + + + DEBR + + + + DEFM + + + + DFOG + + + + DLHT + + + + DMGA + + + + DOCK + + + + DOOR + + + + DRKS + + + + DTRG + + + + DTRO + + + + EFCT + + + + EFTR + + + + EMPU + + + + EYEP + + + + FGHS + + + + FGHT + + + + FILT + + + + FISH + + + + FLAR + + + + FLPS + + + + FLYP + + + + FNWK + + + + FOGO + + + + FOGV + + + + FRND + + + + FSHM + + + + FSWM + + + + FXDC + + + + GENR + + + + GMNU + + + + GNTB + + + + GNTT + + + + GOBD + + + + GPJN + + + + GRAP + + + + GRFL + + + + GSCR + + + + GSLD + + + + GWIG + + + + HHNT + + + + HINT + + + + KRAK + + + + KRBA + + + + KRBM + + + + LUAX + + + + MANT + + + + MEMO + + + + MHAT + + + + MHOP + + + + MOVI + + + + MRLY + + + + MYSF + + + + NOTU + + + + OPAA + + + + PCKP + + + + PCTL + + + + PDBR + + + + PDRN + + + + PGVS + + + + PHZS + + + + PIRT + + + + PLAC + + + + PLAT + + + + PLCH + + + + PLCT + + + + PLRT + + + + PMCT + + + + POIN + + + + PPDL + + + + PSSM + + + + PUAP + + + + RADD + + + + REAA + + + + REPH + + + + REPL + + + + RID1 + + + + RIPL + + + + RMAC + + + + RRLY + + + + RUMB + + + + RUND + + + + SBO1 + + + + SCTL + + + + SDB1 + + + + SHCI + + + + SHCP + + + + SHDW + + + + SHIP + + + + SHPX + + + + SKRP + + + + SLCT + + + + SNDM + + + + SOND + + + + SPFN + + + + SPIN + + + + SPRL + + + + SPWN + + + + SQTR + + + + SRLY + + + + STAU + + + + STEM + + + + STMB + + + + STML + + + + SUBT + + + + SWBT + + + + SWJT + + + + SWTC + + + + TEL1 + + + + TGPT + + + + TIMR + + + + TKEY + + + + TMAI + + + + TRGR + + + + TXPN + + + + VGOO + + + + WATR + + + + WAYP + + + + WLIT + + + + WPNG + + + + + + Abilities + + + + ActivationTime + + + + ActorParameters + + + + Armor + + + + Ball + + + + BeastRiderData + + + + BerserkerData + + + + BlinkWolfData + + + + CableProperties + + + + CameraConstraints + + + + CameraFieldOfView + + + + CameraInterpolation + + + + CameraMotion + + + + CameraNavigation + + + + CameraOrientation + + + + CameraPosition + + + + CameraRotation + + + + CameraShakerData + + + + CameraShakerEnvelope + + + + CattleProd + + + + Chakram + + + + ChasePosition + + + + CinematicBlend + + + + ColliderPosition + + + + CommandData + + + + ConditionalTest + + + + Connection + + + + ControlCommands + + + + Convergence + + + + CounterConditions + + + + DamageInfo + + + + DamageVulnerability + + + + DarkSamusData + + + + DebrisProperties + + + + DebrisPropertiesOrientationEnum + + + + DefenseMechanoidData + + + + DynamicLightFalloff + + + + DynamicLightIntensity + + + + DynamicLightMotionSpline + + + + DynamicLightParent + + + + DynamicLightSpotlight + + + + EditorProperties + + + + ElectricBeamInfo + + + + EnergyWhip + + + + EyePodData + + + + FOVInterpolationMethod + + + + FargullHatcherData + + + + FargullHatcherSwarmData + + + + FederationData + + + + FishCloudAggressionData + + + + FlareDef + + + + FluidProperties + + + + FlyerSwarmData + + + + FlyingPirateData + + + + FlyingPirateHelixMissileData + + + + FriendlyData + + + + GeneratedObjectDeleterProperties + + + + GragnolFlyerData + + + + GrappleBlock + + + + GrappleData + + + + GrappleInfo + + + + GuiWidgetProperties + + + + GunTurretBaseData + + + + GunTurretTopData + + + + HealthInfo + + + + HyperMode + + + + InterpolationMethod + + + + Inventory + + + + JetPack + + + + KorakkData + + + + KorbaMawData + + + + KorbaSnatcherData + + + + LaunchProjectileData + + + + LayerInfo + + + + LayerSwitch + + + + LightParameters + + + + LocationOfEffect1 + + + + ManthaData + + + + MetroidHatcherData + + + + MetroidHopperData + + + + Misc + + + + MotionInterpolationMethod + + + + MysteryFlyerData + + + + NonSlowdown + + + + OffsetInterpolant + + + + OffsetPosition + + + + OffsetSplines + + + + OptionalAreaAssetTypes + + + + Orientation + + + + OrientationInterpolationMethod + + + + PIDConvergence + + + + PTCNoseTurretData + + + + ParticleBlaster + + + + PathDetermination + + + + PathDeterminationMethodType + + + + PathPosition + + + + PathType + + + + PatternedAITypedef + + + + PhazonFlyerSwarmData + + + + PhazonLeechData + + + + PhazonPuddleData + + + + PhysicsDebrisProperties + + + + PhysicsDebrisPropertiesOrientationEnum + + + + PirateDroneData + + + + PlasmaBeamInfo + + + + PlatformMotionProperties + + + + PlayerInventoryItem + + + + PlayerItem + + + + ProportionalConvergence + + + + PuddleControlData + + + + PuddleControlPhaseData + + + + RagDollData + + + + ReptilicusHunterData + + + + Ridley1Data + + + + RotationSplines + + + + RundasData + + + + ScaleSplines + + + + ScanBeamInfo + + + + ScannableParameters + + + + SeedBoss1Action + + + + SeedBoss1Data + + + + SeedBoss1HandData + + + + SeedBoss1OrbData + + + + SeedBoss1Shield + + + + SeedBoss1Stage + + + + Ship + + + + ShipData + + + + ShockWaveInfo + + + + SpacePirateData + + + + SpacePirateWeaponData + + + + SpindleOrientation + + + + SpindlePosition + + + + SpindlePositionInterpolant + + + + SplineType + + + + SpringConvergence + + + + StaticGeometryTest + + + + SteamBotData + + + + SteamLordData + + + + SurfaceOrientation + + + + SurfacePosition + + + + SurroundPan + + + + SwarmBasicsData + + + + SwarmBotData + + + + TeamAIDebugEnum + + + + TextProperties + + + + Transform + + + + TranslationSplines + + + + TriggerInfo + + + + Vector2f + + + + VelocityConvergence + + + + VisorParameters + + + + Visors + + + + WallCrawlerData + + + + WeaponGeneratorProperties + + + + WeaponVulnerability + + + + Weapons + + + + + + !ZER + NonZero + + + ACQU + ACQU + + + ACTV + Active + + + AIS1 + AILogicState1 + + + AIS2 + AILogicState2 + + + AIS3 + AILogicState3 + + + ANMO + AnimOver + + + ANMS + AnimStart + + + APRC + Approach + + + ARRV + Arrived + + + ATCL + AttachedCollisionObject + + + ATOB + AttachedAnimatedObject + + + ATPA + ATPA + + + ATTK + Attack + + + BEZR + BEZR + + + BIDG + BallIceXDamage + + + BSCN + BeginScan + + + BSPL + BSPL + + + BXDG + BallXDamage + + + CINT + CINT + + + CLOS + Closed + + + CONN + Connect + + + CPTH + CameraPath + + + CROM + CROM + + + CTGT + CameraTarget + + + CTIM + CameraTime + + + DAMG + Damage + + + DBMB + DBMB + + + DEAD + Dead + + + DGNR + DeGenerate + + + DOWN + Down + + + DRKX + DarkXDamage + + + ENTR + Entered + + + ESCN + EndScan + + + EXIT + Exited + + + FOOT + Footstep + + + FOVP + FOVP + + + FREZ + Freeze + + + GRN0 + GRN0 + + + GRN1 + GRN1 + + + GRNT + Generate + + + IBND + InheritBounds + + + ICTV + Inactive + + + IDMG + IceXDamage + + + INSD + Inside + + + IS00 + InternalState0 + + + IS01 + InternalState1 + + + IS02 + InternalState2 + + + IS03 + InternalState3 + + + IS04 + InternalState4 + + + IS05 + InternalState5 + + + IS06 + InternalState6 + + + IS07 + InternalState7 + + + IS08 + InternalState8 + + + IS09 + InternalState9 + + + IS10 + InternalState10 + + + IS11 + InternalState11 + + + IS12 + InternalState12 + + + IS13 + InternalState13 + + + IS14 + InternalState14 + + + IS15 + InternalState15 + + + IS16 + InternalState16 + + + IS17 + InternalState17 + + + IS18 + InternalState18 + + + IS19 + InternalState19 + + + IS20 + IS20 + + + IS21 + IS21 + + + IS22 + IS22 + + + IS23 + IS23 + + + IS24 + IS24 + + + IS25 + IS25 + + + IS26 + IS26 + + + IS27 + IS27 + + + IS28 + IS28 + + + IS29 + IS29 + + + IS30 + IS30 + + + IS31 + IS31 + + + IS32 + IS32 + + + IS33 + IS33 + + + IS34 + IS34 + + + IS35 + IS35 + + + IS36 + IS36 + + + IS37 + IS37 + + + IS38 + IS38 + + + IS39 + IS39 + + + IS40 + IS40 + + + IS41 + IS41 + + + IS44 + IS44 + + + IS45 + IS45 + + + IS46 + IS46 + + + IS47 + IS47 + + + IS48 + IS48 + + + LDWA + DrawAfter + + + LDWB + DrawBefore + + + LEFT + Left + + + LINR + LINR + + + LOCK + Locked + + + LTKA + ThinkAfter + + + LTKB + ThinkBefore + + + MAXR + MaxReached + + + MDFY + Modify + + + MOTP + MOTP + + + MOTS + MOTS + + + NEXT + NEXT + + + OPEN + Open + + + ORBO + ORBO + + + PLAY + Play + + + PLRP + PLRP + + + PRSA + PressA + + + PRSB + PressB + + + PRST + PressStart + + + PRSX + PressX + + + PRSY + PressY + + + PRSZ + PressZ + + + PTRL + Patrol + + + RATL + DeathRattle + + + RCRM + RCRM + + + RDUE + SpawnResidue + + + REFD + ReflectedDamage + + + RESD + ResistedDamage + + + RGHT + Right + + + RLAY + Relay + + + ROTO + RotationOver + + + ROTS + RotationStart + + + RTRT + Retreat + + + SCND + ScanDone + + + SCNS + ScanSource + + + SE01 + SE01 + + + SE02 + SE02 + + + SE03 + SE03 + + + SLAV + Slave + + + SLCR + SpawnLargeCreatures + + + SMCR + SpawnMediumCreatures + + + SQNC + Sequence + + + SSCR + SpawnSmallCreatures + + + TGTO + TGTO + + + TGTP + TGTP + + + TGTS + TGTS + + + UFRZ + UnFreeze + + + ULCK + Unlocked + + + UP + Up + + + WLTE + WLTE + + + XB2F + BackToFront + + + XDMG + XDamage + + + XF2B + FrontToBack + + + XINB + InBack + + + XINF + InFront + + + XOUT + Outside + + + ZERO + Zero + + + + + ACTN + Action + + + ACTV + Activate + + + ALRT + Alert + + + ARRV + ARRV + + + ATCH + Attach + + + ATCI + AttachInstance + + + CLOS + Close + + + CORG + ClearOriginator + + + DCTV + Deactivate + + + DECR + Decrement + + + DOWN + Down + + + ESCP + Escape + + + FADI + FadeIn + + + FADO + FadeOut + + + FOLW + Follow + + + IM00 + InternalMessage0 + + + IM01 + InternalMessage1 + + + IM02 + InternalMessage2 + + + IM03 + InternalMessage3 + + + IM04 + InternalMessage4 + + + IM05 + InternalMessage5 + + + IM06 + InternalMessage6 + + + IM07 + InternalMessage7 + + + IM08 + InternalMessage8 + + + IM09 + InternalMessage9 + + + IM10 + InternalMessage10 + + + IM11 + InternalMessage11 + + + IM12 + InternalMessage12 + + + IM13 + InternalMessage13 + + + IM14 + InternalMessage14 + + + IM15 + InternalMessage15 + + + IM16 + InternalMessage16 + + + IM17 + InternalMessage17 + + + IM18 + InternalMessage18 + + + IM19 + InternalMessage19 + + + IM20 + IM20 + + + IM21 + IM21 + + + IM22 + IM22 + + + IM23 + IM23 + + + IM24 + IM24 + + + IM25 + IM25 + + + IM26 + IM26 + + + IM27 + IM27 + + + IM28 + IM28 + + + IM42 + IM42 + + + IM43 + IM43 + + + INCR + Increment + + + KILL + Kill + + + LEFT + Left + + + LOAD + Load + + + LOCK + Lock + + + NEXT + Next + + + NONE + None + + + OFF + OFF + + + ON + ON + + + OPEN + OPEN + + + PLAY + PLAY + + + RGHT + Right + + + RMOV + RMOV + + + RSAN + RSAN + + + RSET + Reset + + + RSTP + RSTP + + + RSTS + ResetAndStart + + + SALL + StopAllSounds + + + SALP + StopAllLoopedSounds + + + SMAX + SetToMax + + + SORG + SetOriginator + + + STOP + Stop + + + STPR + StopAndReset + + + STRT + Start + + + TCTV + ToggleActive + + + TOPN + ToggleOpen + + + ULCK + Unlock + + + ULOD + Unload + + + UP + Up + + + XALD + AreaLoaded + + + XAOV + AcidOnVisor + + + XAUD + AIUpdateDisabled + + + XAUL + AreaUnloading + + + XCLR + Clear + + + XCRT + Create + + + XDEL + Delete + + + XDMG + XDMG + + + XENF + EnteredFluid + + + XENT + XENT + + + XEPZ + EnteredPhazonPool + + + XEXF + ExitedFluid + + + XFAL + Falling + + + XHIT + HitObject + + + XINF + InsideFluid + + + XINS + InShrubbery + + + XIPZ + InsidePhazonPool + + + XLAU + Launching + + + XLND + Landed + + + XLSG + LandedOnStaticGround + + + XOFF + OffGround + + + XOND + OnDirt + + + XONI + OnIce + + + XONO + OnOrganic + + + XONP + OnPlatform + + + XRDG + XRDG + + + XWLD + WorldLoaded + + + XXDG + XXDG + + + XXPZ + ExitedPhazonPool + + + ZERO + SetToZero + + + diff --git a/templates/MP3Proto/Structs/Abilities.xml b/templates/MP3Proto/Structs/Abilities.xml new file mode 100644 index 00000000..d9dfb713 --- /dev/null +++ b/templates/MP3Proto/Structs/Abilities.xml @@ -0,0 +1,14 @@ + + + + Abilities + + + false + + + 0 + + + + diff --git a/templates/MP3Proto/Structs/ActivationTime.xml b/templates/MP3Proto/Structs/ActivationTime.xml new file mode 100644 index 00000000..e4d0bcbf --- /dev/null +++ b/templates/MP3Proto/Structs/ActivationTime.xml @@ -0,0 +1,25 @@ + + + + ActivationTime + true + + + Time + 0.0 + + + Unknown 1 + 0 + + + Unknown 2 + 0 + + + Unknown 3 + 0 + + + + diff --git a/templates/MP3Proto/Structs/Armor.xml b/templates/MP3Proto/Structs/Armor.xml new file mode 100644 index 00000000..735ba037 --- /dev/null +++ b/templates/MP3Proto/Structs/Armor.xml @@ -0,0 +1,67 @@ + + + + Armor + + + false + + + + + 100.0 + + + 5.0 + + + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + diff --git a/templates/MP3Proto/Structs/Ball.xml b/templates/MP3Proto/Structs/Ball.xml new file mode 100644 index 00000000..7388e337 --- /dev/null +++ b/templates/MP3Proto/Structs/Ball.xml @@ -0,0 +1,17 @@ + + + + Ball + + + false + + + false + + + false + + + + diff --git a/templates/MP3Proto/Structs/BeastRiderData.xml b/templates/MP3Proto/Structs/BeastRiderData.xml new file mode 100644 index 00000000..1ffe94bd --- /dev/null +++ b/templates/MP3Proto/Structs/BeastRiderData.xml @@ -0,0 +1,19 @@ + + + + BeastRiderData + + + + CMDL + + + + + + CAUD + + + + + diff --git a/templates/MP3Proto/Structs/BerserkerData.xml b/templates/MP3Proto/Structs/BerserkerData.xml new file mode 100644 index 00000000..1b1bf9aa --- /dev/null +++ b/templates/MP3Proto/Structs/BerserkerData.xml @@ -0,0 +1,132 @@ + + + + BerserkerData + + + true + + + 10.0 + + + + + + + + 25.0 + + + 100.0 + + + 45.0 + + + 10.0 + + + + 25.0 + + + 10.0 + + + 25.0 + + + 45.0 + + + + 60.0 + + + 20.0 + + + 1.0 + + + 0.5 + + + 180.0 + + + false + + + 0.5 + + + + + + + + 1 + + + + + 60.0 + + + + 1.25 + + + 5.0 + + + 25.0 + + + 5.0 + + + 20.0 + + + 20.0 + + + + 20.0 + + + 0.5 + + + 0.69999999 + + + 0.5 + + + 0.2 + + + 0.1 + + + 0.1 + + + 0.80000001 + + + + 500.0 + + + + + + + + + diff --git a/templates/MP3Proto/Structs/BlinkWolfData.xml b/templates/MP3Proto/Structs/BlinkWolfData.xml new file mode 100644 index 00000000..70f9650d --- /dev/null +++ b/templates/MP3Proto/Structs/BlinkWolfData.xml @@ -0,0 +1,140 @@ + + + + BlinkWolfData + + + false + + + false + + + 20.0 + + + 2.0 + + + 0.5 + + + 5.0 + + + 10.0 + + + 15.0 + + + 15.0 + + + 5 + + + + + + + 70.0 + + + 180.0 + + + 20.0 + + + 1.0 + + + 3.0 + + + 15.0 + + + + 1.0 + + + 0.5 + + + 2.0 + + + 4.0 + + + + PART + + + + + PART + + + + 0.0 + + + 0.0 + + + 0.0 + + + 2.0 + + + 1.0 + + + 1.0 + + + 5.0 + + + 1.0 + + + 1.0 + + + 5.0 + + + 100.0 + + + 1.0 + + + 5.0 + + + 5.0 + + + 2.0 + + + 5.0 + + + 10.0 + + + 2.0 + + + 5.0 + + + + diff --git a/templates/MP3Proto/Structs/CableProperties.xml b/templates/MP3Proto/Structs/CableProperties.xml new file mode 100644 index 00000000..b777aac5 --- /dev/null +++ b/templates/MP3Proto/Structs/CableProperties.xml @@ -0,0 +1,84 @@ + + + + CableProperties + + + + SWHC + + + + 0xD6629DCA + + + + + + + 0xB9B7640F + + + + + + + + false + + + 10 + + + 4.0 + + + 4.0 + + + 0x80DD21B4 + + + 0x23363FD3 + + + 0x24CF38F1 + + + 10 + + + 1.0 + + + false + + + + + false + + + true + + + + + 0.0 + + + 15.0 + + + 0.0167 + + + 0x23363FD3 + + + + + + + + diff --git a/templates/MP3Proto/Structs/CameraConstraints.xml b/templates/MP3Proto/Structs/CameraConstraints.xml new file mode 100644 index 00000000..94dac8d3 --- /dev/null +++ b/templates/MP3Proto/Structs/CameraConstraints.xml @@ -0,0 +1,11 @@ + + + + CameraConstraints + + + 7 + + + + diff --git a/templates/MP3Proto/Structs/CameraFieldOfView.xml b/templates/MP3Proto/Structs/CameraFieldOfView.xml new file mode 100644 index 00000000..fb5ebb47 --- /dev/null +++ b/templates/MP3Proto/Structs/CameraFieldOfView.xml @@ -0,0 +1,29 @@ + + + + CameraFieldOfView + + + 0xA93DE248 + + + + + + + + 0xD2CFE11 + + + + + + + + 60.0 + + + + + + diff --git a/templates/MP3Proto/Structs/CameraInterpolation.xml b/templates/MP3Proto/Structs/CameraInterpolation.xml new file mode 100644 index 00000000..50b577d9 --- /dev/null +++ b/templates/MP3Proto/Structs/CameraInterpolation.xml @@ -0,0 +1,32 @@ + + + + CameraInterpolation + + + 3 + + + 100.0 + + + 135.0 + + + + + + 3 + + + 100.0 + + + 135.0 + + + + + + + diff --git a/templates/MP3Proto/Structs/CameraMotion.xml b/templates/MP3Proto/Structs/CameraMotion.xml new file mode 100644 index 00000000..d710ebb4 --- /dev/null +++ b/templates/MP3Proto/Structs/CameraMotion.xml @@ -0,0 +1,17 @@ + + + + CameraMotion + + + + 0xB1059189 + + + + + + + + + diff --git a/templates/MP3Proto/Structs/CameraNavigation.xml b/templates/MP3Proto/Structs/CameraNavigation.xml new file mode 100644 index 00000000..15a0684c --- /dev/null +++ b/templates/MP3Proto/Structs/CameraNavigation.xml @@ -0,0 +1,11 @@ + + + + CameraNavigation + + + 0 + + + + diff --git a/templates/MP3Proto/Structs/CameraPosition.xml b/templates/MP3Proto/Structs/CameraPosition.xml new file mode 100644 index 00000000..8892997f --- /dev/null +++ b/templates/MP3Proto/Structs/CameraPosition.xml @@ -0,0 +1,29 @@ + + + + CameraPosition + + + 0xC239D6DB + + + + + + + + + + + + 0 + + + + + + + + + + diff --git a/templates/MP3Proto/Structs/CameraRotation.xml b/templates/MP3Proto/Structs/CameraRotation.xml new file mode 100644 index 00000000..f0d9d6ff --- /dev/null +++ b/templates/MP3Proto/Structs/CameraRotation.xml @@ -0,0 +1,9 @@ + + + + CameraRotation + + + + + diff --git a/templates/MP3Proto/Structs/CameraShakerData.xml b/templates/MP3Proto/Structs/CameraShakerData.xml new file mode 100644 index 00000000..f0875df7 --- /dev/null +++ b/templates/MP3Proto/Structs/CameraShakerData.xml @@ -0,0 +1,21 @@ + + + + CameraShakerData + + + 48 + + + 5.0 + + + 1.0 + + + + + + + + diff --git a/templates/MP3Proto/Structs/CattleProd.xml b/templates/MP3Proto/Structs/CattleProd.xml new file mode 100644 index 00000000..5dca5ba3 --- /dev/null +++ b/templates/MP3Proto/Structs/CattleProd.xml @@ -0,0 +1,23 @@ + + + + CattleProd + + + + 5.0 + + + + PART + + + + 1.0 + + + 25.0 + + + + diff --git a/templates/MP3Proto/Structs/Chakram.xml b/templates/MP3Proto/Structs/Chakram.xml new file mode 100644 index 00000000..2d18c5db --- /dev/null +++ b/templates/MP3Proto/Structs/Chakram.xml @@ -0,0 +1,70 @@ + + + + Chakram + + + + CMDL + + + + + PART + + + + + PART + + + + + PART + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + 50.0 + + + 50.0 + + + 720.0 + + + 0.5 + + + + PART + + + + 1.0 + + + 20.0 + + + 60.0 + + + + diff --git a/templates/MP3Proto/Structs/ChasePosition.xml b/templates/MP3Proto/Structs/ChasePosition.xml new file mode 100644 index 00000000..97e5e0ec --- /dev/null +++ b/templates/MP3Proto/Structs/ChasePosition.xml @@ -0,0 +1,18 @@ + + + + ChasePosition + + + 0.0 + + + 0.0 + + + 0.0 + + + + + diff --git a/templates/MP3Proto/Structs/CinematicBlend.xml b/templates/MP3Proto/Structs/CinematicBlend.xml new file mode 100644 index 00000000..e372e2e5 --- /dev/null +++ b/templates/MP3Proto/Structs/CinematicBlend.xml @@ -0,0 +1,11 @@ + + + + CinematicBlend + + + + + + + diff --git a/templates/MP3Proto/Structs/ColliderPosition.xml b/templates/MP3Proto/Structs/ColliderPosition.xml new file mode 100644 index 00000000..08c019b3 --- /dev/null +++ b/templates/MP3Proto/Structs/ColliderPosition.xml @@ -0,0 +1,65 @@ + + + + ColliderPosition + + + 0xB745A689 + + + + + + 5.0 + + + 10.0 + + + 2.7360001 + + + + + + + 0.0099999998 + + + + + + + + + + + 80.0 + + + 4.0 + + + + + + + + + + + 30.0 + + + 8.0 + + + 2.5 + + + + + + + + diff --git a/templates/MP3Proto/Structs/Connection.xml b/templates/MP3Proto/Structs/Connection.xml new file mode 100644 index 00000000..4d65f805 --- /dev/null +++ b/templates/MP3Proto/Structs/Connection.xml @@ -0,0 +1,17 @@ + + + + Connection + true + + + Connection Index + 0 + + + Activation Times + + + + + diff --git a/templates/MP3Proto/Structs/CounterConditions.xml b/templates/MP3Proto/Structs/CounterConditions.xml new file mode 100644 index 00000000..63705407 --- /dev/null +++ b/templates/MP3Proto/Structs/CounterConditions.xml @@ -0,0 +1,38 @@ + + + + CounterConditions + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + 10 + + + + diff --git a/templates/MP3Proto/Structs/DarkSamusData.xml b/templates/MP3Proto/Structs/DarkSamusData.xml new file mode 100644 index 00000000..c605260b --- /dev/null +++ b/templates/MP3Proto/Structs/DarkSamusData.xml @@ -0,0 +1,36 @@ + + + + DarkSamusData + + + -1.0 + + + -1.0 + + + -1.0 + + + -1.0 + + + -1.0 + + + + WPSC + + + + + WPSC + + + + + + + + diff --git a/templates/MP3Proto/Structs/DebrisProperties.xml b/templates/MP3Proto/Structs/DebrisProperties.xml new file mode 100644 index 00000000..13faced1 --- /dev/null +++ b/templates/MP3Proto/Structs/DebrisProperties.xml @@ -0,0 +1,223 @@ + + + + DebrisProperties + + + 180.0 + + + 180.0 + + + + 0.0 + 0.0 + 1.0 + + + + + 0.0 + 0.0 + 0.0 + + + + true + + + 5.0 + + + 15.0 + + + + -1.0 + -1.0 + -1.0 + + + + + 1.0 + 1.0 + 1.0 + + + + 2.0 + + + 3.0 + + + 0.0 + + + 10.0 + + + 80.0 + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + + 1.0 + 1.0 + 1.0 + + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + 80.0 + + + + 1.0 + 1.0 + 1.0 + + + + 0.375 + + + 0.1 + + + 25.0 + + + 1.0 + + + + CMDL + + + + + 0.0 + 0.0 + 0.0 + + + + + CAUD + + + + 1 + + + 1.0 + + + 1.0 + + + 0.1 + + + 0.1 + + + 0.1 + + + 0.1 + + + 0.1 + + + + PART + + + + + 1.0 + 1.0 + 1.0 + + + + false + + + false + + + true + + + + + PART + + + + + 1.0 + 1.0 + 1.0 + + + + false + + + false + + + true + + + + true + + + false + + + false + + + false + + + true + + + false + + + false + + + false + + + true + + + + diff --git a/templates/MP3Proto/Structs/DefenseMechanoidData.xml b/templates/MP3Proto/Structs/DefenseMechanoidData.xml new file mode 100644 index 00000000..14385256 --- /dev/null +++ b/templates/MP3Proto/Structs/DefenseMechanoidData.xml @@ -0,0 +1,119 @@ + + + + DefenseMechanoidData + + + true + + + true + + + + + CMDL + + + + 100.0 + + + + 10.0 + + + 5.0 + + + + CMDL + + + + 100.0 + + + + + PART + + + + + PART + + + + + PART + + + + + 30.0 + + + 34.0 + + + 33.0 + + + 33.0 + + + 15.0 + + + 25.0 + + + 1.5 + + + 3.0 + + + 10.0 + + + 20.0 + + + 7.0 + + + 12.0 + + + 4.0 + + + 10.0 + + + 50.0 + + + 10.0 + + + + WPSC + + + + + + + PART + + + + 25.0 + + + + + diff --git a/templates/MP3Proto/Structs/DynamicLightFalloff.xml b/templates/MP3Proto/Structs/DynamicLightFalloff.xml new file mode 100644 index 00000000..1123645d --- /dev/null +++ b/templates/MP3Proto/Structs/DynamicLightFalloff.xml @@ -0,0 +1,18 @@ + + + + DynamicLightFalloff + + + 0 + + + + 0.0 + + + false + + + + diff --git a/templates/MP3Proto/Structs/DynamicLightIntensity.xml b/templates/MP3Proto/Structs/DynamicLightIntensity.xml new file mode 100644 index 00000000..f1370961 --- /dev/null +++ b/templates/MP3Proto/Structs/DynamicLightIntensity.xml @@ -0,0 +1,15 @@ + + + + DynamicLightIntensity + + + + 0.0 + + + false + + + + diff --git a/templates/MP3Proto/Structs/DynamicLightMotionSpline.xml b/templates/MP3Proto/Structs/DynamicLightMotionSpline.xml new file mode 100644 index 00000000..9111c218 --- /dev/null +++ b/templates/MP3Proto/Structs/DynamicLightMotionSpline.xml @@ -0,0 +1,16 @@ + + + + DynamicLightMotionSpline + + + false + + + + + 10.0 + + + + diff --git a/templates/MP3Proto/Structs/DynamicLightParent.xml b/templates/MP3Proto/Structs/DynamicLightParent.xml new file mode 100644 index 00000000..844e6e10 --- /dev/null +++ b/templates/MP3Proto/Structs/DynamicLightParent.xml @@ -0,0 +1,26 @@ + + + + DynamicLightParent + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + false + + + + diff --git a/templates/MP3Proto/Structs/DynamicLightSpotlight.xml b/templates/MP3Proto/Structs/DynamicLightSpotlight.xml new file mode 100644 index 00000000..a5b186d9 --- /dev/null +++ b/templates/MP3Proto/Structs/DynamicLightSpotlight.xml @@ -0,0 +1,15 @@ + + + + DynamicLightSpotlight + + + + 0.0 + + + false + + + + diff --git a/templates/MP3Proto/Structs/EnergyWhip.xml b/templates/MP3Proto/Structs/EnergyWhip.xml new file mode 100644 index 00000000..d55eca7e --- /dev/null +++ b/templates/MP3Proto/Structs/EnergyWhip.xml @@ -0,0 +1,21 @@ + + + + EnergyWhip + + + + + 2.5 + + + 15.0 + + + + PART + + + + + diff --git a/templates/MP3Proto/Structs/EyePodData.xml b/templates/MP3Proto/Structs/EyePodData.xml new file mode 100644 index 00000000..a26379a6 --- /dev/null +++ b/templates/MP3Proto/Structs/EyePodData.xml @@ -0,0 +1,59 @@ + + + + EyePodData + + + 40.0 + + + 5.0 + + + 2.0 + + + 5.0 + + + 1 + + + 4 + + + 0.25 + + + 0.5 + + + 0.25 + + + 0.5 + + + 5.0 + + + 7.0 + + + + WPSC + + + + + WPSC + + + + + + 5.0 + + + + diff --git a/templates/MP3Proto/Structs/FargullHatcherData.xml b/templates/MP3Proto/Structs/FargullHatcherData.xml new file mode 100644 index 00000000..425262e3 --- /dev/null +++ b/templates/MP3Proto/Structs/FargullHatcherData.xml @@ -0,0 +1,40 @@ + + + + FargullHatcherData + + + false + + + 20.0 + + + 20.0 + + + 20.0 + + + + + 1.0 + + + 5 + + + 10.0 + + + 20.0 + + + 0.5 + + + 2.0 + + + + diff --git a/templates/MP3Proto/Structs/FargullHatcherSwarmData.xml b/templates/MP3Proto/Structs/FargullHatcherSwarmData.xml new file mode 100644 index 00000000..4bdde127 --- /dev/null +++ b/templates/MP3Proto/Structs/FargullHatcherSwarmData.xml @@ -0,0 +1,14 @@ + + + + FargullHatcherSwarmData + + + 4.0 + + + 25.0 + + + + diff --git a/templates/MP3Proto/Structs/FederationData.xml b/templates/MP3Proto/Structs/FederationData.xml new file mode 100644 index 00000000..7493089f --- /dev/null +++ b/templates/MP3Proto/Structs/FederationData.xml @@ -0,0 +1,11 @@ + + + + FederationData + + + true + + + + diff --git a/templates/MP3Proto/Structs/FishCloudAggressionData.xml b/templates/MP3Proto/Structs/FishCloudAggressionData.xml new file mode 100644 index 00000000..e184e2dc --- /dev/null +++ b/templates/MP3Proto/Structs/FishCloudAggressionData.xml @@ -0,0 +1,31 @@ + + + + FishCloudAggressionData + + + 2.0 + + + 30.0 + + + 1.0 + + + 2.0 + + + + PART + + + + 0 + + + 0.0 + + + + diff --git a/templates/MP3Proto/Structs/FluidProperties.xml b/templates/MP3Proto/Structs/FluidProperties.xml new file mode 100644 index 00000000..a6d82648 --- /dev/null +++ b/templates/MP3Proto/Structs/FluidProperties.xml @@ -0,0 +1,189 @@ + + + + FluidProperties + + + 0x54F30820 + + + + + + + + true + + + true + + + true + + + 1.0 + + + 5.0 + + + 5.0 + + + + 0.0 + 0.0 + 0.49803901 + + + + + 0.0 + 0.49803901 + 1.0 + + + + + TXTR + + + + + TXTR + + + + + TXTR + + + + + TXTR + + + + + TXTR + + + + + + 0.25 + + + 0.050000001 + + + 10.0 + + + 0.0 + + + + + + + + + 1.0 + 1.0 + 1.0 + + + + + PART + + + + + PART + + + + + PART + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + + + + + 1.0 + 1.0 + 1.0 + + + + 0.0 + + + 0.0 + + + 1.0 + + + 30.0 + + + 125.0 + + + 150.0 + + + 300.0 + + + 0.30000001 + + + 1.0 + + + 1.0 + + + 0.0 + + + 0.0 + + + false + + + 1.0 + + + + false + + + 300 + + + + diff --git a/templates/MP3Proto/Structs/FlyingPirateData.xml b/templates/MP3Proto/Structs/FlyingPirateData.xml new file mode 100644 index 00000000..cf773c67 --- /dev/null +++ b/templates/MP3Proto/Structs/FlyingPirateData.xml @@ -0,0 +1,87 @@ + + + + FlyingPirateData + + + false + + + true + + + false + + + false + + + 10.0 + + + 50.0 + + + 2.0 + + + 100.0 + + + 0 + + + + CMDL + + + + + CMDL + + + + 15.0 + + + 30.0 + + + 10.0 + + + 2.5 + + + 90.0 + + + 20.0 + + + 30.0 + + + 80.0 + + + 20.0 + + + 30.0 + + + 30.0 + + + 3.0 + + + + + + + + + + diff --git a/templates/MP3Proto/Structs/FlyingPirateHelixMissileData.xml b/templates/MP3Proto/Structs/FlyingPirateHelixMissileData.xml new file mode 100644 index 00000000..9e166bac --- /dev/null +++ b/templates/MP3Proto/Structs/FlyingPirateHelixMissileData.xml @@ -0,0 +1,34 @@ + + + + FlyingPirateHelixMissileData + + + + WPSC + + + + + WPSC + + + + + 10.0 + + + 20.0 + + + 50.0 + + + 3.0 + + + 1.0 + + + + diff --git a/templates/MP3Proto/Structs/GeneratedObjectDeleterProperties.xml b/templates/MP3Proto/Structs/GeneratedObjectDeleterProperties.xml new file mode 100644 index 00000000..ebd0e493 --- /dev/null +++ b/templates/MP3Proto/Structs/GeneratedObjectDeleterProperties.xml @@ -0,0 +1,11 @@ + + + + GeneratedObjectDeleterProperties + + + true + + + + diff --git a/templates/MP3Proto/Structs/GragnolFlyerData.xml b/templates/MP3Proto/Structs/GragnolFlyerData.xml new file mode 100644 index 00000000..9f95398d --- /dev/null +++ b/templates/MP3Proto/Structs/GragnolFlyerData.xml @@ -0,0 +1,166 @@ + + + + GragnolFlyerData + + + 0xF3CB1D35 + + + + + + + + + 0.0 + 0.0 + 0.0 + + + + 20.0 + + + 120.0 + + + + + + -1.0 + + + 5.0 + + + + + + + 5.0 + + + + + 50.0 + + + + + 10.0 + + + 2.0 + + + 2.0 + + + 5.0 + + + 5.0 + + + 2.0 + + + 10.0 + + + + + 1 + + + 10.0 + + + false + + + + + 90.0 + + + 90.0 + + + false + + + false + + + + + + + 90.0 + + + 90.0 + + + false + + + false + + + + + + + 90.0 + + + 90.0 + + + false + + + false + + + + + + + 90.0 + + + 90.0 + + + false + + + false + + + + + + + 90.0 + + + 90.0 + + + false + + + false + + + + + + + + diff --git a/templates/MP3Proto/Structs/GrappleInfo.xml b/templates/MP3Proto/Structs/GrappleInfo.xml new file mode 100644 index 00000000..f2606027 --- /dev/null +++ b/templates/MP3Proto/Structs/GrappleInfo.xml @@ -0,0 +1,23 @@ + + + + GrappleInfo + + + 5.0 + + + 20.0 + + + 180.0 + + + false + + + false + + + + diff --git a/templates/MP3Proto/Structs/GunTurretBaseData.xml b/templates/MP3Proto/Structs/GunTurretBaseData.xml new file mode 100644 index 00000000..abe8e8cf --- /dev/null +++ b/templates/MP3Proto/Structs/GunTurretBaseData.xml @@ -0,0 +1,34 @@ + + + + GunTurretBaseData + + + false + + + false + + + 2.0 + + + 5.0 + + + 1.0 + + + 10.0 + + + 10.0 + + + + PART + + + + + diff --git a/templates/MP3Proto/Structs/GunTurretTopData.xml b/templates/MP3Proto/Structs/GunTurretTopData.xml new file mode 100644 index 00000000..15e3b4ab --- /dev/null +++ b/templates/MP3Proto/Structs/GunTurretTopData.xml @@ -0,0 +1,58 @@ + + + + GunTurretTopData + + + false + + + 180.0 + + + 10.0 + + + 1.0 + + + 3.0 + + + 1.0 + + + 1.0 + + + 1 + + + 5 + + + + CRSC + + + + + WPSC + + + + + 10.0 + + + 5.0 + + + + 1.0 + + + + + + diff --git a/templates/MP3Proto/Structs/HyperMode.xml b/templates/MP3Proto/Structs/HyperMode.xml new file mode 100644 index 00000000..cd655a09 --- /dev/null +++ b/templates/MP3Proto/Structs/HyperMode.xml @@ -0,0 +1,23 @@ + + + + HyperMode + + + false + + + false + + + false + + + false + + + false + + + + diff --git a/templates/MP3Proto/Structs/Inventory.xml b/templates/MP3Proto/Structs/Inventory.xml new file mode 100644 index 00000000..ac3da854 --- /dev/null +++ b/templates/MP3Proto/Structs/Inventory.xml @@ -0,0 +1,15 @@ + + + + Inventory + + + + + + + + + + + diff --git a/templates/MP3Proto/Structs/JetPack.xml b/templates/MP3Proto/Structs/JetPack.xml new file mode 100644 index 00000000..c9f0aab1 --- /dev/null +++ b/templates/MP3Proto/Structs/JetPack.xml @@ -0,0 +1,32 @@ + + + + JetPack + + + 120.0 + + + 5.0 + + + + PART + + + + + PART + + + + + PART + + + + + + + + diff --git a/templates/MP3Proto/Structs/KorakkData.xml b/templates/MP3Proto/Structs/KorakkData.xml new file mode 100644 index 00000000..0a0d3c01 --- /dev/null +++ b/templates/MP3Proto/Structs/KorakkData.xml @@ -0,0 +1,73 @@ + + + + KorakkData + + + 1.0 + + + + + + + + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + 25.0 + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + diff --git a/templates/MP3Proto/Structs/KorbaMawData.xml b/templates/MP3Proto/Structs/KorbaMawData.xml new file mode 100644 index 00000000..f8a1eb48 --- /dev/null +++ b/templates/MP3Proto/Structs/KorbaMawData.xml @@ -0,0 +1,18 @@ + + + + KorbaMawData + + + + 0.5 + + + 3.0 + + + 2.8 + + + + diff --git a/templates/MP3Proto/Structs/KorbaSnatcherData.xml b/templates/MP3Proto/Structs/KorbaSnatcherData.xml new file mode 100644 index 00000000..676ea8e5 --- /dev/null +++ b/templates/MP3Proto/Structs/KorbaSnatcherData.xml @@ -0,0 +1,38 @@ + + + + KorbaSnatcherData + + + 0.80000001 + + + 5 + + + 8 + + + 1.0 + + + 2.5 + + + 2000.0 + + + 0.1 + + + 0.30000001 + + + 1.0 + + + 30.0 + + + + diff --git a/templates/MP3Proto/Structs/ManthaData.xml b/templates/MP3Proto/Structs/ManthaData.xml new file mode 100644 index 00000000..d1d0ac71 --- /dev/null +++ b/templates/MP3Proto/Structs/ManthaData.xml @@ -0,0 +1,25 @@ + + + + ManthaData + + + 1.0 + + + 1.0 + + + 30.0 + + + + 2.5 + + + true + + + + + diff --git a/templates/MP3Proto/Structs/MetroidHatcherData.xml b/templates/MP3Proto/Structs/MetroidHatcherData.xml new file mode 100644 index 00000000..d74f51d4 --- /dev/null +++ b/templates/MP3Proto/Structs/MetroidHatcherData.xml @@ -0,0 +1,79 @@ + + + + MetroidHatcherData + + + 20.0 + + + 40.0 + + + 10.0 + + + + 5.0 + + + 5.0 + + + 5.0 + + + 5.0 + + + 50.0 + + + + 0.5 + + + 60.0 + + + 20.0 + + + 0.5 + + + 1.0 + + + 5.0 + + + 5.0 + + + 5.0 + + + 5.0 + + + 5.0 + + + 5.0 + + + 5.0 + + + 20.0 + + + 10.0 + + + 360.0 + + + + diff --git a/templates/MP3Proto/Structs/MetroidHopperData.xml b/templates/MP3Proto/Structs/MetroidHopperData.xml new file mode 100644 index 00000000..d81e809f --- /dev/null +++ b/templates/MP3Proto/Structs/MetroidHopperData.xml @@ -0,0 +1,39 @@ + + + + MetroidHopperData + + + false + + + 1.0 + + + 30.0 + + + 8.0 + + + 11.0 + + + 0.5 + + + + + 20.0 + + + 20.0 + + + + + false + + + + diff --git a/templates/MP3Proto/Structs/Misc.xml b/templates/MP3Proto/Structs/Misc.xml new file mode 100644 index 00000000..0c420dff --- /dev/null +++ b/templates/MP3Proto/Structs/Misc.xml @@ -0,0 +1,28 @@ + + + + Misc + + + + + 1 + + + 1 + + + + + + + 1 + + + 1 + + + + + + diff --git a/templates/MP3Proto/Structs/MysteryFlyerData.xml b/templates/MP3Proto/Structs/MysteryFlyerData.xml new file mode 100644 index 00000000..2e865866 --- /dev/null +++ b/templates/MP3Proto/Structs/MysteryFlyerData.xml @@ -0,0 +1,38 @@ + + + + MysteryFlyerData + + + + WPSC + + + + + + 0xFFFFFFFF + + + 5.0 + + + + + 10.0 + + + 2.0 + + + 5.0 + + + true + + + + + + + diff --git a/templates/MP3Proto/Structs/NonSlowdown.xml b/templates/MP3Proto/Structs/NonSlowdown.xml new file mode 100644 index 00000000..35a3d51b --- /dev/null +++ b/templates/MP3Proto/Structs/NonSlowdown.xml @@ -0,0 +1,9 @@ + + + + NonSlowdown + + + + + diff --git a/templates/MP3Proto/Structs/OffsetPosition.xml b/templates/MP3Proto/Structs/OffsetPosition.xml new file mode 100644 index 00000000..ac54caae --- /dev/null +++ b/templates/MP3Proto/Structs/OffsetPosition.xml @@ -0,0 +1,19 @@ + + + + OffsetPosition + + + 0x95BBB57E + + + + + + + + + + + + diff --git a/templates/MP3Proto/Structs/OffsetSplines.xml b/templates/MP3Proto/Structs/OffsetSplines.xml new file mode 100644 index 00000000..314253f5 --- /dev/null +++ b/templates/MP3Proto/Structs/OffsetSplines.xml @@ -0,0 +1,11 @@ + + + + OffsetSplines + + + + + + + diff --git a/templates/MP3Proto/Structs/OptionalAreaAssetTypes.xml b/templates/MP3Proto/Structs/OptionalAreaAssetTypes.xml new file mode 100644 index 00000000..6c978e7b --- /dev/null +++ b/templates/MP3Proto/Structs/OptionalAreaAssetTypes.xml @@ -0,0 +1,11 @@ + + + + OptionalAreaAssetTypes + + + 0 + + + + diff --git a/templates/MP3Proto/Structs/PIDConvergence.xml b/templates/MP3Proto/Structs/PIDConvergence.xml new file mode 100644 index 00000000..758ad5c8 --- /dev/null +++ b/templates/MP3Proto/Structs/PIDConvergence.xml @@ -0,0 +1,24 @@ + + + + PIDConvergence + + + 0x5A778792 + + + + + + + 0.0 + + + 0.0 + + + 0.0 + + + + diff --git a/templates/MP3Proto/Structs/PTCNoseTurretData.xml b/templates/MP3Proto/Structs/PTCNoseTurretData.xml new file mode 100644 index 00000000..c16e318d --- /dev/null +++ b/templates/MP3Proto/Structs/PTCNoseTurretData.xml @@ -0,0 +1,73 @@ + + + + PTCNoseTurretData + + + 0.5 + + + -90.0 + + + 90.0 + + + 90.0 + + + 90.0 + + + 0.0 + + + 15.0 + + + 360.0 + + + 135.0 + + + -135.0 + + + 360.0 + + + 45.0 + + + -45.0 + + + + WPSC + + + + + 1.0 + + + 3 + + + 0.1 + + + 2 + + + + CAUD + + + + false + + + + diff --git a/templates/MP3Proto/Structs/ParticleBlaster.xml b/templates/MP3Proto/Structs/ParticleBlaster.xml new file mode 100644 index 00000000..6a3092d8 --- /dev/null +++ b/templates/MP3Proto/Structs/ParticleBlaster.xml @@ -0,0 +1,31 @@ + + + + ParticleBlaster + + + + WPSC + + + + + + CAUD + + + + 50.0 + + + 3.0 + + + 1.0 + + + 0.1 + + + + diff --git a/templates/MP3Proto/Structs/PathDeterminationMethodType.xml b/templates/MP3Proto/Structs/PathDeterminationMethodType.xml new file mode 100644 index 00000000..c5c1726b --- /dev/null +++ b/templates/MP3Proto/Structs/PathDeterminationMethodType.xml @@ -0,0 +1,17 @@ + + + + PathDeterminationMethodType + + + 0x15F0534B + + + + + + + + + + diff --git a/templates/MP3Proto/Structs/PathPosition.xml b/templates/MP3Proto/Structs/PathPosition.xml new file mode 100644 index 00000000..6949bee7 --- /dev/null +++ b/templates/MP3Proto/Structs/PathPosition.xml @@ -0,0 +1,30 @@ + + + + PathPosition + + + 0 + + + 0xD25FBD92 + + + + + + + + + + 4.0 + + + 3.0 + + + + + + + diff --git a/templates/MP3Proto/Structs/PathType.xml b/templates/MP3Proto/Structs/PathType.xml new file mode 100644 index 00000000..cbd3347a --- /dev/null +++ b/templates/MP3Proto/Structs/PathType.xml @@ -0,0 +1,20 @@ + + + + PathType + + + 0x8C1B1D20 + + + + + + + + + + + + + diff --git a/templates/MP3Proto/Structs/PhazonFlyerSwarmData.xml b/templates/MP3Proto/Structs/PhazonFlyerSwarmData.xml new file mode 100644 index 00000000..3d63a050 --- /dev/null +++ b/templates/MP3Proto/Structs/PhazonFlyerSwarmData.xml @@ -0,0 +1,11 @@ + + + + PhazonFlyerSwarmData + + + 4.0 + + + + diff --git a/templates/MP3Proto/Structs/PhazonLeechData.xml b/templates/MP3Proto/Structs/PhazonLeechData.xml new file mode 100644 index 00000000..83ae75b7 --- /dev/null +++ b/templates/MP3Proto/Structs/PhazonLeechData.xml @@ -0,0 +1,72 @@ + + + + PhazonLeechData + + + false + + + 1.0 + + + 0.5 + + + 0.69999999 + + + 0.89999998 + + + 0.15000001 + + + 30.0 + + + 35.0 + + + 55.0 + + + 2.0 + + + 4.0 + + + -1.0 + + + -1.0 + + + 3.0 + + + 1.0 + + + 1.0 + + + 1.0 + + + 2.0 + + + 1.0 + + + 7.0 + + + + 0.5 + + + + diff --git a/templates/MP3Proto/Structs/PhazonPuddleData.xml b/templates/MP3Proto/Structs/PhazonPuddleData.xml new file mode 100644 index 00000000..94a82194 --- /dev/null +++ b/templates/MP3Proto/Structs/PhazonPuddleData.xml @@ -0,0 +1,166 @@ + + + + PhazonPuddleData + + + + FSM2 + + + + + + 25.0 + + + + + 5.0 + + + + 1.0 + + + + 1.0 + + + 5.0 + + + 50 + + + 15.0 + + + 25.0 + + + 10.0 + + + 5.0 + + + 0.30000001 + + + 0.2 + + + 1.0 + + + 20.0 + + + 0.1 + + + 1.0 + + + 2.0 + + + 30.0 + + + + 5.0 + + + 25.0 + + + + + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + + + CAUD + + + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + + diff --git a/templates/MP3Proto/Structs/PhysicsDebrisProperties.xml b/templates/MP3Proto/Structs/PhysicsDebrisProperties.xml new file mode 100644 index 00000000..7975582e --- /dev/null +++ b/templates/MP3Proto/Structs/PhysicsDebrisProperties.xml @@ -0,0 +1,210 @@ + + + + PhysicsDebrisProperties + + + 180.0 + + + 180.0 + + + + 0.0 + 0.0 + 1.0 + + + + + 0.0 + 0.0 + 0.0 + + + + true + + + 5.0 + + + 15.0 + + + + -1.0 + -1.0 + -1.0 + + + + + 1.0 + 1.0 + 1.0 + + + + 2.0 + + + 3.0 + + + 0.0 + + + 10.0 + + + 80.0 + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + + 1.0 + 1.0 + 1.0 + + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + 80.0 + + + + 1.0 + 1.0 + 1.0 + + + + 0.375 + + + 0.1 + + + 25.0 + + + 1.0 + + + + CMDL + + + + + CAUD + + + + 1 + + + 1.0 + + + 1.0 + + + 0.1 + + + 0.1 + + + 0.1 + + + 0.1 + + + 0.1 + + + + PART + + + + + 1.0 + 1.0 + 1.0 + + + + false + + + false + + + true + + + + + PART + + + + + 1.0 + 1.0 + 1.0 + + + + false + + + false + + + true + + + + true + + + false + + + false + + + false + + + true + + + false + + + false + + + + diff --git a/templates/MP3Proto/Structs/PirateDroneData.xml b/templates/MP3Proto/Structs/PirateDroneData.xml new file mode 100644 index 00000000..7e612240 --- /dev/null +++ b/templates/MP3Proto/Structs/PirateDroneData.xml @@ -0,0 +1,109 @@ + + + + PirateDroneData + + + 0.69999999 + + + + 0.5 + + + + + + 3.0 + + + 2.0 + + + 0.0 + + + 1.0 + + + 1.0 + + + 1080.0 + + + 8.0 + + + 1.0 + + + 10.0 + + + 2.0 + + + 10.0 + + + 1.0 + + + 12.0 + + + 3.0 + + + 10.0 + + + 3.0 + + + 1.0 + + + 5.0 + + + 10.0 + + + 0.5 + + + 0.5 + + + 0.1 + + + false + + + 90.0 + + + 30.0 + + + 1.0 + + + 0 + + + 1 + + + 0 + + + 2 + + + + + diff --git a/templates/MP3Proto/Structs/ProportionalConvergence.xml b/templates/MP3Proto/Structs/ProportionalConvergence.xml new file mode 100644 index 00000000..670e704b --- /dev/null +++ b/templates/MP3Proto/Structs/ProportionalConvergence.xml @@ -0,0 +1,12 @@ + + + + ProportionalConvergence + + + 0.0 + + + + + diff --git a/templates/MP3Proto/Structs/ReptilicusHunterData.xml b/templates/MP3Proto/Structs/ReptilicusHunterData.xml new file mode 100644 index 00000000..b1996b34 --- /dev/null +++ b/templates/MP3Proto/Structs/ReptilicusHunterData.xml @@ -0,0 +1,51 @@ + + + + ReptilicusHunterData + + + false + + + false + + + 1.0 + + + 0.25 + + + + CAUD + + + + + CAUD + + + + 0.0 + + + 10.0 + + + 0.0 + + + 1.0 + + + 10.0 + + + 10.0 + + + + + + + diff --git a/templates/MP3Proto/Structs/Ridley1Data.xml b/templates/MP3Proto/Structs/Ridley1Data.xml new file mode 100644 index 00000000..4866e359 --- /dev/null +++ b/templates/MP3Proto/Structs/Ridley1Data.xml @@ -0,0 +1,98 @@ + + + + Ridley1Data + + + + PART + + + + + PART + + + + + PART + + + + + WPSC + + + + + + + + TXTR + + + + 100.0 + + + 15.0 + + + + 15.0 + + + + 15.0 + + + + 15.0 + + + + 15.0 + + + + 15.0 + + + + + WPSC + + + + + WPSC + + + + + + WPSC + + + + + + PART + + + + 8.0 + + + + PART + + + + + TXTR + + + + + diff --git a/templates/MP3Proto/Structs/RotationSplines.xml b/templates/MP3Proto/Structs/RotationSplines.xml new file mode 100644 index 00000000..cfcb7662 --- /dev/null +++ b/templates/MP3Proto/Structs/RotationSplines.xml @@ -0,0 +1,11 @@ + + + + RotationSplines + + + + + + + diff --git a/templates/MP3Proto/Structs/RundasData.xml b/templates/MP3Proto/Structs/RundasData.xml new file mode 100644 index 00000000..66e55538 --- /dev/null +++ b/templates/MP3Proto/Structs/RundasData.xml @@ -0,0 +1,229 @@ + + + + RundasData + + + 90.0 + + + 72.0 + + + 4.0 + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + WPSC + + + + + WPSC + + + + + WPSC + + + + + WPSC + + + + 6.0 + + + + + 0.5 + + + 6.0 + + + 6.0 + + + 13.0 + + + + WPSC + + + + + + TXTR + + + + + CMDL + + + + + + PART + + + + 35.0 + + + 200.0 + + + 70.0 + + + 25.0 + + + + CMDL + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + WPSC + + + + + 25.0 + + + 7.5 + + + 18.0 + + + 5.0 + + + 2.5 + + + 14.0 + + + 17.0 + + + 10.0 + + + 25.0 + + + + + diff --git a/templates/MP3Proto/Structs/ScaleSplines.xml b/templates/MP3Proto/Structs/ScaleSplines.xml new file mode 100644 index 00000000..ad7886fa --- /dev/null +++ b/templates/MP3Proto/Structs/ScaleSplines.xml @@ -0,0 +1,11 @@ + + + + ScaleSplines + + + + + + + diff --git a/templates/MP3Proto/Structs/ScanBeamInfo.xml b/templates/MP3Proto/Structs/ScanBeamInfo.xml new file mode 100644 index 00000000..2cdb7ed7 --- /dev/null +++ b/templates/MP3Proto/Structs/ScanBeamInfo.xml @@ -0,0 +1,56 @@ + + + + ScanBeamInfo + + + 20.0 + + + + 0.247059 + 0.0 + 0.0 + 0.0 + + + + + 0.49803901 + 1.0 + 0.098039001 + 0.0 + + + + + 0.34902 + 0.0 + 0.0 + 0.0 + + + + + 0.14902 + 0.0 + 0.0 + 0.0 + + + + 10.0 + + + 5.0 + + + 4.0 + + + 50.0 + + + + + diff --git a/templates/MP3Proto/Structs/SeedBoss1Data.xml b/templates/MP3Proto/Structs/SeedBoss1Data.xml new file mode 100644 index 00000000..424606a2 --- /dev/null +++ b/templates/MP3Proto/Structs/SeedBoss1Data.xml @@ -0,0 +1,164 @@ + + + + SeedBoss1Data + + + 0.0 + + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + + + + + + + PART + + + + + WPSC + + + + + + + + + + 0.0 + + + 0.0 + + + 0.0 + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + 0.0 + + + 0.0 + + + + + + + + + diff --git a/templates/MP3Proto/Structs/SeedBoss1HandData.xml b/templates/MP3Proto/Structs/SeedBoss1HandData.xml new file mode 100644 index 00000000..ea13e9e6 --- /dev/null +++ b/templates/MP3Proto/Structs/SeedBoss1HandData.xml @@ -0,0 +1,26 @@ + + + + SeedBoss1HandData + + + + + + + FSM2 + + + + + + PART + + + + + 20.0 + + + + diff --git a/templates/MP3Proto/Structs/SeedBoss1OrbData.xml b/templates/MP3Proto/Structs/SeedBoss1OrbData.xml new file mode 100644 index 00000000..3ee33b39 --- /dev/null +++ b/templates/MP3Proto/Structs/SeedBoss1OrbData.xml @@ -0,0 +1,30 @@ + + + + SeedBoss1OrbData + + + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + true + + + + PART + + + + 0.0 + + + + diff --git a/templates/MP3Proto/Structs/SeedBoss1Shield.xml b/templates/MP3Proto/Structs/SeedBoss1Shield.xml new file mode 100644 index 00000000..b8c323fe --- /dev/null +++ b/templates/MP3Proto/Structs/SeedBoss1Shield.xml @@ -0,0 +1,83 @@ + + + + SeedBoss1Shield + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + diff --git a/templates/MP3Proto/Structs/Ship.xml b/templates/MP3Proto/Structs/Ship.xml new file mode 100644 index 00000000..7afc78f0 --- /dev/null +++ b/templates/MP3Proto/Structs/Ship.xml @@ -0,0 +1,14 @@ + + + + Ship + + + false + + + false + + + + diff --git a/templates/MP3Proto/Structs/ShipData.xml b/templates/MP3Proto/Structs/ShipData.xml new file mode 100644 index 00000000..2e3844ff --- /dev/null +++ b/templates/MP3Proto/Structs/ShipData.xml @@ -0,0 +1,60 @@ + + + + ShipData + + + false + + + + WPSC + + + + + + 0xCD26D8F0 + + + 50.0 + + + 20.0 + + + 5.0 + + + + + + CAUD + + + + 0.5 + + + 10.0 + + + true + + + + PART + + + + + PART + + + + + true + + + + diff --git a/templates/MP3Proto/Structs/SpacePirateData.xml b/templates/MP3Proto/Structs/SpacePirateData.xml new file mode 100644 index 00000000..016dc05e --- /dev/null +++ b/templates/MP3Proto/Structs/SpacePirateData.xml @@ -0,0 +1,209 @@ + + + + SpacePirateData + + + true + + + false + + + false + + + false + + + false + + + 50.0 + + + false + + + Never + true + + + 10.0 + + + 50.0 + + + 20.0 + + + 20.0 + + + 1000.0 + + + false + + + 80.0 + + + 1.0 + + + false + + + false + + + false + + + + + 10.0 + + + 5.0 + + + + + 0.1 + + + 0.050000001 + + + 0 + + + 1.0 + + + false + + + false + + + 0.1 + + + 0.75 + + + false + + + 5.0 + + + 10.0 + + + 2.0 + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + 10000 + + + + false + + + false + + + + + + + 1 + + + + + + false + + + + + 100.0 + + + 5.0 + + + + + + false + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + diff --git a/templates/MP3Proto/Structs/SpindleOrientation.xml b/templates/MP3Proto/Structs/SpindleOrientation.xml new file mode 100644 index 00000000..f7cde691 --- /dev/null +++ b/templates/MP3Proto/Structs/SpindleOrientation.xml @@ -0,0 +1,13 @@ + + + + SpindleOrientation + + + 786432 + + + + + + diff --git a/templates/MP3Proto/Structs/SpindlePosition.xml b/templates/MP3Proto/Structs/SpindlePosition.xml new file mode 100644 index 00000000..ab487568 --- /dev/null +++ b/templates/MP3Proto/Structs/SpindlePosition.xml @@ -0,0 +1,24 @@ + + + + SpindlePosition + + + 320 + + + + + + + + + + + + + + + + + diff --git a/templates/MP3Proto/Structs/SpringConvergence.xml b/templates/MP3Proto/Structs/SpringConvergence.xml new file mode 100644 index 00000000..7e109f44 --- /dev/null +++ b/templates/MP3Proto/Structs/SpringConvergence.xml @@ -0,0 +1,26 @@ + + + + SpringConvergence + + + true + + + 10.0 + + + 0.0 + + + 0.0099999998 + + + 10.0 + + + 1.0 + + + + diff --git a/templates/MP3Proto/Structs/SteamBotData.xml b/templates/MP3Proto/Structs/SteamBotData.xml new file mode 100644 index 00000000..d87ead3f --- /dev/null +++ b/templates/MP3Proto/Structs/SteamBotData.xml @@ -0,0 +1,89 @@ + + + + SteamBotData + + + + + 100.0 + + + 20.0 + + + 5.0 + + + + 30.0 + + + 5.0 + + + 0.5 + + + 1 + + + + 5.0 + + + 0.0 + + + 0.0 + + + + 5.0 + + + 10.0 + + + 0.0 + + + 0.050000001 + + + 0.0 + + + 0.0 + + + 6.0 + + + 3.0 + + + + + + + 1.0 + + + 5.0 + + + 5.0 + + + 0.5 + + + true + + + false + + + + diff --git a/templates/MP3Proto/Structs/SteamLordData.xml b/templates/MP3Proto/Structs/SteamLordData.xml new file mode 100644 index 00000000..65f05977 --- /dev/null +++ b/templates/MP3Proto/Structs/SteamLordData.xml @@ -0,0 +1,20 @@ + + + + SteamLordData + + + 10.0 + + + 2.5 + + + 20.0 + + + 30.0 + + + + diff --git a/templates/MP3Proto/Structs/SurfaceOrientation.xml b/templates/MP3Proto/Structs/SurfaceOrientation.xml new file mode 100644 index 00000000..8fd93f63 --- /dev/null +++ b/templates/MP3Proto/Structs/SurfaceOrientation.xml @@ -0,0 +1,11 @@ + + + + SurfaceOrientation + + + 256 + + + + diff --git a/templates/MP3Proto/Structs/SurfacePosition.xml b/templates/MP3Proto/Structs/SurfacePosition.xml new file mode 100644 index 00000000..e3c97201 --- /dev/null +++ b/templates/MP3Proto/Structs/SurfacePosition.xml @@ -0,0 +1,13 @@ + + + + SurfacePosition + + + 1 + + + + + + diff --git a/templates/MP3Proto/Structs/SurroundPan.xml b/templates/MP3Proto/Structs/SurroundPan.xml new file mode 100644 index 00000000..5b4fba99 --- /dev/null +++ b/templates/MP3Proto/Structs/SurroundPan.xml @@ -0,0 +1,14 @@ + + + + SurroundPan + + + 0.0 + + + 1.0 + + + + diff --git a/templates/MP3Proto/Structs/SwarmBotData.xml b/templates/MP3Proto/Structs/SwarmBotData.xml new file mode 100644 index 00000000..c64bac64 --- /dev/null +++ b/templates/MP3Proto/Structs/SwarmBotData.xml @@ -0,0 +1,157 @@ + + + + SwarmBotData + + + 8 + + + 8 + + + true + + + 3 + + + 10.0 + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + true + + + true + + + true + + + + + + WPSC + + + + + + + + ELSC + + + + + ELSC + + + + + ELSC + + + + + PART + + + + + PART + + + + + PART + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + diff --git a/templates/MP3Proto/Structs/TeamAIDebugEnum.xml b/templates/MP3Proto/Structs/TeamAIDebugEnum.xml new file mode 100644 index 00000000..7667a9c8 --- /dev/null +++ b/templates/MP3Proto/Structs/TeamAIDebugEnum.xml @@ -0,0 +1,17 @@ + + + + TeamAIDebugEnum + + + 0xFC1B1B4F + + + + + + + + + + diff --git a/templates/MP3Proto/Structs/TranslationSplines.xml b/templates/MP3Proto/Structs/TranslationSplines.xml new file mode 100644 index 00000000..3e91d571 --- /dev/null +++ b/templates/MP3Proto/Structs/TranslationSplines.xml @@ -0,0 +1,11 @@ + + + + TranslationSplines + + + + + + + diff --git a/templates/MP3Proto/Structs/VelocityConvergence.xml b/templates/MP3Proto/Structs/VelocityConvergence.xml new file mode 100644 index 00000000..3b8ce446 --- /dev/null +++ b/templates/MP3Proto/Structs/VelocityConvergence.xml @@ -0,0 +1,17 @@ + + + + VelocityConvergence + + + 0.0 + + + 0.0 + + + 1.0 + + + + diff --git a/templates/MP3Proto/Structs/Visors.xml b/templates/MP3Proto/Structs/Visors.xml new file mode 100644 index 00000000..5a960e6a --- /dev/null +++ b/templates/MP3Proto/Structs/Visors.xml @@ -0,0 +1,17 @@ + + + + Visors + + + false + + + false + + + false + + + + diff --git a/templates/MP3Proto/Structs/WallCrawlerData.xml b/templates/MP3Proto/Structs/WallCrawlerData.xml new file mode 100644 index 00000000..6a110814 --- /dev/null +++ b/templates/MP3Proto/Structs/WallCrawlerData.xml @@ -0,0 +1,44 @@ + + + + WallCrawlerData + + + 1.0 + + + 1.0 + + + 60.0 + + + 1.0 + + + 1.0 + + + 1.0 + + + 0.167 + + + 0.60000002 + + + 1.5 + + + 0.60000002 + + + 1.5 + + + false + + + + diff --git a/templates/MP3Proto/Structs/WeaponGeneratorProperties.xml b/templates/MP3Proto/Structs/WeaponGeneratorProperties.xml new file mode 100644 index 00000000..9c3eb3d8 --- /dev/null +++ b/templates/MP3Proto/Structs/WeaponGeneratorProperties.xml @@ -0,0 +1,35 @@ + + + + WeaponGeneratorProperties + + + + + WPSC + + + + + CAUD + + + + 0x9EFB69B1 + + + + + + 0x2B9C9A74 + + + + + + + + + + + diff --git a/templates/MP3Proto/Structs/Weapons.xml b/templates/MP3Proto/Structs/Weapons.xml new file mode 100644 index 00000000..6f98ae77 --- /dev/null +++ b/templates/MP3Proto/Structs/Weapons.xml @@ -0,0 +1,36 @@ + + + + Weapons + + + true + + + false + + + false + + + false + + + + false + + + false + + + false + + + false + + + false + + + + diff --git a/templates/Properties.xml b/templates/Properties.xml deleted file mode 100644 index bf5db53a..00000000 --- a/templates/Properties.xml +++ /dev/null @@ -1,11494 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/templates/PropertyMap.xml b/templates/PropertyMap.xml new file mode 100644 index 00000000..6190c74b --- /dev/null +++ b/templates/PropertyMap.xml @@ -0,0 +1,38513 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/PropertyMapLegacy.xml b/templates/PropertyMapLegacy.xml new file mode 100644 index 00000000..d5e4b17a --- /dev/null +++ b/templates/PropertyMapLegacy.xml @@ -0,0 +1,11496 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/dkcr/Enums/AnimEnum.xml b/templates/dkcr/Enums/AnimEnum.xml index 46dc9961..f1422583 100644 --- a/templates/dkcr/Enums/AnimEnum.xml +++ b/templates/dkcr/Enums/AnimEnum.xml @@ -1,8 +1,12 @@ - - - - - - - + + + AnimEnum + 0x0 + + + + + + + diff --git a/templates/dkcr/Enums/BarrelCannonEnum.xml b/templates/dkcr/Enums/BarrelCannonEnum.xml index b11848bc..665c1836 100644 --- a/templates/dkcr/Enums/BarrelCannonEnum.xml +++ b/templates/dkcr/Enums/BarrelCannonEnum.xml @@ -1,9 +1,13 @@ - - - - - - - - + + + BarrelCannonEnum + 0x0 + + + + + + + + diff --git a/templates/dkcr/Enums/CableEnum.xml b/templates/dkcr/Enums/CableEnum.xml index a8be0790..894e53a2 100644 --- a/templates/dkcr/Enums/CableEnum.xml +++ b/templates/dkcr/Enums/CableEnum.xml @@ -1,8 +1,12 @@ - - - - - - - + + + CableEnum + 0x0 + + + + + + + diff --git a/templates/dkcr/Enums/DamageableTriggerEnum.xml b/templates/dkcr/Enums/DamageableTriggerEnum.xml index d15aa38d..189d2683 100644 --- a/templates/dkcr/Enums/DamageableTriggerEnum.xml +++ b/templates/dkcr/Enums/DamageableTriggerEnum.xml @@ -1,9 +1,13 @@ - - - - - - - - + + + DamageableTriggerEnum + 0x0 + + + + + + + + diff --git a/templates/dkcr/Enums/Item.xml b/templates/dkcr/Enums/Item.xml deleted file mode 100644 index e9b8c211..00000000 --- a/templates/dkcr/Enums/Item.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/templates/dkcr/Enums/MusicEnumA.xml b/templates/dkcr/Enums/MusicEnumA.xml index d333cfb6..7cf78dc4 100644 --- a/templates/dkcr/Enums/MusicEnumA.xml +++ b/templates/dkcr/Enums/MusicEnumA.xml @@ -1,8 +1,12 @@ - - - - - - - + + + MusicEnumA + 0x0 + + + + + + + diff --git a/templates/dkcr/Enums/MusicEnumB.xml b/templates/dkcr/Enums/MusicEnumB.xml index 7f642661..f5520620 100644 --- a/templates/dkcr/Enums/MusicEnumB.xml +++ b/templates/dkcr/Enums/MusicEnumB.xml @@ -1,15 +1,19 @@ - - - - - - - - - - - - - - + + + MusicEnumB + 0x0 + + + + + + + + + + + + + + diff --git a/templates/dkcr/Enums/RobotChickenEnum.xml b/templates/dkcr/Enums/RobotChickenEnum.xml index 255bd3b7..c3979c7c 100644 --- a/templates/dkcr/Enums/RobotChickenEnum.xml +++ b/templates/dkcr/Enums/RobotChickenEnum.xml @@ -1,7 +1,11 @@ - - - - - - + + + RobotChickenEnum + 0x0 + + + + + + diff --git a/templates/dkcr/Enums/Shape.xml b/templates/dkcr/Enums/Shape.xml index a7821018..083a8845 100644 --- a/templates/dkcr/Enums/Shape.xml +++ b/templates/dkcr/Enums/Shape.xml @@ -1,9 +1,13 @@ - - - - - - - - + + + Shape + 0x0 + + + + + + + + diff --git a/templates/dkcr/Enums/UnknownEnum1.xml b/templates/dkcr/Enums/UnknownEnum1.xml index 16b3a7de..1681578b 100644 --- a/templates/dkcr/Enums/UnknownEnum1.xml +++ b/templates/dkcr/Enums/UnknownEnum1.xml @@ -1,58 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + UnknownEnum1 + 0x0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/dkcr/Enums/UnknownEnum2.xml b/templates/dkcr/Enums/UnknownEnum2.xml index 823bf889..88c6a66b 100644 --- a/templates/dkcr/Enums/UnknownEnum2.xml +++ b/templates/dkcr/Enums/UnknownEnum2.xml @@ -1,11 +1,15 @@ - - - - - - - - - - + + + UnknownEnum2 + 0x0 + + + + + + + + + + diff --git a/templates/dkcr/Enums/UnknownEnum3.xml b/templates/dkcr/Enums/UnknownEnum3.xml index a9a604e2..c9b14ce3 100644 --- a/templates/dkcr/Enums/UnknownEnum3.xml +++ b/templates/dkcr/Enums/UnknownEnum3.xml @@ -1,7 +1,11 @@ - - - - - - + + + UnknownEnum3 + 0x0 + + + + + + diff --git a/templates/dkcr/Enums/UnknownEnum4.xml b/templates/dkcr/Enums/UnknownEnum4.xml index 5668009a..bac46424 100644 --- a/templates/dkcr/Enums/UnknownEnum4.xml +++ b/templates/dkcr/Enums/UnknownEnum4.xml @@ -1,7 +1,11 @@ - - - - - - + + + UnknownEnum4 + 0x0 + + + + + + diff --git a/templates/dkcr/MasterTemplate.xml b/templates/dkcr/MasterTemplate.xml deleted file mode 100644 index 41bafcb4..00000000 --- a/templates/dkcr/MasterTemplate.xml +++ /dev/null @@ -1,379 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/templates/dkcr/Script/AIHint.xml b/templates/dkcr/Script/AIHint.xml index b4127028..d14c9baa 100644 --- a/templates/dkcr/Script/AIHint.xml +++ b/templates/dkcr/Script/AIHint.xml @@ -1,36 +1,31 @@ - - AIHint - - - - 0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - enabled - enabled - - + + + AIHint + + + + 0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/dkcr/Script/AIKeyframe.xml b/templates/dkcr/Script/AIKeyframe.xml index d7e0274e..8ce1ae9d 100644 --- a/templates/dkcr/Script/AIKeyframe.xml +++ b/templates/dkcr/Script/AIKeyframe.xml @@ -1,46 +1,41 @@ - - AIKeyframe - - - - -1 - - - false - - - false - - - false - - - 0.0 - - - 8 - - - 1.0 - - - 0x8B3D86DC - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + AIKeyframe + + + + -1 + + + false + + + false + + + false + + + 0.0 + + + 8 + + + 1.0 + + + 0x8B3D86DC + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/AIWaypoint.xml b/templates/dkcr/Script/AIWaypoint.xml index c2ef4d49..18a177eb 100644 --- a/templates/dkcr/Script/AIWaypoint.xml +++ b/templates/dkcr/Script/AIWaypoint.xml @@ -1,32 +1,28 @@ - - AIWaypoint - - - - 1.0 - - - 1.0 - - - 0.0 - - - - - - - - - - - - - - script/common/AIWaypoint.CMDL - - enabled - enabled - - + + + AIWaypoint + + + + 1.0 + + + 1.0 + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/dkcr/Script/AVIS.xml b/templates/dkcr/Script/AVIS.xml index 5a07b53c..619f2242 100644 --- a/templates/dkcr/Script/AVIS.xml +++ b/templates/dkcr/Script/AVIS.xml @@ -1,24 +1,19 @@ - - AVIS - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + AVIS + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/Acoustics.xml b/templates/dkcr/Script/Acoustics.xml index f74dc8e9..e15945e5 100644 --- a/templates/dkcr/Script/Acoustics.xml +++ b/templates/dkcr/Script/Acoustics.xml @@ -1,158 +1,73 @@ - - Acoustics - - - - false - - - false - - - false - - - true - - - true - - - 1.0 - - - 0x15C2A4E5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0xC4CB1DA9 - - - - - - - - - - - - - 0.0 - - - 0.0 - - - 0x00EDE964 - - - - - - - - - - - 0.01 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - - - 0.5 - enabled - volume - - - + + + Acoustics + + + + false + + + false + + + false + + + true + + + true + + + 1.0 + + + 0x15C2A4E5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + 0.5 + BoxShape + diff --git a/templates/dkcr/Script/Actor.xml b/templates/dkcr/Script/Actor.xml index 5ed234da..0f49f7fd 100644 --- a/templates/dkcr/Script/Actor.xml +++ b/templates/dkcr/Script/Actor.xml @@ -1,112 +1,128 @@ - - Actor - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - 1.0 - - - 0.0 - - - - - - - - - - true - - - true - - - true - - - false - - - false - - - - 0 - - - 0.0 - - - false - - - false - - - false - - - false - - - false - - - true - - - false - - - 1.0, 1.0, 1.0, 1.0 - - - - false - - - false - - - 0.0 - - - 1.0 - - - false - - - - - - - - - - - - - - - - - 0xA244C9D8 - 0xC27FFA8F - 0x6C75E2EA:0xDAA9D4BE:0x5405F708 - 0x6C75E2EA:0xF361604C:0x5405F708 - 0x6C75E2EA:0x5D09F1DD:0x5405F708 - 0x0FC966DC - - enabled - enabled - - + + + Actor + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + 1.0 + + + 0.0 + + + + + + CMDL + + + + + DCLN + + + + + + + true + + + true + + + true + + + false + + + false + + + + 0 + + + 0.0 + + + false + + + false + + + false + + + false + + + false + + + true + + + false + + + + 1.0 + 1.0 + 1.0 + + + + + false + + + false + + + 0.0 + + + 1.0 + + + false + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + diff --git a/templates/dkcr/Script/ActorAnimGridModifier.xml b/templates/dkcr/Script/ActorAnimGridModifier.xml index b9293f2c..4aa141f6 100644 --- a/templates/dkcr/Script/ActorAnimGridModifier.xml +++ b/templates/dkcr/Script/ActorAnimGridModifier.xml @@ -1,23 +1,18 @@ - - ActorAnimGridModifier - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ActorAnimGridModifier + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/ActorKeyframe.xml b/templates/dkcr/Script/ActorKeyframe.xml index 302867b8..b0dc9b7e 100644 --- a/templates/dkcr/Script/ActorKeyframe.xml +++ b/templates/dkcr/Script/ActorKeyframe.xml @@ -1,48 +1,43 @@ - - ActorKeyframe - - - - -1 - always - - - false - - - false - - - false - - - 0.0 - - - 8 - always - - - 1.0 - - - 0x8B3D86DC - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ActorKeyframe + + + + Always + -1 + + + false + + + false + + + false + + + 0.0 + + + Always + 8 + + + 1.0 + + + 0x8B3D86DC + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/ActorMultiKeyFrame.xml b/templates/dkcr/Script/ActorMultiKeyFrame.xml index 401316fd..7b8386b2 100644 --- a/templates/dkcr/Script/ActorMultiKeyFrame.xml +++ b/templates/dkcr/Script/ActorMultiKeyFrame.xml @@ -1,52 +1,21 @@ - - ActorMultiKeyframe - - - - false - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ActorMultiKeyframe + + + + false + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/ActorTransform.xml b/templates/dkcr/Script/ActorTransform.xml index bc5ace68..b1e8c907 100644 --- a/templates/dkcr/Script/ActorTransform.xml +++ b/templates/dkcr/Script/ActorTransform.xml @@ -1,36 +1,31 @@ - - ActorTransform - - - - 20 - always - - - 10.0 - - - 0.0 - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ActorTransform + + + + Always + 20 + + + 10.0 + + + 0.0 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/AreaAttributes.xml b/templates/dkcr/Script/AreaAttributes.xml index de29f2aa..de404c11 100644 --- a/templates/dkcr/Script/AreaAttributes.xml +++ b/templates/dkcr/Script/AreaAttributes.xml @@ -1,41 +1,42 @@ - - AreaAttributes - - - - false - - - -1 - always - - - 1.0 - - - - true - - - false - - - - - - - - - - - - - - script/common/AreaAttributes.TXTR - - 0.5 - enabled - enabled - - + + + AreaAttributes + + + + Show the skybox. If no Skybox Model is specified, it will show the World's default skybox. + false + + + Always + -1 + + + 1.0 + + + + CMDL + + + + true + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/dkcr/Script/AreaDamage.xml b/templates/dkcr/Script/AreaDamage.xml index 6924ad96..00453301 100644 --- a/templates/dkcr/Script/AreaDamage.xml +++ b/templates/dkcr/Script/AreaDamage.xml @@ -1,39 +1,38 @@ - - AreaDamage - - - - - - - 2.0, 2.0, 2.0 - - - - - - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + AreaDamage + + + + + + + + 2.0 + 2.0 + 2.0 + + + + + + + + + 1.0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/AreaNode.xml b/templates/dkcr/Script/AreaNode.xml index 132f8480..e8a81c30 100644 --- a/templates/dkcr/Script/AreaNode.xml +++ b/templates/dkcr/Script/AreaNode.xml @@ -1,108 +1,92 @@ - - AreaNode - - - - false - - - false - - - false - - - 0x24E6FE6B - - - - - - - - - - - - - - - - 0 - Seems to affect the number displayed on the file select screen for "last completed stage" - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - - - - - - - - - - - - - - - - 0.0, 0.0, 0.0, 1.0 - - - 0.0, 0.0, 0.0, 1.0 - - - 0.0, 0.0, 0.0, 1.0 - - - 1.0, 1.0, 1.0, 1.0 - - - 0.0, 0.0, 0.0, 1.0 - - - 0.0, 0.0, 0.0, 1.0 - - - false - This property was likely used in debug builds. It is not read by the game and has no ingame effect. - - - - - - - - - - - - - - - - - - - - - - - 0xA244C9D8 - 0xB7CD213C - 0x9F93BC3F - 0x86963E8A:0x29463E36 - 0x86963E8A:0x103E9376 - - enabled - enabled - - + + + AreaNode + + + + false + + + false + + + false + + + 0x24E6FE6B + + + + + + + + + + + + + + + STRG + + + + + STRG + + + + Seems to affect the number displayed on the file select screen for "last completed stage" + 0 + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + DCLN + + + + + + + + + + MLVL + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + diff --git a/templates/dkcr/Script/AreaPath.xml b/templates/dkcr/Script/AreaPath.xml index 7cf27a28..82892c37 100644 --- a/templates/dkcr/Script/AreaPath.xml +++ b/templates/dkcr/Script/AreaPath.xml @@ -1,54 +1,66 @@ - - AreaPath - - - - - - - - 0x1F46814C - - - - - - - false - - - true - - - false - - - 0.5 - - - 0.5 - - - - - - - - - - - - - - - - - - - 0xC27FFA8F - - enabled - enabled - - + + + AreaPath + + + + + CMDL + + + + + + CMDL + + + + + 0x1F46814C + + + + + + + false + + + true + + + false + + + 0.5 + + + 0.5 + + + + + + PART + + + + + CAUD + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/dkcr/Script/AreaStreamedAudioState.xml b/templates/dkcr/Script/AreaStreamedAudioState.xml index 676e90dc..01422bb5 100644 --- a/templates/dkcr/Script/AreaStreamedAudioState.xml +++ b/templates/dkcr/Script/AreaStreamedAudioState.xml @@ -1,61 +1,56 @@ - - AreaStreamedAudioState - - - - 0xCBF698CA - - - false - - - false - - - false - - - 0.0 - - - 0.0 - - - false - - - 0.0 - - - 0.0 - - - false - - - 0.0 - - - 0.0 - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + AreaStreamedAudioState + + + + 0xCBF698CA + + + false + + + false + + + false + + + 0.0 + + + 0.0 + + + false + + + 0.0 + + + 0.0 + + + false + + + 0.0 + + + 0.0 + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/AudioOccluder.xml b/templates/dkcr/Script/AudioOccluder.xml index 5c4a9f7b..15c85d63 100644 --- a/templates/dkcr/Script/AudioOccluder.xml +++ b/templates/dkcr/Script/AudioOccluder.xml @@ -1,28 +1,23 @@ - - AudioOccluder - - - - 1.0 - - - 32000 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + AudioOccluder + + + + 1.0 + + + 32000 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/BarrelBalloon.xml b/templates/dkcr/Script/BarrelBalloon.xml index d436dd83..1248a93b 100644 --- a/templates/dkcr/Script/BarrelBalloon.xml +++ b/templates/dkcr/Script/BarrelBalloon.xml @@ -1,94 +1,22 @@ - - BarrelBalloon - - - - - - - - - - 3.0 - - - 1.0 - - - 1.0 - - - 2.5 - - - 0.5 - - - 1.0 - - - 1.0 - - - 3.0 - - - 1.5 - - - 2.2 - - - 0.2 - - - 0.5 - - - 0.5 - - - - 2.0 - - - 1.0 - - - 3.0 - - - 15.0 - - - 10.0 - - - 0 - - - - - - - - - - - - - - - - - - - - - 0x94F9C48D:0xF8B3ABE0 - - enabled - enabled - - + + + BarrelBalloon + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/dkcr/Script/BarrelCannon.xml b/templates/dkcr/Script/BarrelCannon.xml index bdff65ef..52398315 100644 --- a/templates/dkcr/Script/BarrelCannon.xml +++ b/templates/dkcr/Script/BarrelCannon.xml @@ -1,163 +1,93 @@ - - BarrelCannon - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - - - - - - - 200 - - - 20 - - - false - - - false - - - - - 262176 - - - - - 0.0, 0.15, 0.0 - - - 0.0 - - - 1800.0 - - - 30.0 - - - - - 1.5 - - - 3.0 - - - 1.0 - - - false - - - 0 - - - 0.15 - - - 0 - - - 21.0 - - - 0.0 - - - 1.05 - - - 0.2 - - - 0 - - - true - - - true - - - true - - - true - - - false - - - true - - - true - - - false - - - false - - - false - - - false - - - 0xA61445EB - - - 0x0009FA85 - - - - - false - - - - - 0.0 - - - true - - - 0.0 - - - - - - - - - - - - - - - - - 0xA3D63F44 - 0xC27FFA8F - - enabled - enabled - - + + + BarrelCannon + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + CMDL + + + + + + FSMC + + + + + + DCLN + + + + + 200 + + + 20 + + + false + + + false + + + + + 262176 + + + + + + 0.0 + 0.15000001 + 0.0 + + + + 0.0 + + + 1800.0 + + + 30.0 + + + + false + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/dkcr/Script/BeatUpHandler.xml b/templates/dkcr/Script/BeatUpHandler.xml index 9880afbb..3252428c 100644 --- a/templates/dkcr/Script/BeatUpHandler.xml +++ b/templates/dkcr/Script/BeatUpHandler.xml @@ -1,68 +1,18 @@ - - BeatUpHandler - - - - - - - - 0x6AD40029 - - - - - - - 0xE08296BA - - - - - 1.0 - - - 0.1 - - - 0.1 - - - false - - - false - - - false - - - 0.0 - - - 100 - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + BeatUpHandler + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/BirdBoss.xml b/templates/dkcr/Script/BirdBoss.xml index 2f5432f0..87cb0f30 100644 --- a/templates/dkcr/Script/BirdBoss.xml +++ b/templates/dkcr/Script/BirdBoss.xml @@ -1,161 +1,70 @@ - - BirdBoss - - RSO_BirdBoss.rso - - - - - - - - 0.0, 0.0, -90.0 - - - - - - - - - - - - 524322 - - - - - - - 1.0 - - - 20.0 - - - - - - - 1.0 - - - - - 1.0 - - - - - - - true - - - 4.0 - - - 55.0 - - - 10.0 - - - 6.0 - - - - 7.0 - - - 10.0 - - - 14.0 - - - 17.0 - - - 0.0 - - - 2.0 - - - -5.0 - - - -20.0 - - - 10.0 - - - 4.0 - - - 2.0 - - - - - - - 20.0 - - - 1.0 - - - - - - - - - - - - - - - - - 50.0 - - - 30.0 - - - 60.0 - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + RSO_BirdBoss.rso + + + BirdBoss + + + + + + + + 0.0 + 0.0 + -90.0 + + + + + + + + + + + + + 524322 + + + + + + + 1.0 + + + 20.0 + + + + + + + 1.0 + + + + + 1.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/dkcr/Script/BloomEffect.xml b/templates/dkcr/Script/BloomEffect.xml index 76cc1e8e..b782a392 100644 --- a/templates/dkcr/Script/BloomEffect.xml +++ b/templates/dkcr/Script/BloomEffect.xml @@ -1,34 +1,18 @@ - - BloomEffect - - - - - - - 0x0B7646F3 - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + BloomEffect + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/BloomVolume.xml b/templates/dkcr/Script/BloomVolume.xml index 16296108..ebbbc492 100644 --- a/templates/dkcr/Script/BloomVolume.xml +++ b/templates/dkcr/Script/BloomVolume.xml @@ -1,22 +1,17 @@ - - BloomVolume - - - - - - - - - - - - - - - - enabled - enabled - - + + + BloomVolume + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/dkcr/Script/BonusRoom.xml b/templates/dkcr/Script/BonusRoom.xml index 0dd8f379..43b9b949 100644 --- a/templates/dkcr/Script/BonusRoom.xml +++ b/templates/dkcr/Script/BonusRoom.xml @@ -1,34 +1,29 @@ - - BonusRoom - - - - false - - - false - - - 10.0 - - - 5.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + BonusRoom + + + + false + + + false + + + 10.0 + + + 5.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/BouncyTire.xml b/templates/dkcr/Script/BouncyTire.xml index 1a69a6ef..ab71026f 100644 --- a/templates/dkcr/Script/BouncyTire.xml +++ b/templates/dkcr/Script/BouncyTire.xml @@ -1,89 +1,22 @@ - - BouncyTire - - - - - - - - -1 - - - -1 - - - -1 - - - -1 - - - 3.1402 - - - - - 9.0 - - - 80.0 - - - 5.0 - - - 45.0 - - - - - - true - - - false - - - false - - - false - - - true - - - 0.0 - - - 0.0 - - - 2.0 - - - 2.0 - - - - - - - - - - - - - - - - - 0xC4D5BFDE:0xA3D63F44 - - enabled - enabled - - + + + BouncyTire + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/dkcr/Script/Cable.xml b/templates/dkcr/Script/Cable.xml index 223008ef..7907c5ae 100644 --- a/templates/dkcr/Script/Cable.xml +++ b/templates/dkcr/Script/Cable.xml @@ -1,161 +1,22 @@ - - Cable - - RSO_ScriptCable.rso - - - - - - - - - 0x2C8482EE - - - - - - - - 0xD6629DCA - - - - - - - 0xB9B7640F - - - - - - - - false - - - 10 - - - 4.0 - - - 4.0 - - - 0x80DD21B4 - - - 0x23363FD3 - - - 0x24CF38F1 - - - 1.0 - - - false - - - false - - - - - 0.0, 0.0, -50.0 - - - 8000.0 - - - 1.2 - - - 0.125 - - - 0.85 - - - 1.0 - - - 3000.0 - - - 0.5 - - - 5.0 - - - - false - - - false - - - true - - - false - - - true - - - 0x902E534E - - - - - - - - 0.0, 0.0, 1.0 - - - 0.0 - - - - - 0.0 - - - 15.0 - - - 0.0167 - - - 0x23363FD3 - - - - - - - - - - - - - - - - - - - - - enabled - enabled - - + + + RSO_ScriptCable.rso + + + Cable + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + diff --git a/templates/dkcr/Script/CameraBlurKeyframe.xml b/templates/dkcr/Script/CameraBlurKeyframe.xml index 3f0d5739..15299122 100644 --- a/templates/dkcr/Script/CameraBlurKeyframe.xml +++ b/templates/dkcr/Script/CameraBlurKeyframe.xml @@ -1,39 +1,35 @@ - - CameraBlurKeyframe - - - - 0 - - - 0.0 - - - 0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - script/common/CameraBlurKeyframe.TXTR - - 0.5 - enabled - enabled - - + + + CameraBlurKeyframe + + + + 0 + + + 0.0 + + + 0 + + + 0.0 + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/dkcr/Script/CameraFilterKeyframe.xml b/templates/dkcr/Script/CameraFilterKeyframe.xml index 5e805294..b40118ef 100644 --- a/templates/dkcr/Script/CameraFilterKeyframe.xml +++ b/templates/dkcr/Script/CameraFilterKeyframe.xml @@ -1,50 +1,58 @@ - - CameraFilterKeyframe - - - - 0 - - - 0 - - - 0 - - - 0 - - - 1.0, 1.0, 1.0, 1.0 - - - 0.0 - - - 0.0 - - - - - false - - - - - - - - - - - - - - script/common/CameraFilterKeyframe.TXTR - - 0.5 - enabled - enabled - - + + + CameraFilterKeyframe + + + + 0 + + + 0 + + + 0 + + + 0 + + + + 1.0 + 1.0 + 1.0 + + + + 0.0 + + + 0.0 + + + + TXTR + + + + + CMDL + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/dkcr/Script/CameraHint.xml b/templates/dkcr/Script/CameraHint.xml index 238eb532..a58dbf63 100644 --- a/templates/dkcr/Script/CameraHint.xml +++ b/templates/dkcr/Script/CameraHint.xml @@ -1,254 +1,40 @@ - - CameraHint - - - - 50 - - - 0.0 - - - 1610905732 - always - - - - - 1 - always - - - - - - - 0x62C2ABD5 - - - - - - - 0xAF3945DE - - - - - - - - - false - - - false - - - false - - - false - - - - - - - - - 0 - always - - - - - - - 0x34FBB53B - - - - - - - - - - false - - - - 0xB1059189 - - - - - - - - - - - - - - - true - - - - 4.0 - - - 9.0 - - - 1.0 - - - 4.25 - - - 12.0 - - - - - - - - - - - - - - - 0xA93DE248 - - - - - - - - 0 - always - - - 0x0D2CFE11 - - - - - - - - 60.0 - - - - - - - - - - - false - - - true - - - 2.0 - - - false - - - - - - - - true - - - false - - - 1.777 - - - false - - - - true - - - true - - - 1.5 - - - - - 0x0BCC8352 - - - - - 15.0 - - - 100.0 - - - - - - - - false - - - 30.5 - - - - - - - - - - 0.2 - - - 750.0 - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + CameraHint + + + + 50 + + + 0.0 + + + Always + 1610905732 + + + + + + + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/CameraManager.xml b/templates/dkcr/Script/CameraManager.xml index 48a559e3..ff7049c6 100644 --- a/templates/dkcr/Script/CameraManager.xml +++ b/templates/dkcr/Script/CameraManager.xml @@ -1,29 +1,18 @@ - - CameraManager - - - - - - false - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + CameraManager + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/CameraModifier.xml b/templates/dkcr/Script/CameraModifier.xml index d7fef735..8a13e8fa 100644 --- a/templates/dkcr/Script/CameraModifier.xml +++ b/templates/dkcr/Script/CameraModifier.xml @@ -1,40 +1,18 @@ - - CameraModifier - - - - - - 0xE56D8C03 - - - - - - - - - - - false - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + CameraModifier + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/CameraShaker.xml b/templates/dkcr/Script/CameraShaker.xml index 05d24d32..a5a82305 100644 --- a/templates/dkcr/Script/CameraShaker.xml +++ b/templates/dkcr/Script/CameraShaker.xml @@ -1,48 +1,27 @@ - - CameraShaker - - - - - 1 - - - - - - - 528 - always - - - 5.0 - - - 1.0 - - - - - - - - - - - - - - - - - - - - script/common/CameraShaker.TXTR - - 0.5 - enabled - enabled - - + + + CameraShaker + + + + + 1 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/dkcr/Script/Checkpoint.xml b/templates/dkcr/Script/Checkpoint.xml index e72e34d7..dcddef25 100644 --- a/templates/dkcr/Script/Checkpoint.xml +++ b/templates/dkcr/Script/Checkpoint.xml @@ -1,43 +1,19 @@ - - Checkpoint - - - - - - true - - - false - - - 0 - always - - - 3.0 - - - true - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Checkpoint + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/CinematicCamera.xml b/templates/dkcr/Script/CinematicCamera.xml index d174c85f..d25c5dee 100644 --- a/templates/dkcr/Script/CinematicCamera.xml +++ b/templates/dkcr/Script/CinematicCamera.xml @@ -1,133 +1,129 @@ - - CinematicCamera - - - - - 0x85F15E1D - - - - - - - false - - - - 0x639D1F97 - - - - - - - - - 10.0 - - - 133236 - - - - - - - 0x26AD4A6B - - - 12 - - - - - 0x6DF9B393 - - - - - - - true - - - - - - - - - - - - 0 - - - - - 0x777171A8 - - - - - - - 0x355476D5 - - - - - - - 0x2A1B6DFE - - - - - 0 - - - - - 0x777171A8 - - - - - - - 0x355476D5 - - - - - - - 0x2A1B6DFE - - - - - - - - - - - - - - - - - - - - script/common/Camera.CMDL - - enabled - enabled - - + + + CinematicCamera + + + + + 0x85F15E1D + + + + + + + false + + + + 0x639D1F97 + + + + + + + + + 10.0 + + + 133236 + + + + + + + 0x26AD4A6B + + + 12 + + + + + 0x6DF9B393 + + + + + + + true + + + + + + + + + + + + 0 + + + + + 0x777171A8 + + + + + + + 0x355476D5 + + + + + + + 0x2A1B6DFE + + + + + 0 + + + + + 0x777171A8 + + + + + + + 0x355476D5 + + + + + + + 0x2A1B6DFE + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/dkcr/Script/ClingPathControl.xml b/templates/dkcr/Script/ClingPathControl.xml index 65caa4ca..ccfaaf2e 100644 --- a/templates/dkcr/Script/ClingPathControl.xml +++ b/templates/dkcr/Script/ClingPathControl.xml @@ -1,56 +1,31 @@ - - ClingPathControl - - - - 0 - always - - - - - - - - 0xF0F41378 - - - - - false - - - 0.0 - - - 0x2AEDDF04 - - - - - - - - - - 1.0, 1.0, 1.0, 1.0 - This property isn't read by the game and has no ingame effect. - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ClingPathControl + + + + Always + 0 + + + + + This property isn't read by the game and has no ingame effect. + + 1.0 + 1.0 + 1.0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/ColorModulate.xml b/templates/dkcr/Script/ColorModulate.xml index ccf78f2a..f9bbda18 100644 --- a/templates/dkcr/Script/ColorModulate.xml +++ b/templates/dkcr/Script/ColorModulate.xml @@ -1,82 +1,87 @@ - - ColorModulate - - - - 1.0, 1.0, 1.0, 0.0 - - - 1.0, 1.0, 1.0, 1.0 - - - 0xE51B07EB - - - - - - - - - - - - 1.0 - - - 1.0 - - - false - - - false - - - true - - - true - - - false - - - false - - - true - - - false - - - false - - - false - - - false - - - - - - - - - - - - - - - script/common/ColorModulate.TXTR - - 0.5 - enabled - enabled - - + + + ColorModulate + + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + + 1.0 + 1.0 + 1.0 + + + + 0xE51B07EB + + + + + + + + + + + + 1.0 + + + 1.0 + + + false + + + false + + + true + + + true + + + false + + + false + + + true + + + false + + + false + + + false + + + false + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/dkcr/Script/ConditionalRelay.xml b/templates/dkcr/Script/ConditionalRelay.xml index d35b32b4..0670ae52 100644 --- a/templates/dkcr/Script/ConditionalRelay.xml +++ b/templates/dkcr/Script/ConditionalRelay.xml @@ -1,49 +1,45 @@ - - ConditionalRelay - - - - false - - - - - - 0 - - - - - - - 0 - - - - - - - 0 - - - - - - - - - - - - - - - - script/common/ConditionalRelay.TXTR - - 0.5 - enabled - enabled - - + + + ConditionalRelay + + + + false + + + + + + 0x0 + + + + + + + 0x0 + + + + + + + 0x0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/dkcr/Script/ControllerAction.xml b/templates/dkcr/Script/ControllerAction.xml index 0b75689a..1fa400e4 100644 --- a/templates/dkcr/Script/ControllerAction.xml +++ b/templates/dkcr/Script/ControllerAction.xml @@ -1,36 +1,31 @@ - - ControllerAction - - - - - - false - - - false - - - false - - - 0.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ControllerAction + + + + + + false + + + false + + + false + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/Counter.xml b/templates/dkcr/Script/Counter.xml index 4c1f2b6a..805fcaa9 100644 --- a/templates/dkcr/Script/Counter.xml +++ b/templates/dkcr/Script/Counter.xml @@ -1,70 +1,33 @@ - - Counter - - - - 0 - - - 4 - - - false - - - false - - - - - 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - 9 - - - 10 - - - - - - - - - - - - - - - - script/common/Counter.TXTR - - 0.5 - enabled - enabled - - + + + Counter + + + + 0 + + + 4 + + + false + + + false + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/dkcr/Script/CreditsScreen.xml b/templates/dkcr/Script/CreditsScreen.xml index 6ceb9f55..f2b13a0e 100644 --- a/templates/dkcr/Script/CreditsScreen.xml +++ b/templates/dkcr/Script/CreditsScreen.xml @@ -1,83 +1,18 @@ - - CreditsScreen - - - - - - 180.0 - - - 4 - - - 0.25 - - - 0.25 - - - 1.0 - - - 2.0 - - - 1.0 - - - 0.25 - - - 0.25 - - - 0.25 - - - 0.25 - - - - - - - - - - - 4.0 - - - 0.25 - - - 0.25 - - - - - - - 0.25 - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + CreditsScreen + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/CustomInterpolation.xml b/templates/dkcr/Script/CustomInterpolation.xml index 1806c27e..5679c596 100644 --- a/templates/dkcr/Script/CustomInterpolation.xml +++ b/templates/dkcr/Script/CustomInterpolation.xml @@ -1,35 +1,30 @@ - - CustomInterpolation - - - - 3 - always - - - 100.0 - - - 135.0 - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + CustomInterpolation + + + + Always + 3 + + + 100.0 + + + 135.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/DamageArea.xml b/templates/dkcr/Script/DamageArea.xml index fd6dffeb..faa16abf 100644 --- a/templates/dkcr/Script/DamageArea.xml +++ b/templates/dkcr/Script/DamageArea.xml @@ -1,23 +1,18 @@ - - DamageArea - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + DamageArea + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/DamageEffect.xml b/templates/dkcr/Script/DamageEffect.xml index 8ef40b14..6f278dbd 100644 --- a/templates/dkcr/Script/DamageEffect.xml +++ b/templates/dkcr/Script/DamageEffect.xml @@ -1,23 +1,18 @@ - - DamageEffect - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + DamageEffect + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/DamageableTrigger.xml b/templates/dkcr/Script/DamageableTrigger.xml index bc52603d..4876597e 100644 --- a/templates/dkcr/Script/DamageableTrigger.xml +++ b/templates/dkcr/Script/DamageableTrigger.xml @@ -1,35 +1,32 @@ - - DamageableTrigger - - - - - - false - - - 0x1DB35D5F - - - false - - - - - - - - - - - - - - script/common/DamageableTrigger.TXTR - - enabled - volume - - - + + + DamageableTrigger + + + + + + false + + + 0x1DB35D5F + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + ScaleVolume + AxisAlignedBoxShape + diff --git a/templates/dkcr/Script/DamageableTriggerOrientated.xml b/templates/dkcr/Script/DamageableTriggerOrientated.xml index 570502ff..bcb69124 100644 --- a/templates/dkcr/Script/DamageableTriggerOrientated.xml +++ b/templates/dkcr/Script/DamageableTriggerOrientated.xml @@ -1,31 +1,27 @@ - - DamageableTriggerOrientated - - - - - - false - - - 0x1DB35D5F - - - - - - - - - - - - - - - enabled - volume - - - + + + DamageableTriggerOrientated + + + + + + false + + + 0x1DB35D5F + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + BoxShape + diff --git a/templates/dkcr/Script/Debris.xml b/templates/dkcr/Script/Debris.xml index 7888ef58..834a4858 100644 --- a/templates/dkcr/Script/Debris.xml +++ b/templates/dkcr/Script/Debris.xml @@ -1,227 +1,28 @@ - - Debris - - - - - false - - - - - - - - 180.0 - - - 180.0 - - - 0.0, 0.0, 1.0 - - - 0.0, 0.0, 0.0 - - - true - - - 5.0 - - - 15.0 - - - -1.0, -1.0, -1.0 - - - 1.0, 1.0, 1.0 - - - 2.0 - - - 3.0 - - - 0.0 - - - 10.0 - - - 80.0 - - - 1.0, 1.0, 1.0, 0.0 - - - 1.0, 1.0, 1.0, 1.0 - - - 1.0, 1.0, 1.0, 0.0 - - - false - - - false - - - 80.0 - - - 1.0, 1.0, 1.0 - - - 0.375 - - - 0.1 - - - 25.0 - - - 1.0 - - - - 0.0, 0.0, 0.0 - - - - - 1 - - - 1.0 - - - 1.0 - - - 0.1 - - - 0.1 - - - 0.1 - - - 0.1 - - - 0.1 - - - - 1.0, 1.0, 1.0 - - - false - - - false - - - true - - - - - 1.0, 1.0, 1.0 - - - false - - - false - - - true - - - - - 1.0, 1.0, 1.0 - - - - true - - - true - - - false - - - false - - - 0 - - - false - - - false - - - 1.0 - - - 1.0 - - - false - - - true - - - false - - - false - - - false - - - true - - - false - - - true - - - false - - - - - - - - - - - - - - - - - 0x8A1C821D:0xC27FFA8F - - enabled - enabled - - + + + Debris + + + + + false + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/dkcr/Script/DepthOfFieldTuner.xml b/templates/dkcr/Script/DepthOfFieldTuner.xml index c8ffd5a0..089540c7 100644 --- a/templates/dkcr/Script/DepthOfFieldTuner.xml +++ b/templates/dkcr/Script/DepthOfFieldTuner.xml @@ -1,52 +1,18 @@ - - DepthOfFieldTuner - - - - - - false - - - false - - - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 30.0 - - - 0 - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + DepthOfFieldTuner + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/DistanceFog.xml b/templates/dkcr/Script/DistanceFog.xml index ab6bb364..06cab0b4 100644 --- a/templates/dkcr/Script/DistanceFog.xml +++ b/templates/dkcr/Script/DistanceFog.xml @@ -1,71 +1,77 @@ - - DistanceFog - - - - - false - - - - - 0xD863C36B - - - - - - 0 - - - 0.0, 0.0, 0.0, 0.0 - - - 30.0 - - - 100.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - false - - - false - - - 0.0, 0.0, 0.0, 0.0 - - - - 0.0 - - - - - - - - - - - - - - - script/common/DistanceFog.TXTR - - 0.5 - enabled - enabled - - + + + DistanceFog + + + + + false + + + + + 0xD863C36B + + + + + + 0 + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + 30.0 + + + 100.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + false + + + false + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + 0.0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/dkcr/Script/DynamicLight.xml b/templates/dkcr/Script/DynamicLight.xml index 4e418de6..68aa85da 100644 --- a/templates/dkcr/Script/DynamicLight.xml +++ b/templates/dkcr/Script/DynamicLight.xml @@ -1,131 +1,34 @@ - - DynamicLight - - - - 2 - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - - - true - - - true - - - - - 1.0, 1.0, 1.0, 1.0 - - - - - - 0.0 - - - false - - - - - - - 0 - - - - 0.0 - - - false - - - - - - - - 0.0 - - - false - - - - - - - false - - - - - 10.0 - - - - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - - false - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + DynamicLight + + + + 2 + + + + + + 1.0 + 1.0 + 1.0 + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/EOLDisplay.xml b/templates/dkcr/Script/EOLDisplay.xml index df5aa8ce..cc746b3b 100644 --- a/templates/dkcr/Script/EOLDisplay.xml +++ b/templates/dkcr/Script/EOLDisplay.xml @@ -1,28 +1,23 @@ - - EOLDisplay - - - - false - - - 0xB22FD89B - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + EOLDisplay + + + + false + + + 0xB22FD89B + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/Effect.xml b/templates/dkcr/Script/Effect.xml index 3c071b19..bd663959 100644 --- a/templates/dkcr/Script/Effect.xml +++ b/templates/dkcr/Script/Effect.xml @@ -1,86 +1,88 @@ - - Effect - - - - - true - - - false - - - false - - - false - - - true - - - false - - - false - - - false - - - 0xEC834AD1 - - - - - - - - - false - - - false - - - - - 10.0 - - - false - - - false - - - false - - - 0.0 - - - 3 - - - false - - - - - - - - - - - - - - script/common/Effect.TXTR - - enabled - enabled - - + + + Effect + + + + + PART + SPSC + SWHC + + + + true + + + false + + + false + + + false + + + true + + + false + + + false + + + false + + + 0xEC834AD1 + + + + + + + + + false + + + false + + + + + 10.0 + + + false + + + false + + + false + + + 0.0 + + + 3 + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/dkcr/Script/EnvFxDensityController.xml b/templates/dkcr/Script/EnvFxDensityController.xml index 9bc9d147..dc849963 100644 --- a/templates/dkcr/Script/EnvFxDensityController.xml +++ b/templates/dkcr/Script/EnvFxDensityController.xml @@ -1,28 +1,23 @@ - - EnvFxDensityController - - - - 0.5 - - - 500 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + EnvFxDensityController + + + + 0.5 + + + 500 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/FactorySwitch.xml b/templates/dkcr/Script/FactorySwitch.xml index 2617af6a..420dd57f 100644 --- a/templates/dkcr/Script/FactorySwitch.xml +++ b/templates/dkcr/Script/FactorySwitch.xml @@ -1,47 +1,55 @@ - - FactorySwitch - - - - - - false - - - 0.6 - - - - - - - false - - - 0.0, 0.0, 0.0 - - - false - - - - - - - - - - - - - - - - 0x6CA453B1 - 0xB6D34CBE - - enabled - enabled - - + + + FactorySwitch + + + + + CMDL + + + + + CMDL + + + + false + + + 0.60000002 + + + + + + + false + + + + 0.0 + 0.0 + 0.0 + + + + false + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/dkcr/Script/FalsePerspective.xml b/templates/dkcr/Script/FalsePerspective.xml index 768eb39b..f8a9beaf 100644 --- a/templates/dkcr/Script/FalsePerspective.xml +++ b/templates/dkcr/Script/FalsePerspective.xml @@ -1,34 +1,29 @@ - - FalsePerspective - - - - 0.001 - - - 20.0 - - - 8192.0 - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + FalsePerspective + + + + 0.001 + + + 20.0 + + + 8192.0 + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/FogOverlay.xml b/templates/dkcr/Script/FogOverlay.xml index b212c63c..8bbe246f 100644 --- a/templates/dkcr/Script/FogOverlay.xml +++ b/templates/dkcr/Script/FogOverlay.xml @@ -1,67 +1,71 @@ - - FogOverlay - - - - 1.0 - - - 1.0 - - - 1.0 - - - false - - - 1.0, 1.0, 1.0, 0.0 - - - 0.5 - - - 0.2 - - - 0.1 - - - 0.1 - - - 1.0 - - - 1.0 - - - 0.0, 0.0, 0.0 - - - 0.1 - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + FogOverlay + + + + 1.0 + + + 1.0 + + + 1.0 + + + false + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + 0.5 + + + 0.2 + + + 0.1 + + + 0.1 + + + 1.0 + + + 1.0 + + + + 0.0 + 0.0 + 0.0 + + + + 0.1 + + + 1.0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/FogVolume.xml b/templates/dkcr/Script/FogVolume.xml index 6405b313..b6841bf8 100644 --- a/templates/dkcr/Script/FogVolume.xml +++ b/templates/dkcr/Script/FogVolume.xml @@ -1,40 +1,43 @@ - - FogVolume - - - - - - - 2.0, 2.0, 2.0 - - - - - - - 0.0 - - - 1.0 - - - 1.0, 1.0, 1.0, 1.0 - - - - - - - - - - - - - - enabled - enabled - - + + + FogVolume + + + + + + + + 2.0 + 2.0 + 2.0 + + + + + + + + 0.0 + + + 1.0 + + + + 1.0 + 1.0 + 1.0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/dkcr/Script/ForestBoss.xml b/templates/dkcr/Script/ForestBoss.xml index 1ba1a697..7e484a91 100644 --- a/templates/dkcr/Script/ForestBoss.xml +++ b/templates/dkcr/Script/ForestBoss.xml @@ -1,109 +1,72 @@ - - ForestBoss - - RSO_ForestBoss.rso - - - - - - - - 0.0, 0.0, -90.0 - - - - - - - - - - - - 524322 - - - - - - - 1.0 - - - 20.0 - - - - - - - 1.0 - - - - - 1.0 - - - - - - - - - - 1.5 - - - 10.0 - - - 10.0 - - - 1.0 - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x4ACC5921:0x645FFAD4:0x63F77B98:0xB3774750:0xA244C9D8 - 0x4ACC5921:0x645FFAD4:0x8561E02D:0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + RSO_ForestBoss.rso + + + ForestBoss + + + + + + + + 0.0 + 0.0 + -90.0 + + + + + + + + + + + + + 524322 + + + + + + + 1.0 + + + 20.0 + + + + + + + 1.0 + + + + + 1.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/dkcr/Script/GPTR.xml b/templates/dkcr/Script/GPTR.xml index f6b48d57..08319bb9 100644 --- a/templates/dkcr/Script/GPTR.xml +++ b/templates/dkcr/Script/GPTR.xml @@ -1,22 +1,17 @@ - - GPTR - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + GPTR + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/GameManager.xml b/templates/dkcr/Script/GameManager.xml index aba98e4c..6f3da23c 100644 --- a/templates/dkcr/Script/GameManager.xml +++ b/templates/dkcr/Script/GameManager.xml @@ -1,36 +1,18 @@ - - GameManager - - - - - - 0xAC6FE62C - - - - - - - 0.5 - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + GameManager + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/GameOverDisplay.xml b/templates/dkcr/Script/GameOverDisplay.xml index 6cc7c360..1e395153 100644 --- a/templates/dkcr/Script/GameOverDisplay.xml +++ b/templates/dkcr/Script/GameOverDisplay.xml @@ -1,22 +1,17 @@ - - GameOverDisplay - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + GameOverDisplay + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/GeneratedObjectDeleter.xml b/templates/dkcr/Script/GeneratedObjectDeleter.xml index b5b048a6..5625934d 100644 --- a/templates/dkcr/Script/GeneratedObjectDeleter.xml +++ b/templates/dkcr/Script/GeneratedObjectDeleter.xml @@ -1,35 +1,24 @@ - - GeneratedObjectDeleter - - - - - false - - - - - - - true - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + GeneratedObjectDeleter + + + + + false + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/Generator.xml b/templates/dkcr/Script/Generator.xml index 425ca8a5..f53c6c04 100644 --- a/templates/dkcr/Script/Generator.xml +++ b/templates/dkcr/Script/Generator.xml @@ -1,63 +1,63 @@ - - Generator - - - - 1 - - - 1 - - - true - - - false - - - false - - - false - - - false - - - true - - - true - - - 0.0, 0.0, 0.0 - - - false - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - script/common/Generator.TXTR - - 0.5 - enabled - enabled - - + + + Generator + + + + 1 + + + 1 + + + true + + + false + + + false + + + false + + + false + + + true + + + true + + + + 0.0 + 0.0 + 0.0 + + + + false + + + 1.0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/dkcr/Script/GenericCreature.xml b/templates/dkcr/Script/GenericCreature.xml index 1bc0077f..bc284efb 100644 --- a/templates/dkcr/Script/GenericCreature.xml +++ b/templates/dkcr/Script/GenericCreature.xml @@ -1,642 +1,71 @@ - - GenericCreature - - - - - - - 0.0, 0.0, 90.0 - - - - - - - - - - - - - 656426 - - - 524304 - - - - - - - 1.0 - - - - - - - 1.0 - - - - - 1.0 - - - - - - - 0x0DDB5F41 - - - - - - - - - - 0.1 - - - false - - - false - - - false - - - false - - - 0.0 - - - 0.0 - - - 1.0 - - - false - - - 55.0 - - - true - - - false - - - false - - - false - - - 60.0 - - - 720.0 - - - 2.0 - - - 9.0 - - - 1.5 - - - 0.75 - - - 6 - - - true - - - false - - - 0.0 - - - 0 - - - 0 - - - false - - - true - - - false - - - false - - - false - - - 0x935593F7 - - - - - - - - false - - - false - - - false - - - false - - - false - - - 0.5 - - - - true - - - false - - - 1.0 - - - false - - - true - - - false - - - - - 0 - - - - - - - - - - - - true - - - false - - - true - - - true - - - true - - - false - - - true - - - false - - - 0xA5993091 - - - - - - - - 10.0 - - - 15.0 - - - 25.0 - - - 5.0 - - - false - - - 0.0 - - - 0.0 - - - false - - - 4.0 - always - - - - - - - 0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - 0 - - - 1.0 - - - 2.0 - - - 3.0 - - - 4.0 - - - 5.0 - - - - - - - 10.6062, 21.2127, 18.372 - - - 1.5, 21.2127, 18.372 - - - 0.0, 13.0, 0.0 - - - 0.0, 15.0, 0.0 - - - - - - - 0 - - - - - - - - - - - - 0 - - - - - - - - - - - - - false - - - false - - - false - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - - - - - - - - - - - false - - - - - 0.0 - - - - - false - - - false - - - - - - - - - - - - - - 0xCD3D7CB1 - - - - - - - 0xA819961D - - - - - - - 0xC58D26AF - - - - - - - 0xA177EB37 - - - - - - - 0xC53C3ED5 - - - - - - - - - - - 0 - always - - - - - - - - 0xD4E949F7 - - - - - - - - - - - -1.0 - - - 1.0 - - - -1.0 - - - 1.0 - - - - - - - -1 - - - -1 - - - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - - - 0x87251F5B - - - - - - - 10.0 - - - - 0.25 - - - 5.0 - - - - - - - 1.0 - - - 0xC01248C8 - - - - - - - - 0.0 - - - 0.0625 - - - true - - - 4 - - - 0.0 - - - 0.5 - - - 0.25 - - - 0.75 - - - - - - - - - 0.0 - - - - - 0 - - - - - - - 0 - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + GenericCreature + + + + + + + + 0.0 + 0.0 + 90.0 + + + + + + + + + + + + + + 656426 + + + 524304 + + + + + + + 1.0 + + + + + + + 1.0 + + + + + 1.0 + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/dkcr/Script/GenericCreatureGroup.xml b/templates/dkcr/Script/GenericCreatureGroup.xml index e2b12046..f697fa84 100644 --- a/templates/dkcr/Script/GenericCreatureGroup.xml +++ b/templates/dkcr/Script/GenericCreatureGroup.xml @@ -1,32 +1,18 @@ - - GenericCreatureGroup - - - - - - true - - - true - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + GenericCreatureGroup + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/GroundPoundDetector.xml b/templates/dkcr/Script/GroundPoundDetector.xml index bb67d15e..0fd6d122 100644 --- a/templates/dkcr/Script/GroundPoundDetector.xml +++ b/templates/dkcr/Script/GroundPoundDetector.xml @@ -1,72 +1,52 @@ - - GroundPoundDetector - - - - - - - 2.0, 2.0, 2.0 - - - - - - - - - false - - - - - 0x482B22F1 - - - - - 0.0, 0.0, 0.0 - - - 5.0 - - - 5.0 - - - false - - - false - - - false - - - false - - - - - - - - - - - - - - - - enabled - volume - - - - - - - - + + + GroundPoundDetector + + + + + + + + 2.0 + 2.0 + 2.0 + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + ConditionalShape + 0xE809B3A0:0xBB2C54E1:0x09ECEE0C + + + 1210786545 + BoxShape + + + 2006824261 + BoxShape + + + -2087520796 + EllipsoidShape + + + 971864974 + CylinderShape + + + diff --git a/templates/dkcr/Script/GuiCharacter.xml b/templates/dkcr/Script/GuiCharacter.xml index 73a28958..9d9b4ef6 100644 --- a/templates/dkcr/Script/GuiCharacter.xml +++ b/templates/dkcr/Script/GuiCharacter.xml @@ -1,115 +1,110 @@ - - GuiCharacter - - - - - - - - - -1 - always - - - -1 - always - - - -1 - always - - - -1 - always - - - -1 - always - - - -1 - always - - - -1 - always - - - -1 - always - - - -1 - always - - - -1 - always - - - -1 - always - - - -1 - always - - - -1 - always - - - -1 - always - - - -1 - always - - - -1 - always - - - -1 - always - - - -1 - always - - - -1 - always - - - -1 - always - - - -1 - always - - - -1 - always - - - - - - - - - - - - - - - enabled - enabled - - + + + GuiCharacter + + + + + + + + + Always + -1 + + + Always + -1 + + + Always + -1 + + + Always + -1 + + + Always + -1 + + + Always + -1 + + + Always + -1 + + + Always + -1 + + + Always + -1 + + + Always + -1 + + + Always + -1 + + + Always + -1 + + + Always + -1 + + + Always + -1 + + + Always + -1 + + + Always + -1 + + + Always + -1 + + + Always + -1 + + + Always + -1 + + + Always + -1 + + + Always + -1 + + + Always + -1 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + diff --git a/templates/dkcr/Script/GuiMenu.xml b/templates/dkcr/Script/GuiMenu.xml index ba380c51..2847b5ef 100644 --- a/templates/dkcr/Script/GuiMenu.xml +++ b/templates/dkcr/Script/GuiMenu.xml @@ -1,37 +1,32 @@ - - GuiMenu - - - - - true - - - true - - - true - - - true - - - true - - - - - - - - - - - - - - enabled - enabled - - + + + GuiMenu + + + + + true + + + true + + + true + + + true + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/dkcr/Script/GuiSlider.xml b/templates/dkcr/Script/GuiSlider.xml index 40db97e2..ce297c1a 100644 --- a/templates/dkcr/Script/GuiSlider.xml +++ b/templates/dkcr/Script/GuiSlider.xml @@ -1,44 +1,43 @@ - - GuiSlider - - - - - false - - - - - - 0.0 - - - 255.0 - - - 1.0 - - - 1.0 - - - - 127 - - - - - - - - - - - - - - enabled - enabled - - + + + GuiSlider + + + + + false + + + + + + 0.0 + + + 255.0 + + + 1.0 + + + 1.0 + + + + CAUD + + + + 127 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/dkcr/Script/GuiWidget.xml b/templates/dkcr/Script/GuiWidget.xml index 75a39ee0..65a44d13 100644 --- a/templates/dkcr/Script/GuiWidget.xml +++ b/templates/dkcr/Script/GuiWidget.xml @@ -1,28 +1,23 @@ - - GuiWidget - - - - - false - - - - - - - - - - - - - - - - - enabled - enabled - - + + + GuiWidget + + + + + false + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/dkcr/Script/HUD.xml b/templates/dkcr/Script/HUD.xml index 4d59b91e..c919d65d 100644 --- a/templates/dkcr/Script/HUD.xml +++ b/templates/dkcr/Script/HUD.xml @@ -1,356 +1,28 @@ - - HUD - - - - - - - 0.25 - - - - 1.0 - - - 0.05 - - - 0.5 - - - 0.3 - - - - - 0.0625 - - - - - 0.3 - - - - 0.0, 0.0, 0.0, 1.0 - - - 0.0, 0.0, 0.0, 1.0 - - - 1.0, 1.0, 1.0, 1.0 - - - true - - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0.0 - - - 0.25 - - - 0.25 - - - 0.25 - - - 0.25 - - - 0.25 - - - 0.25 - - - 0.25 - - - 0.25 - - - 0.25 - - - 0.25 - - - 0.25 - - - 0.25 - - - 0.25 - - - 0.25 - - - 0.25 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0.0 - - - 0.25 - - - 0.25 - - - 0.25 - - - 0.25 - - - 0.25 - - - 0.25 - - - 0.25 - - - 0.25 - - - 0.25 - - - 0.25 - - - 0.25 - - - 0.25 - - - 0.25 - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0.25 - - - 0.25 - - - 0.25 - - - 0.25 - - - - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + HUD + + + + + + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/HUDProxy.xml b/templates/dkcr/Script/HUDProxy.xml index 0ff6df43..b4e7f690 100644 --- a/templates/dkcr/Script/HUDProxy.xml +++ b/templates/dkcr/Script/HUDProxy.xml @@ -1,22 +1,17 @@ - - HUDProxy - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + HUDProxy + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/IslandArea.xml b/templates/dkcr/Script/IslandArea.xml index 1727e3d7..a58a5436 100644 --- a/templates/dkcr/Script/IslandArea.xml +++ b/templates/dkcr/Script/IslandArea.xml @@ -1,121 +1,69 @@ - - IslandArea - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - - - - - - - 0x9DCDF5E0 - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - 30 - - - - - - - 10 - - - - - - - 20 - - - - - - - 7 - - - - - - - 20 - - - - - - - 40 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0xA244C9D8 - 0xC27FFA8F - - enabled - enabled - - + + + IslandArea + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + CMDL + + + + + DCLN + + + + + + + STRG + + + + + 0x9DCDF5E0 + + + + + + + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/dkcr/Script/IslandHUD.xml b/templates/dkcr/Script/IslandHUD.xml index 9049c7fb..4666682d 100644 --- a/templates/dkcr/Script/IslandHUD.xml +++ b/templates/dkcr/Script/IslandHUD.xml @@ -1,378 +1,44 @@ - - IslandHUD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5.0 - - - 10.0 - - - 10.0 - - - 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x0F94806A - 0xD02FB1A1 - 0xA74065CE - - enabled - enabled - - + + + IslandHUD + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + + + diff --git a/templates/dkcr/Script/JungleBoss1.xml b/templates/dkcr/Script/JungleBoss1.xml index dae18ec0..bd120834 100644 --- a/templates/dkcr/Script/JungleBoss1.xml +++ b/templates/dkcr/Script/JungleBoss1.xml @@ -1,218 +1,69 @@ - - JungleBoss1 - - RSO_UglyBros.rso - - - - - - - - 0.0, 0.0, 90.0 - - - - - - - - - - - - - 524322 - - - - - - - 1.0 - - - - - - - 1.0 - - - - - 1.0 - - - - - - - 0x3CD4A348 - - - - - - - - - false - - - - 0 - - - - - - - - - - - - - - - - - - - - 1 - - - 2.0 - - - 2.0 - - - 2.0 - - - 0 - - - 3 - - - 6 - - - false - - - false - - - - - - - - - - - - - false - - - - 1.0, 1.0, 1.0 - - - - - 1 - - - - - - - - 2.0 - - - - - - - 6.5 - - - 9.0 - - - 13.5 - - - 18.0 - - - 20.0 - - - 27.0 - - - - - 55.0 - - - 35.0 - - - 10 - - - 3.0 - - - 1.0 - - - 12.0 - - - 5.0 - - - 0.5 - - - 0.5 - - - 6.0 - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x16212198:0xCD9DE8CC:0xD90DAB09:0x28E076FD:0xC27FFA8F - - enabled - enabled - - + + + RSO_UglyBros.rso + + + JungleBoss1 + + + + + + + + 0.0 + 0.0 + 90.0 + + + + + + + + + + + + + + 524322 + + + + + + + 1.0 + + + + + + + 1.0 + + + + + 1.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/dkcr/Script/Kong.xml b/templates/dkcr/Script/Kong.xml index 2582fc68..7cd1ebdd 100644 --- a/templates/dkcr/Script/Kong.xml +++ b/templates/dkcr/Script/Kong.xml @@ -1,58 +1,45 @@ - - Kong - - - - - - - - - - - 1000.0 - - - - - 0.25 - - - - - - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - - - - - - - - - - - - - - - 0x43BBB1DD:0xA244C9D8 - 0x6F7438CF:0x9F1EF2F3:0x4D2FF46B:0x520EBB68 - 0x6F7438CF:0x9F1EF2F3:0x1EB5AFEF:0x520EBB68 - 0x6F7438CF:0x9F1EF2F3:0x991364AC:0x520EBB68 - 0x6F7438CF:0x98EFC863:0x005E3BE9:0x87B52F4C - 0x6F7438CF:0x98EFC863:0x44FF1EF1:0x87B52F4C - - enabled - enabled - - + + + Kong + + + + + + + + + + + 1000.0 + + + + + 0.25 + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + diff --git a/templates/dkcr/Script/KongProxy.xml b/templates/dkcr/Script/KongProxy.xml index 3f7a4efc..5a25c714 100644 --- a/templates/dkcr/Script/KongProxy.xml +++ b/templates/dkcr/Script/KongProxy.xml @@ -1,65 +1,32 @@ - - KongProxy - - - - - - - 2.0, 2.0, 2.0 - - - - - - - - - false - - - false - - - 0 - always - - - 0 - always - - - 0.5 - - - 1.0 - - - 9.0 - - - 20.0 - - - 32.0, 12.0, 24.0 - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + KongProxy + + + + + + + + 2.0 + 2.0 + 2.0 + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/LODController.xml b/templates/dkcr/Script/LODController.xml index 94d361c7..3acf4538 100644 --- a/templates/dkcr/Script/LODController.xml +++ b/templates/dkcr/Script/LODController.xml @@ -1,71 +1,66 @@ - - LODController - - RSO_ScriptLODController.rso - - - - - 1 - - - - 0.0 - - - - 0.0 - - - - 0.0 - - - - 0.0 - - - - 0.0 - - - - 0.0 - - - - 0.0 - - - - 0.0 - - - - 0.0 - - - - 0.0 - - - true - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RSO_ScriptLODController.rso + + + LODController + + + + 1 + + + + 0.0 + + + + 0.0 + + + + 0.0 + + + + 0.0 + + + + 0.0 + + + + 0.0 + + + + 0.0 + + + + 0.0 + + + + 0.0 + + + + 0.0 + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/LevelDarkener.xml b/templates/dkcr/Script/LevelDarkener.xml index 143bedf5..26e0545a 100644 --- a/templates/dkcr/Script/LevelDarkener.xml +++ b/templates/dkcr/Script/LevelDarkener.xml @@ -1,31 +1,30 @@ - - LevelDarkener - - - - 1.0 - - - 0.0, 0.0, 0.0, 1.0 - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + LevelDarkener + + + + 1.0 + + + + 0.0 + 0.0 + 0.0 + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/LightVolume.xml b/templates/dkcr/Script/LightVolume.xml index bffdbbb7..d0fa5bc8 100644 --- a/templates/dkcr/Script/LightVolume.xml +++ b/templates/dkcr/Script/LightVolume.xml @@ -1,27 +1,26 @@ - - LightVolume - - - - 1.0, 1.0, 1.0, 1.0 - - - 10 - - - - - - - - - - - - - - enabled - enabled - - + + + LightVolume + + + + + 1.0 + 1.0 + 1.0 + + + + 10 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/dkcr/Script/MEAT.xml b/templates/dkcr/Script/MEAT.xml index e119f6ac..3da11d89 100644 --- a/templates/dkcr/Script/MEAT.xml +++ b/templates/dkcr/Script/MEAT.xml @@ -1,31 +1,26 @@ - - MEAT - - - - 5000 - - - 5000 - - - 0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + MEAT + + + + 5000 + + + 5000 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/MemoryRelay.xml b/templates/dkcr/Script/MemoryRelay.xml index 6bae990d..55f34f2b 100644 --- a/templates/dkcr/Script/MemoryRelay.xml +++ b/templates/dkcr/Script/MemoryRelay.xml @@ -1,31 +1,27 @@ - - MemoryRelay - - - - - false - - - false - - - - - - - - - - - - - - script/common/MemoryRelay.TXTR - - 0.5 - enabled - enabled - - + + + MemoryRelay + + + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/dkcr/Script/MineCart.xml b/templates/dkcr/Script/MineCart.xml index a5d619f2..c04ac8cd 100644 --- a/templates/dkcr/Script/MineCart.xml +++ b/templates/dkcr/Script/MineCart.xml @@ -1,179 +1,55 @@ - - MineCart - - - - - - - 0.0, 0.0, -90.0 - - - - - - - - - 0.7 - - - 1.0 - - - - - - - - - - - - - - - 2.0 - - - 0.7 - - - 1.2 - - - 20.0 - - - 30.0 - - - 30.0 - - - 0.5 - - - 0.0 - - - 14.0 - - - 40.0 - - - true - - - false - - - true - - - true - - - true - - - false - - - true - - - true - - - 35.0 - - - 35.0 - - - 35.0 - - - false - - - 0.2 - - - 3.0 - - - 15.0 - - - true - - - - - - - - - - - - - 0 - - - - - - - - - 30.0 - - - 6.0 - - - -6.0 - - - 0.66 - - - 20.0 - - - 16.5 - - - 15.0, 0.0, 6.0 - - - 0.0 - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x98EFC863:0x005E3BE9:0x87B52F4C - 0x98EFC863:0x44FF1EF1:0x87B52F4C - - enabled - enabled - - + + + MineCart + + + + + + + + 0.0 + 0.0 + -90.0 + + + + + + + + + + 0.69999999 + + + 1.0 + + + + + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/dkcr/Script/Mole.xml b/templates/dkcr/Script/Mole.xml index f3db897c..587a84d3 100644 --- a/templates/dkcr/Script/Mole.xml +++ b/templates/dkcr/Script/Mole.xml @@ -1,142 +1,54 @@ - - Mole - - RSO_MoleTrain.rso - - - - - - - - - - 524322 - - - - - - - 1.0 - - - - - - - 1.0 - - - - - 1.0 - - - - - - - 0x503F6052 - - - - - - - 0.5 - - - - - - true - - - false - - - true - - - true - - - 3.5 - - - - - false - - - false - - - 1.0 - - - - - - - - - - - 2.0 - - - - - 3.0 - - - 2.0 - - - - - - - - 1.0 - - - - - - - - 2 - - - 0.25 - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + RSO_MoleTrain.rso + + + Mole + + + + + + + + + 524322 + + + + + + + 1.0 + + + + + + + 1.0 + + + + + 1.0 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/dkcr/Script/MoleCart.xml b/templates/dkcr/Script/MoleCart.xml index 3a1830de..776fc3a8 100644 --- a/templates/dkcr/Script/MoleCart.xml +++ b/templates/dkcr/Script/MoleCart.xml @@ -1,78 +1,80 @@ - - MoleCart - - RSO_MoleTrain.rso - - - - - - - - 0.0, 0.0, 90.0 - - - - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - - - - - - 0xAF8B265E - - - - - - - - - - 2.0 - - - - - - - - 2 - - - - - - - - - - - - - - - - - - - - - - 0xA3D63F44 - 0xB9FCDE3B:0xF387A160 - 0xC27FFA8F - - enabled - enabled - - + + + RSO_MoleTrain.rso + + + MoleCart + + + + + + + + 0.0 + 0.0 + 90.0 + + + + + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + + CMDL + + + + + DCLN + + + + + + FSMC + + + + 0xAF8B265E + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/dkcr/Script/MoleTrainManager.xml b/templates/dkcr/Script/MoleTrainManager.xml index a5ea44ae..6e7d6e24 100644 --- a/templates/dkcr/Script/MoleTrainManager.xml +++ b/templates/dkcr/Script/MoleTrainManager.xml @@ -1,121 +1,40 @@ - - MoleTrainManager - - RSO_MoleTrain.rso - - - - - - - - 4.0, 4.0, 4.0 - - - - - - - - - - 3.0 - - - 3.0 - - - - - 1 - - - - - - - - - - - - 1.0 - - - 0.5 - - - 10.0 - - - 2.5 - - - 1 - - - - - - - - - - - 1.0 - - - 0.66 - - - 0.25 - - - 2.0 - - - 1.25 - - - 2.0 - - - 0.5 - - - 0.25 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RSO_MoleTrain.rso + + + MoleTrainManager + + + + + + + + 4.0 + 4.0 + 4.0 + + + + + + + + + FSMC + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/MotionPlatform.xml b/templates/dkcr/Script/MotionPlatform.xml index c9961caf..8b162e02 100644 --- a/templates/dkcr/Script/MotionPlatform.xml +++ b/templates/dkcr/Script/MotionPlatform.xml @@ -1,49 +1,44 @@ - - MotionPlatform - - - - - 1.0 - - - 1.0 - - - 10.0 - - - 0.0 - - - 1.0 - - - -1.0 - - - 0xDCCF49F4 - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + MotionPlatform + + + + + 1.0 + + + 1.0 + + + 10.0 + + + 0.0 + + + 1.0 + + + -1.0 + + + 0xDCCF49F4 + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/MultiModelActor.xml b/templates/dkcr/Script/MultiModelActor.xml index e47e177e..24d2b178 100644 --- a/templates/dkcr/Script/MultiModelActor.xml +++ b/templates/dkcr/Script/MultiModelActor.xml @@ -1,71 +1,65 @@ - - MultiModelActor - - RSO_ScriptMultiModelActor.rso - - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - - - - - - - 0 - - - false - - - 0.0 - - - - - - - - - - - - - - - false - - - 1.0, 1.0, 1.0, 1.0 - - - - true - - - true - - - - - - - - - - - - - - - enabled - enabled - - + + + RSO_ScriptMultiModelActor.rso + + + MultiModelActor + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + DCLN + + + + + + + CMDL + + + + + + false + + + + 1.0 + 1.0 + 1.0 + + + + + true + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + diff --git a/templates/dkcr/Script/MultiplayerSyncRelay.xml b/templates/dkcr/Script/MultiplayerSyncRelay.xml index e75e6e2c..7a97be5a 100644 --- a/templates/dkcr/Script/MultiplayerSyncRelay.xml +++ b/templates/dkcr/Script/MultiplayerSyncRelay.xml @@ -1,25 +1,20 @@ - - MultiplayerSyncRelay - - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + MultiplayerSyncRelay + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/MusicMaster.xml b/templates/dkcr/Script/MusicMaster.xml index 3ac802bd..d8d8ef31 100644 --- a/templates/dkcr/Script/MusicMaster.xml +++ b/templates/dkcr/Script/MusicMaster.xml @@ -1,59 +1,18 @@ - - MusicMaster - - - - - - false - - - false - - - false - - - false - - - 0.05 - - - 0.25 - - - -6.0 - - - false - - - 0.0 - - - 0xCBF698CA - - - 0x28D5A7D7 - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + MusicMaster + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/MusicModifier.xml b/templates/dkcr/Script/MusicModifier.xml index 0f39db6e..6f90deb4 100644 --- a/templates/dkcr/Script/MusicModifier.xml +++ b/templates/dkcr/Script/MusicModifier.xml @@ -1,33 +1,29 @@ - - MusicModifier - - - - 0.25 - - - 0.25 - - - 0.0 - - - - - - - - - - - - - - script/common/StreamedAudioModifier.TXTR - - 0.5 - enabled - enabled - - + + + MusicModifier + + + + 0.25 + + + 0.25 + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/dkcr/Script/MusicTrack.xml b/templates/dkcr/Script/MusicTrack.xml index 6fcb28ab..a783e0c8 100644 --- a/templates/dkcr/Script/MusicTrack.xml +++ b/templates/dkcr/Script/MusicTrack.xml @@ -1,65 +1,18 @@ - - MusicTrack - - - - - - - - false - - - 0.05 - - - 0.25 - - - -6.0 - - - 0.0 - - - false - - - 2.0 - - - 75.0 - - - 0.0 - - - true - - - 0 - - - false - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + MusicTrack + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/OceanBridge.xml b/templates/dkcr/Script/OceanBridge.xml index d146a26c..413ac918 100644 --- a/templates/dkcr/Script/OceanBridge.xml +++ b/templates/dkcr/Script/OceanBridge.xml @@ -1,230 +1,33 @@ - - OceanBridge - - RSO_OceanBridge.rso - - - - - - - - - 0 - - - - - - - - - - -0.1 - - - 0.25 - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - 4 - - - 0.05 - - - 12.0 - - - 0.75 - - - 2.5 - - - 0.5 - - - 7.0 - - - 7.0 - - - false - - - true - - - true - - - 0.1 - - - 10.0 - - - 2 - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0xC27FFA8F - 0xB33F8CE5:0x69A2B08E - 0xB33F8CE5:0xA2FE632B - 0xB33F8CE5:0x246A1185 - - enabled - enabled - - + + + RSO_OceanBridge.rso + + + OceanBridge + + + + + CMDL + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/dkcr/Script/OceanWave.xml b/templates/dkcr/Script/OceanWave.xml index 40534513..70d321dc 100644 --- a/templates/dkcr/Script/OceanWave.xml +++ b/templates/dkcr/Script/OceanWave.xml @@ -1,58 +1,27 @@ - - OceanWave - - - - - - - - - true - - - 12.0 - - - 12.0 - - - 55.0 - - - 4 - - - 0.0 - - - 3.0 - - - 6.0 - - - 9.0 - - - - - - - - - - - - - - - - - 0xC27FFA8F - - enabled - enabled - - + + + OceanWave + + + + + CMDL + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/dkcr/Script/OptionalAreaAsset.xml b/templates/dkcr/Script/OptionalAreaAsset.xml index c2ea0409..fe9834fb 100644 --- a/templates/dkcr/Script/OptionalAreaAsset.xml +++ b/templates/dkcr/Script/OptionalAreaAsset.xml @@ -1,29 +1,18 @@ - - OptionalAreaAsset - - - - - - 0 - - - - - - - - - - - - - - - - - enabled - enabled - - + + + OptionalAreaAsset + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/dkcr/Script/PathControl.xml b/templates/dkcr/Script/PathControl.xml index 52ce3d85..372fb607 100644 --- a/templates/dkcr/Script/PathControl.xml +++ b/templates/dkcr/Script/PathControl.xml @@ -1,31 +1,30 @@ - - PathControl - - - - 0 - always - - - - 1.0, 1.0, 1.0, 1.0 - This property isn't read by the game and has no ingame effect. - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + PathControl + + + + Always + 0 + + + + This property isn't read by the game and has no ingame effect. + + 1.0 + 1.0 + 1.0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/Peanut.xml b/templates/dkcr/Script/Peanut.xml index ee2fb4ad..18575cce 100644 --- a/templates/dkcr/Script/Peanut.xml +++ b/templates/dkcr/Script/Peanut.xml @@ -1,99 +1,28 @@ - - Peanut - - - - - false - - - - - - - - false - - - 0.0, 0.0, 1.0 - - - 5.0 - - - -1.0, -1.0, -1.0 - - - 2.0 - - - 80.0 - - - 25.0 - - - - - - - 1.0, 1.0, 1.0 - - - false - - - false - - - true - - - - - 1.0, 1.0, 1.0 - - - - - - - - 1.0 - - - 1.0 - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - 0x5F058F67:0xC27FFA8F - - enabled - enabled - - + + + Peanut + + + + + false + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/dkcr/Script/Pickup.xml b/templates/dkcr/Script/Pickup.xml index dfa96249..0eb97962 100644 --- a/templates/dkcr/Script/Pickup.xml +++ b/templates/dkcr/Script/Pickup.xml @@ -1,144 +1,52 @@ - - Pickup - - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - - - - - - - - 0xB22FD89B - - - 1 - - - 0 - - - 1 - - - 1 - - - 0.0 - - - 0.0 - - - 0.0 - - - 2.0 - - - 0.0 - - - 0.25 - - - 3.0 - - - 1.0, 1.0, 1.0 - - - - - - - - - - - - - - - - 0 - - - false - - - false - - - true - - - true - - - false - - - false - - - 0.0 - - - true - - - true - - - false - - - - - false - - - - - false - - - - 1.0 - - - - - - - - - - - - - - - - - - - 0xA244C9D8 - 0x3128976F - 0xC27FFA8F - 0xD545F36B:0xED398EFB - - enabled - enabled - - + + + Pickup + + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + CMDL + + + + + + + + + false + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/dkcr/Script/PilotChicken.xml b/templates/dkcr/Script/PilotChicken.xml index 6f1b00b4..92049c2c 100644 --- a/templates/dkcr/Script/PilotChicken.xml +++ b/templates/dkcr/Script/PilotChicken.xml @@ -1,46 +1,40 @@ - - PilotChicken - - RSO_RobotChicken.rso - - - - - - - - 0.0, 0.0, -90.0 - - - - - - - - - - - false - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + RSO_RobotChicken.rso + + + PilotChicken + + + + + + + + 0.0 + 0.0 + -90.0 + + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/dkcr/Script/PirateCrab.xml b/templates/dkcr/Script/PirateCrab.xml index 6a51c2c8..2ca4dca7 100644 --- a/templates/dkcr/Script/PirateCrab.xml +++ b/templates/dkcr/Script/PirateCrab.xml @@ -1,162 +1,78 @@ - - PirateCrab - - RSO_PirateCrab.rso - - - - - - - - 0.0, 0.0, -90.0 - - - 0.75, 0.75, 0.75 - - - - - - - - - - - - - 524322 - - - - - - - 1.0 - - - 20.0 - - - - - - - 1.0 - - - - - 1.0 - - - - - - - 55.0 - - - true - - - true - - - 5.0 - - - 0.66 - - - 10.0 - - - 3.0 - - - 5 - - - 3.5 - - - - - - true - - - 0.5 - - - 1.0 - - - - - - - true - - - 1.0 - - - 0x8FE7F58B - - - - - - - - 1.0 - - - - - - - 3.0 - - - 3.0 - - - 0.33 - - - 2.0 - - - - - - - 0.5 - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + RSO_PirateCrab.rso + + + PirateCrab + + + + + + + + 0.0 + 0.0 + -90.0 + + + + + 0.75 + 0.75 + 0.75 + + + + + + + + + + + + + + 524322 + + + + + + + 1.0 + + + 20.0 + + + + + + + 1.0 + + + + + 1.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/dkcr/Script/PirateCrabManager.xml b/templates/dkcr/Script/PirateCrabManager.xml index 76a2eb60..4d715887 100644 --- a/templates/dkcr/Script/PirateCrabManager.xml +++ b/templates/dkcr/Script/PirateCrabManager.xml @@ -1,45 +1,21 @@ - - PirateCrabManager - - RSO_PirateCrab.rso - - - - - - - 0xD16A0571 - - - - - - - 4 - - - 3 - - - 0.5 - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RSO_PirateCrab.rso + + + PirateCrabManager + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/Platform.xml b/templates/dkcr/Script/Platform.xml index 10f3ba4e..cad1fc39 100644 --- a/templates/dkcr/Script/Platform.xml +++ b/templates/dkcr/Script/Platform.xml @@ -1,119 +1,96 @@ - - Platform - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - - - - - - - - false - - - - 0.0, 0.15, 0.0 - - - 0.0 - - - 1.0 - - - 1800.0 - - - 30.0 - - - 0.0 - - - 0.0 - - - false - - - false - - - false - - - false - - - false - - - - - false - - - false - - - false - - - true - - - true - - - false - - - false - - - true - - - true - - - true - - - true - - - false - - - - - - - - - - - - - - - - - 0xA3D63F44 - 0xC27FFA8F - 0x0FC966DC - - enabled - enabled - - + + + Platform + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + CMDL + + + + + + + + DCLN + + + + + + false + + + + + 0.0 + 0.15000001 + 0.0 + + + + 0.0 + + + 1.0 + + + 1800.0 + + + 30.0 + + + 0.0 + + + 0.0 + + + false + + + false + + + false + + + false + + + false + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/dkcr/Script/PlayerActionHint.xml b/templates/dkcr/Script/PlayerActionHint.xml index 082be063..d59d748d 100644 --- a/templates/dkcr/Script/PlayerActionHint.xml +++ b/templates/dkcr/Script/PlayerActionHint.xml @@ -1,76 +1,18 @@ - - PlayerActionHint - - - - - - 0x43DB8C1F - - - - - - - 0.0 - - - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + PlayerActionHint + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/PlayerActor.xml b/templates/dkcr/Script/PlayerActor.xml index d7c9eb81..71b7d354 100644 --- a/templates/dkcr/Script/PlayerActor.xml +++ b/templates/dkcr/Script/PlayerActor.xml @@ -1,102 +1,110 @@ - - PlayerActor - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - 1.0 - - - 0.0 - - - - - - - - - true - - - false - - - - false - - - 0 - - - 0.0 - - - false - - - false - - - false - - - true - - - false - - - false - - - 0.0 - - - 1.0 - - - - - 0x1D137B4B - - - - - - - 0x1D137B4B - - - - - - - - - - - - - - - - - - - 0xA244C9D8 - 0xC27FFA8F - 0x6C75E2EA:0xDAA9D4BE:0x5405F708 - 0x6C75E2EA:0xF361604C:0x5405F708 - 0x6C75E2EA:0x5D09F1DD:0x5405F708 - - enabled - enabled - - + + + PlayerActor + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + 1.0 + + + 0.0 + + + + + + CMDL + + + + + + + true + + + false + + + + false + + + 0 + + + 0.0 + + + false + + + false + + + false + + + true + + + false + + + false + + + 0.0 + + + 1.0 + + + + + 0x1D137B4B + + + + + + + 0x1D137B4B + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + diff --git a/templates/dkcr/Script/PlayerRespawn.xml b/templates/dkcr/Script/PlayerRespawn.xml index a2d5fb9f..3d43d751 100644 --- a/templates/dkcr/Script/PlayerRespawn.xml +++ b/templates/dkcr/Script/PlayerRespawn.xml @@ -1,105 +1,41 @@ - - PlayerRespawn - - - - true - - - 1.0 - - - true - - - - - true - - - 0.8 - - - 0.2 - - - 1.5 - - - 1.5 - - - 2.15 - - - 3.5 - - - 0.75 - - - 0.75 - - - - - - - - - true - - - 0.5 - - - true - - - true - - - 1.0 - - - 1.5 - - - 0.5 - - - 0.75 - - - - - - - - -1 - - - - - - - - - - - - - - - - - 0xF8B3ABE0 - 0x32CE899F - 0x162C827C - 0x899F8473 - - enabled - enabled - - + + + PlayerRespawn + + + + true + + + 1.0 + + + true + + + + + + + -1 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + + + + diff --git a/templates/dkcr/Script/PlayerToken.xml b/templates/dkcr/Script/PlayerToken.xml index 30ff7876..2a1f656b 100644 --- a/templates/dkcr/Script/PlayerToken.xml +++ b/templates/dkcr/Script/PlayerToken.xml @@ -1,39 +1,39 @@ - - PlayerToken - - - - - - - - - -1 - - - - - - - - - - - - - - - - - - 0xA244C9D8 - 0xA9EB0FC8 - 0x0B30ECAE - 0x7CA5B474 - 0xC27FFA8F - - enabled - enabled - - + + + PlayerToken + + + + + CMDL + + + + + + + + -1 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + diff --git a/templates/dkcr/Script/PoiObject.xml b/templates/dkcr/Script/PoiObject.xml index 067eb6f3..ef7f44eb 100644 --- a/templates/dkcr/Script/PoiObject.xml +++ b/templates/dkcr/Script/PoiObject.xml @@ -1,57 +1,18 @@ - - PoiObject - - - - - - - - 0xC8E4D939 - - - - - - - - - - - - - - 1.0 - - - false - - - false - - - 4.0 - - - 12.0 - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + PoiObject + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/PositionRelay.xml b/templates/dkcr/Script/PositionRelay.xml index 642bcbe0..06be0679 100644 --- a/templates/dkcr/Script/PositionRelay.xml +++ b/templates/dkcr/Script/PositionRelay.xml @@ -1,25 +1,20 @@ - - PositionRelay - - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + PositionRelay + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/ProbabilityRelay.xml b/templates/dkcr/Script/ProbabilityRelay.xml index e57edf93..a0d5d95e 100644 --- a/templates/dkcr/Script/ProbabilityRelay.xml +++ b/templates/dkcr/Script/ProbabilityRelay.xml @@ -1,26 +1,21 @@ - - ProbabilityRelay - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ProbabilityRelay + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/Projectile.xml b/templates/dkcr/Script/Projectile.xml index 8905392d..2606f03f 100644 --- a/templates/dkcr/Script/Projectile.xml +++ b/templates/dkcr/Script/Projectile.xml @@ -1,34 +1,30 @@ - - Projectile - - - - - - - - - false - - - - - - - - - - - - - - - - 0xD90DAB09:0x8CDE5BD9:0x210190C6 - 0xD90DAB09:0x28E076FD:0xC27FFA8F - - enabled - enabled - - + + + Projectile + + + + + + + + + false + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/dkcr/Script/RadialDamage.xml b/templates/dkcr/Script/RadialDamage.xml index 7900bb6e..44783afe 100644 --- a/templates/dkcr/Script/RadialDamage.xml +++ b/templates/dkcr/Script/RadialDamage.xml @@ -1,37 +1,33 @@ - - RadialDamage - - - - - 15.0 - - - false - - - false - - - false - - - - - - - - - - - - - - script/common/RadialDamage.TXTR - - 0.5 - enabled - enabled - - + + + RadialDamage + + + + + 15.0 + + + false + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/dkcr/Script/Rambi.xml b/templates/dkcr/Script/Rambi.xml index 26383ec6..57276df7 100644 --- a/templates/dkcr/Script/Rambi.xml +++ b/templates/dkcr/Script/Rambi.xml @@ -1,40 +1,35 @@ - - Rambi - - - - - - - - - - - 1000.0 - - - - - 0.25 - - - - - - - - - - - - - - - - - - enabled - enabled - - + + + Rambi + + + + + + + + + + + 1000.0 + + + + + 0.25 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + diff --git a/templates/dkcr/Script/RambiCrate.xml b/templates/dkcr/Script/RambiCrate.xml index 084ca38a..adf6a4c9 100644 --- a/templates/dkcr/Script/RambiCrate.xml +++ b/templates/dkcr/Script/RambiCrate.xml @@ -1,47 +1,22 @@ - - RambiCrate - - - - - - - - -1 - always - - - -1 - - - - 15.0 - - - 5.0 - - - 10.0 - - - - - - - - - - - - - - - - - 0xDD65D9B6:0xA3D63F44 - - enabled - enabled - - + + + RambiCrate + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/dkcr/Script/ReactiveActor.xml b/templates/dkcr/Script/ReactiveActor.xml index 9d6985af..39369e77 100644 --- a/templates/dkcr/Script/ReactiveActor.xml +++ b/templates/dkcr/Script/ReactiveActor.xml @@ -1,53 +1,49 @@ - - ReactiveActor - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - - - - true - - - 0 - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - 0x7BC2F6CF - 0xC27FFA8F - - enabled - enabled - - + + + ReactiveActor + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + CMDL + + + + + + true + + + 0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/dkcr/Script/ReactiveScale.xml b/templates/dkcr/Script/ReactiveScale.xml index d27c12a5..50c7afb6 100644 --- a/templates/dkcr/Script/ReactiveScale.xml +++ b/templates/dkcr/Script/ReactiveScale.xml @@ -1,67 +1,18 @@ - - ReactiveScale - - - - - - 0xED68E078 - - - - - - - - true - - - 0xB3D7539F - - - - - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.01 - - - 0.0 - - - - 0.0 - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ReactiveScale + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/Relay.xml b/templates/dkcr/Script/Relay.xml index dd23d686..8cf35180 100644 --- a/templates/dkcr/Script/Relay.xml +++ b/templates/dkcr/Script/Relay.xml @@ -1,27 +1,23 @@ - - Relay - - - - false - - - - - - - - - - - - - - script/common/Relay.TXTR - - 0.5 - enabled - enabled - - + + + Relay + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/dkcr/Script/RelayRandom.xml b/templates/dkcr/Script/RelayRandom.xml index 984eaa40..33718adb 100644 --- a/templates/dkcr/Script/RelayRandom.xml +++ b/templates/dkcr/Script/RelayRandom.xml @@ -1,52 +1,21 @@ - - RelayRandom - - - - - - false - - - false - - - 50 - - - 1 - - - 1 - - - 50 - - - 50 - - - false - - - - - - - - - - - - - - - - script/common/RandomRelay.TXTR - - 0.5 - enabled - enabled - - + + + RelayRandom + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/dkcr/Script/RespawnBalloon.xml b/templates/dkcr/Script/RespawnBalloon.xml index 2c4229a2..f58a73f9 100644 --- a/templates/dkcr/Script/RespawnBalloon.xml +++ b/templates/dkcr/Script/RespawnBalloon.xml @@ -1,58 +1,22 @@ - - RespawnBalloon - - - - - - - - 0 - - - 10.0 - - - 3.0 - - - 3.0 - - - 0.0, 0.0, -4.0 - - - 15.0 - - - 1.0 - - - - - - - 1.0 - - - - - - - - - - - - - - - - - 0x0AA1AAE7:0xF8B3ABE0 - - enabled - enabled - - + + + RespawnBalloon + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/dkcr/Script/Retronome.xml b/templates/dkcr/Script/Retronome.xml index d97fdf46..77f5efed 100644 --- a/templates/dkcr/Script/Retronome.xml +++ b/templates/dkcr/Script/Retronome.xml @@ -1,40 +1,35 @@ - - Retronome - - - - 0.0 - - - true - - - false - - - false - - - false - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Retronome + + + + 0.0 + + + true + + + false + + + false + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/ReviewControl.xml b/templates/dkcr/Script/ReviewControl.xml index 3dd15a0b..96d142ed 100644 --- a/templates/dkcr/Script/ReviewControl.xml +++ b/templates/dkcr/Script/ReviewControl.xml @@ -1,30 +1,25 @@ - - ReviewControl - - - - 0xB0F13B9A - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ReviewControl + + + + 0xB0F13B9A + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/RobotChicken.xml b/templates/dkcr/Script/RobotChicken.xml index 4637505f..bf88f09f 100644 --- a/templates/dkcr/Script/RobotChicken.xml +++ b/templates/dkcr/Script/RobotChicken.xml @@ -1,267 +1,70 @@ - - RobotChicken - - RSO_RobotChicken.rso - - - - - - - - 0.0, 0.0, -90.0 - - - - - - - - - - - - 524322 - - - - - - - 1.0 - - - 20.0 - - - - - - - 1.0 - - - - - 1.0 - - - - - - - true - - - 55.0 - - - 0.3 - - - 3.0 - - - 6.0 - - - 0.2 - - - 12.0 - - - 0.1 - - - 4.0 - - - 1.0 - - - 0.2 - - - 1.0 - - - 0.1 - - - 2.5 - - - 12 - - - 1.0 - - - 0 - - - false - - - 0.0 - - - false - - - - -1 - - - -1 - - - -1 - - - 12.0 - - - -1 - - - - - false - - - false - - - 1.0 - - - 0.5 - - - 1.0 - - - - - - - 1 - - - - - - - - - - - false - - - false - - - true - - - true - - - false - - - false - - - true - - - false - - - false - - - 1.0 - - - 1.0 - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - false - - - false - - - - - - - - - 0x8C665F9A - - - 3.0 - - - - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + RSO_RobotChicken.rso + + + RobotChicken + + + + + + + + 0.0 + 0.0 + -90.0 + + + + + + + + + + + + + 524322 + + + + + + + 1.0 + + + 20.0 + + + + + + + 1.0 + + + + + 1.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/dkcr/Script/RobotChickenFlyer.xml b/templates/dkcr/Script/RobotChickenFlyer.xml index ca4f2225..2b41f01f 100644 --- a/templates/dkcr/Script/RobotChickenFlyer.xml +++ b/templates/dkcr/Script/RobotChickenFlyer.xml @@ -1,164 +1,70 @@ - - RobotChickenFlyer - - RSO_RobotChicken.rso - - - - - - - - 0.0, 0.0, -90.0 - - - - - - - - - - - - 524322 - - - - - - - 1.0 - - - 20.0 - - - - - - - 1.0 - - - - - 1.0 - - - - - - - true - - - 0.0 - - - 55.0 - - - 20.0 - - - 12.0 - - - 12.0 - - - 10.0 - - - false - - - 6 - - - 2.0 - - - 9 - - - 0.87 - - - 20 - - - 0.0 - - - 9.0 - - - 13.0 - - - - - - - - - 20.0 - - - 1.0 - - - - - - - - - - - - - - - - - - - 0x8C665F9A - - - 3.0 - - - - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + RSO_RobotChicken.rso + + + RobotChickenFlyer + + + + + + + + 0.0 + 0.0 + -90.0 + + + + + + + + + + + + + 524322 + + + + + + + 1.0 + + + 20.0 + + + + + + + 1.0 + + + + + 1.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/dkcr/Script/RocketBarrel.xml b/templates/dkcr/Script/RocketBarrel.xml index f32f0034..e8d647c6 100644 --- a/templates/dkcr/Script/RocketBarrel.xml +++ b/templates/dkcr/Script/RocketBarrel.xml @@ -1,155 +1,56 @@ - - RocketBarrel - - - - - - - 0.0, 0.0, -90.0 - - - - - - - - - 0.5 - - - 0.0, 0.0, -0.7 - - - - - - - - - - - - - 40.0 - - - 16.0 - - - 14.0 - - - 0.75 - - - -25.0 - - - 50.0 - - - 20.0 - - - 5.0 - - - 16.0 - - - 0.0 - - - 0.3 - - - 0.2 - - - -70.0 - - - 5.0 - - - 50.0 - - - 0.1 - - - 0.1 - - - -16.0 - - - - - - - - - - - 0.66 - - - 20.0 - - - 5.0 - - - 1.0 - - - 18.0 - - - -90.0 - - - 1.0 - - - - - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + RocketBarrel + + + + + + + + 0.0 + 0.0 + -90.0 + + + + + + + + + + 0.5 + + + + 0.0 + 0.0 + -0.69999999 + + + + + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/dkcr/Script/RumbleEffect.xml b/templates/dkcr/Script/RumbleEffect.xml index ed49f7a6..511fc23b 100644 --- a/templates/dkcr/Script/RumbleEffect.xml +++ b/templates/dkcr/Script/RumbleEffect.xml @@ -1,67 +1,62 @@ - - RumbleEffect - - - - - 1 - - - - - 240 - always - - - 0x0186ECB5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 20.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RumbleEffect + + + + + 1 + + + + + Always + 240 + + + 0x186ECB5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/ScriptLayerController.xml b/templates/dkcr/Script/ScriptLayerController.xml index 103afc06..8432238c 100644 --- a/templates/dkcr/Script/ScriptLayerController.xml +++ b/templates/dkcr/Script/ScriptLayerController.xml @@ -1,26 +1,21 @@ - - ScriptLayerController - - - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ScriptLayerController + + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/SequenceTimer.xml b/templates/dkcr/Script/SequenceTimer.xml index e7ec244e..680f85b9 100644 --- a/templates/dkcr/Script/SequenceTimer.xml +++ b/templates/dkcr/Script/SequenceTimer.xml @@ -1,69 +1,41 @@ - - SequenceTimer - - - - Connection - - - 0 - - - Activation Time - - - 0.0 - - - 0 - Always 0 - - - 0 - - - 0 - Always 0 - - - - - - - 0.0 - - - 60.0 - - - 0.0 - - - false - - - false - - - false - - - - - - - - - - - - - - script/common/SequenceTimer.TXTR - - 0.5 - enabled - enabled - - + + + SequenceTimer + + + + + + + 0.0 + + + 60.0 + + + 0.0 + + + false + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/dkcr/Script/ShadowProjector.xml b/templates/dkcr/Script/ShadowProjector.xml index e7825008..5f74a119 100644 --- a/templates/dkcr/Script/ShadowProjector.xml +++ b/templates/dkcr/Script/ShadowProjector.xml @@ -1,63 +1,48 @@ - - ShadowProjector - - - - 1.0 - - - 0.0, 0.0, 0.0 - - - 100.0 - - - 0.5 - - - 1.0 - - - false - - - false - - - 128 - - - - - 0x845C872E - - - - - - - - - - - - - 0.0 - - - - - - - - - - - - - - enabled - enabled - - + + + ShadowProjector + + + + 1.0 + + + + 0.0 + 0.0 + 0.0 + + + + 100.0 + + + 0.5 + + + 1.0 + + + false + + + false + + + 128 + + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/dkcr/Script/SkyboxModInca.xml b/templates/dkcr/Script/SkyboxModInca.xml index af052d9e..d9ed2bed 100644 --- a/templates/dkcr/Script/SkyboxModInca.xml +++ b/templates/dkcr/Script/SkyboxModInca.xml @@ -1,26 +1,26 @@ - - SkyboxModInca - - - - 1.0, 1.0, 1.0, 0.0 - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + SkyboxModInca + + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/Sound.xml b/templates/dkcr/Script/Sound.xml index 390d99e9..d105b000 100644 --- a/templates/dkcr/Script/Sound.xml +++ b/templates/dkcr/Script/Sound.xml @@ -1,83 +1,74 @@ - - Sound - - - - - 0.0 - - - 0.0 - - - 0.0 - - - 1.0 - - - 0.0 - - - - - 0.0 - - - 1.0 - - - - - 0.0 - - - 0.0 - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - - - - - - - - - - - - script/common/Sound.TXTR - - 0.5 - enabled - enabled - - + + + Sound + + + + + CAUD + + + + 0.0 + + + 0.0 + + + 0.0 + + + 1.0 + + + 0.0 + + + + 0.0 + + + 0.0 + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/dkcr/Script/SoundModifier.xml b/templates/dkcr/Script/SoundModifier.xml index c951fd6b..061cee04 100644 --- a/templates/dkcr/Script/SoundModifier.xml +++ b/templates/dkcr/Script/SoundModifier.xml @@ -1,27 +1,23 @@ - - SoundModifier - - - - false - - - - - - - - - - - - - - script/common/SoundModifier.TXTR - - 0.5 - enabled - enabled - - + + + SoundModifier + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/dkcr/Script/SoundModifierData.xml b/templates/dkcr/Script/SoundModifierData.xml index b51d136f..9e1d593b 100644 --- a/templates/dkcr/Script/SoundModifierData.xml +++ b/templates/dkcr/Script/SoundModifierData.xml @@ -1,48 +1,43 @@ - - SoundModifierData - - - - 5.0 - - - 0.0 - - - 0.0 - - - false - - - false - - - false - - - false - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + SoundModifierData + + + + 5.0 + + + 0.0 + + + 0.0 + + + false + + + false + + + false + + + false + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/SpawnPoint.xml b/templates/dkcr/Script/SpawnPoint.xml index d951be49..4a06fcb4 100644 --- a/templates/dkcr/Script/SpawnPoint.xml +++ b/templates/dkcr/Script/SpawnPoint.xml @@ -1,49 +1,17 @@ - - SpawnPoint - - - - - - true - - - true - - - true - - - false - - - false - - - false - - - false - - - false - - - - - - - - - - - - - - - - enabled - enabled - - + + + SpawnPoint + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/dkcr/Script/SpecialFunction.xml b/templates/dkcr/Script/SpecialFunction.xml index 3f6c50f8..37ea744a 100644 --- a/templates/dkcr/Script/SpecialFunction.xml +++ b/templates/dkcr/Script/SpecialFunction.xml @@ -1,100 +1,96 @@ - - SpecialFunction - - - - 0x98C5AED7 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0 - - - 0 - - - 0xB22FD89B - - - - - - - - - - - - - - script/common/SpecialFunction.TXTR - - 0.5 - enabled - enabled - - + + + SpecialFunction + + + + 0x98C5AED7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0 + + + 0 + + + 0xB22FD89B + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/dkcr/Script/Spinner.xml b/templates/dkcr/Script/Spinner.xml index 8ed27c41..a9ee6119 100644 --- a/templates/dkcr/Script/Spinner.xml +++ b/templates/dkcr/Script/Spinner.xml @@ -1,107 +1,22 @@ - - Spinner - - - - false - - - - - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - - - 1.0 - - - 2.0 - - - false - - - false - - - false - - - - - - - - 0x2FD7B2AA - - - - - - - - 0.5 - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Spinner + + + + false + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/SplineModifierVolume.xml b/templates/dkcr/Script/SplineModifierVolume.xml index 12e210cf..af32a0d7 100644 --- a/templates/dkcr/Script/SplineModifierVolume.xml +++ b/templates/dkcr/Script/SplineModifierVolume.xml @@ -1,23 +1,19 @@ - - SplineModifierVolume - - - - - - - - - - - - - - - - enabled - volume - - - + + + SplineModifierVolume + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + BoxShape + diff --git a/templates/dkcr/Script/SplinePath.xml b/templates/dkcr/Script/SplinePath.xml index 38909c25..0bbfcd08 100644 --- a/templates/dkcr/Script/SplinePath.xml +++ b/templates/dkcr/Script/SplinePath.xml @@ -1,30 +1,29 @@ - - SplinePath - - - - false - - - - 1.0, 1.0, 1.0, 1.0 - This property is purely for editor visualization. It isn't read by the game and has no ingame effect. - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + SplinePath + + + + false + + + + This property is purely for editor visualization. It isn't read by the game and has no ingame effect. + + 1.0 + 1.0 + 1.0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/SplinePathNetwork.xml b/templates/dkcr/Script/SplinePathNetwork.xml index 47c66e8b..554e725b 100644 --- a/templates/dkcr/Script/SplinePathNetwork.xml +++ b/templates/dkcr/Script/SplinePathNetwork.xml @@ -1,25 +1,20 @@ - - SplinePathNetwork - - RSO_ForestBoss.rso - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RSO_ForestBoss.rso + + + SplinePathNetwork + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/SquawkProxy.xml b/templates/dkcr/Script/SquawkProxy.xml index f2c417fa..bde3f440 100644 --- a/templates/dkcr/Script/SquawkProxy.xml +++ b/templates/dkcr/Script/SquawkProxy.xml @@ -1,42 +1,32 @@ - - SquawkProxy - - - - - - - 3.0, 3.0, 3.0 - - - - - - - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + SquawkProxy + + + + + + + + 3.0 + 3.0 + 3.0 + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/StreamedAudio.xml b/templates/dkcr/Script/StreamedAudio.xml index a1ab6c7f..ce201e01 100644 --- a/templates/dkcr/Script/StreamedAudio.xml +++ b/templates/dkcr/Script/StreamedAudio.xml @@ -1,88 +1,88 @@ - - StreamedAudio - - - - - - false - - - false - - - false - - - false - - - 0.05 - - - 0.25 - - - -6.0 - - - 0.0 - - - false - - - 2.0 - - - 75.0 - - - 0.0 - - - true - - - 0 - - - false - - - false - - - false - - - - 0.0 - always - - - 0xCBF698CA - - - 0x28D5A7D7 - - - - - - - - - - - - - - script/common/StreamedAudio.TXTR - - 0.5 - enabled - enabled - - + + + StreamedAudio + + + + + STRM + + + + + false + + + false + + + false + + + false + + + 0.050000001 + + + 0.25 + + + -6.0 + + + 0.0 + + + false + + + 2.0 + + + 75.0 + + + 0.0 + + + true + + + 0 + + + false + + + false + + + false + + + + Always + 0.0 + + + 0xCBF698CA + + + 0x28D5A7D7 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/dkcr/Script/StreamedMovie.xml b/templates/dkcr/Script/StreamedMovie.xml index 807f0301..21dc978f 100644 --- a/templates/dkcr/Script/StreamedMovie.xml +++ b/templates/dkcr/Script/StreamedMovie.xml @@ -1,49 +1,45 @@ - - StreamedMovie - - - - - false - - - true - - - 0 - - - 127 - - - 0 - - - 0.05 - - - 1.0 - - - false - - - - - - - - - - - - - - script/common/StreamedMovie.TXTR - - 0.5 - enabled - enabled - - + + + StreamedMovie + + + + + false + + + true + + + 0 + + + 127 + + + 0 + + + 0.050000001 + + + 1.0 + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/dkcr/Script/Subtitles.xml b/templates/dkcr/Script/Subtitles.xml index e57e1c4e..19949410 100644 --- a/templates/dkcr/Script/Subtitles.xml +++ b/templates/dkcr/Script/Subtitles.xml @@ -1,70 +1,69 @@ - - Subtitles - - - - - - 640 - - - 448 - - - 1 - - - - - 0 - - - 100 - - - - - 640 - - - 448 - - - 1 - - - - - 0 - - - 100 - - - - 0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Subtitles + + + + + + 640 + + + 448 + + + 1 + + + + + 0 + + + 100 + + + + + 640 + + + 448 + + + 1 + + + + + 0 + + + 100 + + + + STRG + + + + 0 + + + 0.0 + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/SurfaceControl.xml b/templates/dkcr/Script/SurfaceControl.xml index 05c4e17e..c16cd769 100644 --- a/templates/dkcr/Script/SurfaceControl.xml +++ b/templates/dkcr/Script/SurfaceControl.xml @@ -1,33 +1,28 @@ - - SurfaceControl - - - - 0xF07B8212 - - - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + SurfaceControl + + + + 0xF07B8212 + + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/SuspensionBridge.xml b/templates/dkcr/Script/SuspensionBridge.xml index a445d544..74810202 100644 --- a/templates/dkcr/Script/SuspensionBridge.xml +++ b/templates/dkcr/Script/SuspensionBridge.xml @@ -1,59 +1,33 @@ - - SuspensionBridge - - - - - - - - - - false - - - 5.0 - - - 12.0 - - - 20.0 - - - - - true - - - true - - - true - - - - - - - - - - - - - - - - - - - - - 0xA3D63F44 - - enabled - enabled - - + + + SuspensionBridge + + + + + + DCLN + + + + + + FSMC + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/dkcr/Script/SwingRope.xml b/templates/dkcr/Script/SwingRope.xml index cf782ccf..3270462f 100644 --- a/templates/dkcr/Script/SwingRope.xml +++ b/templates/dkcr/Script/SwingRope.xml @@ -1,112 +1,20 @@ - - SwingRope - - - - - - - 0.05 - - - 0x757C86AB - - - - - - - - - - - 45.0 - - - 2.0 - - - 0.5 - - - false - - - false - - - false - - - 0.0 - - - true - - - - 0.25 - - - 0.5 - - - false - - - false - - - 0 - - - 24 - - - 24 - - - 24 - - - 24 - - - 24 - - - 24 - - - 24 - - - 24 - - - 24 - - - 24 - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + SwingRope + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + 0.5 + diff --git a/templates/dkcr/Script/Switch.xml b/templates/dkcr/Script/Switch.xml index aa0218e4..f6b3bd92 100644 --- a/templates/dkcr/Script/Switch.xml +++ b/templates/dkcr/Script/Switch.xml @@ -1,28 +1,23 @@ - - Switch - - - - false - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Switch + + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/TPND.xml b/templates/dkcr/Script/TPND.xml index 4a658701..8967aaad 100644 --- a/templates/dkcr/Script/TPND.xml +++ b/templates/dkcr/Script/TPND.xml @@ -1,51 +1,50 @@ - - TPND - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - - - - - - - - - - - 5.0 - - - 4.0 - - - 5.0 - - - - - - - - - - - - - - - - - 0xC27FFA8F - - enabled - enabled - - + + + TPND + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + + CMDL + + + + + DCLN + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/dkcr/Script/TarPit.xml b/templates/dkcr/Script/TarPit.xml index 7dec3f6c..51145a34 100644 --- a/templates/dkcr/Script/TarPit.xml +++ b/templates/dkcr/Script/TarPit.xml @@ -1,50 +1,17 @@ - - TarPit - - - - - - - - false - - - false - - - - - 2.0 - - - 0.25 - - - 3.0 - - - 3.0 - - - 0.0 - - - - - - - - - - - - - - - - enabled - enabled - - + + + TarPit + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/dkcr/Script/TextPane.xml b/templates/dkcr/Script/TextPane.xml index 3c39acaf..6a62d5b6 100644 --- a/templates/dkcr/Script/TextPane.xml +++ b/templates/dkcr/Script/TextPane.xml @@ -1,88 +1,95 @@ - - TextPane - - - - - - - 8.0, 1.0, 1.0 - - - - - - - - - - 80 - - - 10 - - - - - - - 80 - - - 10 - - - - - 0.0, 0.0, 0.0 - - - - - 1 - - - 0.25 - - - 0.25 - - - true - - - true - - - false - - - false - - - false - - - false - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + TextPane + + + + + + + + 8.0 + 1.0 + 1.0 + + + + + + + + + + + 80 + + + 10 + + + + + + + 80 + + + 10 + + + + + + 0.0 + 0.0 + 0.0 + + + + + STRG + + + + + 1 + + + 0.25 + + + 0.25 + + + true + + + true + + + false + + + false + + + false + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/TidalWave.xml b/templates/dkcr/Script/TidalWave.xml index c5216e6b..1d17eb48 100644 --- a/templates/dkcr/Script/TidalWave.xml +++ b/templates/dkcr/Script/TidalWave.xml @@ -1,75 +1,23 @@ - - TidalWave - - - - - - - - false - - - 0x6E6E8A1A - - - - - - - 0x59AD38F8 - - - - - - - - true - - - true - - - 0x13520720 - - - - - - - 0x24067FD8 - - - - - - - - true - - - true - - - - - - - - - - - - - - - - - 0xA244C9D8 - - enabled - enabled - - + + + TidalWave + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/dkcr/Script/TimeAttackEOLDisplay.xml b/templates/dkcr/Script/TimeAttackEOLDisplay.xml index 92e3d7ad..b532f524 100644 --- a/templates/dkcr/Script/TimeAttackEOLDisplay.xml +++ b/templates/dkcr/Script/TimeAttackEOLDisplay.xml @@ -1,22 +1,17 @@ - - TimeAttackEOLDisplay - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + TimeAttackEOLDisplay + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/TimeKeyframe.xml b/templates/dkcr/Script/TimeKeyframe.xml index 43121e91..0af4b6e7 100644 --- a/templates/dkcr/Script/TimeKeyframe.xml +++ b/templates/dkcr/Script/TimeKeyframe.xml @@ -1,25 +1,20 @@ - - TimeKeyframe - - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + TimeKeyframe + + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/Timer.xml b/templates/dkcr/Script/Timer.xml index e9ba0a20..e9b45b80 100644 --- a/templates/dkcr/Script/Timer.xml +++ b/templates/dkcr/Script/Timer.xml @@ -1,38 +1,34 @@ - - Timer - - - - 5.0 - - - 0.0 - A random value between this number and 0 will be added to the timer's start time. - - - false - If enabled, the timer will start ticking automatically on load. Otherwise, it will need to be started with a script message. - - - false - - - - - - - - - - - - - - script/common/Timer.TXTR - - 0.5 - enabled - enabled - - + + + Timer + + + + 5.0 + + + A random value between this number and 0 will be added to the timer's start time. + 0.0 + + + If enabled, the timer will start ticking automatically on load. Otherwise, it will need to be started with a script message. + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/dkcr/Script/TippyPlatform.xml b/templates/dkcr/Script/TippyPlatform.xml index b794f9b4..125f743e 100644 --- a/templates/dkcr/Script/TippyPlatform.xml +++ b/templates/dkcr/Script/TippyPlatform.xml @@ -1,38 +1,50 @@ - - TippyPlatform - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - - - - - - - - - - - - - - - - - - - - 0xA3D63F44 - 0xC27FFA8F - - enabled - enabled - - + + + TippyPlatform + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + + CMDL + + + + + DCLN + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/dkcr/Script/TrainSequence.xml b/templates/dkcr/Script/TrainSequence.xml index 376ea3ed..05414cdb 100644 --- a/templates/dkcr/Script/TrainSequence.xml +++ b/templates/dkcr/Script/TrainSequence.xml @@ -1,35 +1,34 @@ - - TrainSequence - - RSO_MoleTrain.rso - - - - - - - - 8.0, 8.0, 8.0 - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RSO_MoleTrain.rso + + + TrainSequence + + + + + + + + 8.0 + 8.0 + 8.0 + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/TrainTrackManager.xml b/templates/dkcr/Script/TrainTrackManager.xml index ce8d303e..207765ae 100644 --- a/templates/dkcr/Script/TrainTrackManager.xml +++ b/templates/dkcr/Script/TrainTrackManager.xml @@ -1,164 +1,37 @@ - - TrainTrackManager - - RSO_MoleTrain.rso - - - - - - - - 4.0, 4.0, 4.0 - - - - - - - - - 1 - - - 1 - - - - - - - 0xC0C853B9 - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RSO_MoleTrain.rso + + + TrainTrackManager + + + + + + + + 4.0 + 4.0 + 4.0 + + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/TransitionScreen.xml b/templates/dkcr/Script/TransitionScreen.xml index 1abe13c7..6c4aa6c3 100644 --- a/templates/dkcr/Script/TransitionScreen.xml +++ b/templates/dkcr/Script/TransitionScreen.xml @@ -1,36 +1,31 @@ - - TransitionScreen - - - - 0x4B079432 - - - - - - - - false - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + TransitionScreen + + + + 0x4B079432 + + + + + + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/Trigger.xml b/templates/dkcr/Script/Trigger.xml index 434063c2..ccccb81e 100644 --- a/templates/dkcr/Script/Trigger.xml +++ b/templates/dkcr/Script/Trigger.xml @@ -1,36 +1,47 @@ - - Trigger - - - - 0x482B22F1 - - - - false - - - - - - - - - - - - - - script/common/Trigger.TXTR - - enabled - volume - - - - - - - - + + + Trigger + + + + 0x482B22F1 + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + ScaleVolume + ConditionalShape + 0x09ECEE0C + + + 1210786545 + BoxShape + + + 2006824261 + BoxShape + + + -2087520796 + EllipsoidShape + + + 971864974 + CylinderShape + + + diff --git a/templates/dkcr/Script/Tutorial.xml b/templates/dkcr/Script/Tutorial.xml index cc49159f..56c79e44 100644 --- a/templates/dkcr/Script/Tutorial.xml +++ b/templates/dkcr/Script/Tutorial.xml @@ -1,49 +1,45 @@ - - Tutorial - - - - - - - - 0x10DEA989 - - - - - - - - - - 0.0, 0.0, 0.0 - - - 10.0 - - - 2.0 - - - - - false - - - - - - - - - - - - - - enabled - enabled - - + + + Tutorial + + + + + + + + 0.0 + 0.0 + 0.0 + + + + 10.0 + + + 2.0 + + + + CAUD + + + + + CAUD + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/dkcr/Script/VerticalRocketBarrel.xml b/templates/dkcr/Script/VerticalRocketBarrel.xml index 535f7569..1ef0f597 100644 --- a/templates/dkcr/Script/VerticalRocketBarrel.xml +++ b/templates/dkcr/Script/VerticalRocketBarrel.xml @@ -1,128 +1,55 @@ - - VerticalRocketBarrel - - - - - - - 0.0, 0.0, -90.0 - - - - - - - - - 0.5 - - - 0.0, 0.0, -0.7 - - - - - - - - - - - - - 15.0 - - - 35.0 - - - 3.0 - - - 12.5 - - - 20.0 - - - 15.0 - - - 20.0 - - - -9.0 - - - 0.8 - - - 0.8 - - - 0.2 - - - 0.8 - - - 10.0 - - - 0.95 - - - 360.0 - - - 30.0 - - - 35.0 - - - 4.0 - - - 10.0 - - - 4.0 - - - 4.0 - - - 1.0 - - - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + VerticalRocketBarrel + + + + + + + + 0.0 + 0.0 + -90.0 + + + + + + + + + + 0.5 + + + + 0.0 + 0.0 + -0.69999999 + + + + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/dkcr/Script/VolcanoBossBodyPart.xml b/templates/dkcr/Script/VolcanoBossBodyPart.xml index edc8defd..6429bc7a 100644 --- a/templates/dkcr/Script/VolcanoBossBodyPart.xml +++ b/templates/dkcr/Script/VolcanoBossBodyPart.xml @@ -1,185 +1,69 @@ - - VolcanoBossBodyPart - - RSO_VolcanoBoss.rso - - - - - - - - 0.0, 0.0, 90.0 - - - - - - - - - - - - - 524322 - - - - - - - 1.0 - - - - - - - 1.0 - - - - - 1.0 - - - - - - - - - 0x99761FAF - - - - - - - - - - - - 32.0 - - - 8.0 - - - 10.0 - - - 50.0 - - - - - - - - - - 50.0 - - - - - - - - - - - - 3.4 - - - 0.5 - - - 1.0 - - - 0.5 - - - - - - - - - - - - 1.5 - - - 0.7 - - - 1.0 - - - 0.2 - - - - - - - - - 55.0 - - - 0.5 - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x84506963:0x2B531C2F:0xC5CE83AF - - enabled - enabled - - + + + RSO_VolcanoBoss.rso + + + VolcanoBossBodyPart + + + + + + + + 0.0 + 0.0 + 90.0 + + + + + + + + + + + + + + 524322 + + + + + + + 1.0 + + + + + + + 1.0 + + + + + 1.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/dkcr/Script/VolumeGroup.xml b/templates/dkcr/Script/VolumeGroup.xml index 6f8a1c74..37ea8528 100644 --- a/templates/dkcr/Script/VolumeGroup.xml +++ b/templates/dkcr/Script/VolumeGroup.xml @@ -1,29 +1,24 @@ - - VolumeGroup - - - - - 1.0 - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + VolumeGroup + + + + + 1.0 + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/Waypoint.xml b/templates/dkcr/Script/Waypoint.xml index d5c6fdbe..3f638e13 100644 --- a/templates/dkcr/Script/Waypoint.xml +++ b/templates/dkcr/Script/Waypoint.xml @@ -1,23 +1,19 @@ - - Waypoint - - - - - - - - - - - - - - - script/dkcr/Waypoint.CMDL - - enabled - enabled - - + + + Waypoint + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/dkcr/Script/WorldAttributes.xml b/templates/dkcr/Script/WorldAttributes.xml index 9de120fc..5b9a96f1 100644 --- a/templates/dkcr/Script/WorldAttributes.xml +++ b/templates/dkcr/Script/WorldAttributes.xml @@ -1,32 +1,18 @@ - - WorldAttributes - - - - - - false - - - 0.0, 0.0, 0.0, 1.0 - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + WorldAttributes + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Script/WorldLightFader.xml b/templates/dkcr/Script/WorldLightFader.xml index fb13041e..5e5ea1e1 100644 --- a/templates/dkcr/Script/WorldLightFader.xml +++ b/templates/dkcr/Script/WorldLightFader.xml @@ -1,28 +1,23 @@ - - WorldLightFader - - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + WorldLightFader + + + + 1.0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/dkcr/Structs/ActorMultiKeyframeStruct.xml b/templates/dkcr/Structs/ActorMultiKeyframeStruct.xml index 3d5f3630..9b161e17 100644 --- a/templates/dkcr/Structs/ActorMultiKeyframeStruct.xml +++ b/templates/dkcr/Structs/ActorMultiKeyframeStruct.xml @@ -1,15 +1,18 @@ - - - - -1 - always - - - false - - - false - - - + + + ActorMultiKeyframeStruct + + + Always + -1 + + + false + + + false + + + + diff --git a/templates/dkcr/Structs/ActorParameters.xml b/templates/dkcr/Structs/ActorParameters.xml index 558aeabd..b9285d21 100644 --- a/templates/dkcr/Structs/ActorParameters.xml +++ b/templates/dkcr/Structs/ActorParameters.xml @@ -1,33 +1,36 @@ - - - - - true - - - 1.0 - - - 1.0 - - - false - - - true - - - 0xD086634A - - - false - - - false - - - false - - - + + + ActorParameters + + + + true + + + 1.0 + + + 1.0 + + + false + + + true + + + 0xD086634A + + + false + + + false + + + false + + + + diff --git a/templates/dkcr/Structs/AnimGridModifierData.xml b/templates/dkcr/Structs/AnimGridModifierData.xml index 87d89643..23c16bc7 100644 --- a/templates/dkcr/Structs/AnimGridModifierData.xml +++ b/templates/dkcr/Structs/AnimGridModifierData.xml @@ -1,145 +1,50 @@ - - - - -1 - always - - - true - - - false - - - false - - - 0.0 - - - 0.0 - - - false - - - - 0xE21173B7 - - - - - - - 0xD751E807 - - - - - - - - - - - 0.0 - - - 1.0 - - - 1.0 - - - false - - - true - - - false - - - 7.0 - - - false - - - 5.0 - - - - - - - 0.0 - always - - - 15.0 - - - 10.0 - - - 5.0 - - - 15.0 - - - 10.0 - - - 1.0 - - - 0.0 - - - 0xEC782F50 - - - - - - - - - 6.0 - - - 6.0 - - - false - - - false - - - - false - - - 0x0291D74B - - - 0x3BB45C07 - - - - - - - 10.0 - - - 6.0 - - - - - + + + AnimGridModifierData + + + Always + -1 + + + true + + + false + + + false + + + 0.0 + + + 0.0 + + + false + + + + 0xE21173B7 + + + + + + + 0xD751E807 + + + + + + + + + + + + + diff --git a/templates/dkcr/Structs/AreaPathStructA.xml b/templates/dkcr/Structs/AreaPathStructA.xml index b65f6d64..de45ca97 100644 --- a/templates/dkcr/Structs/AreaPathStructA.xml +++ b/templates/dkcr/Structs/AreaPathStructA.xml @@ -1,17 +1,20 @@ - - - - 0xB9B7640F - - - - - - - - - - - - + + + AreaPathStructA + + + 0xB9B7640F + + + + + + + + + + + + + diff --git a/templates/dkcr/Structs/BeatUpHandlerStruct.xml b/templates/dkcr/Structs/BeatUpHandlerStruct.xml index 9f828c9f..1189e03f 100644 --- a/templates/dkcr/Structs/BeatUpHandlerStruct.xml +++ b/templates/dkcr/Structs/BeatUpHandlerStruct.xml @@ -1,14 +1,17 @@ - - - - 0xB22FD89B - - - 1 - - - 0.0 - - - + + + BeatUpHandlerStruct + + + 0xB22FD89B + + + 1 + + + 0.0 + + + + diff --git a/templates/dkcr/Structs/BirdBossStruct.xml b/templates/dkcr/Structs/BirdBossStruct.xml index a3c3145c..274459b7 100644 --- a/templates/dkcr/Structs/BirdBossStruct.xml +++ b/templates/dkcr/Structs/BirdBossStruct.xml @@ -1,42 +1,45 @@ - - - - 0x8C665F9A - - - 0.0 - - - 20.0 - - - 12.0 - - - 12.0 - - - 2 - - - 2 - - - 4 - - - 0.5 - - - 0.7 - - - - - - - - - - + + + BirdBossStruct + + + 0x8C665F9A + + + 0.0 + + + 20.0 + + + 12.0 + + + 12.0 + + + 2 + + + 2 + + + 4 + + + 0.5 + + + 0.69999999 + + + + + + + + + + + diff --git a/templates/dkcr/Structs/BouncyTireStruct.xml b/templates/dkcr/Structs/BouncyTireStruct.xml deleted file mode 100644 index 8faee3d7..00000000 --- a/templates/dkcr/Structs/BouncyTireStruct.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - 4.6402 - - - 7.6402 - - - diff --git a/templates/dkcr/Structs/CameraInterpolation.xml b/templates/dkcr/Structs/CameraInterpolation.xml index b4aada34..20bddbe2 100644 --- a/templates/dkcr/Structs/CameraInterpolation.xml +++ b/templates/dkcr/Structs/CameraInterpolation.xml @@ -1,54 +1,57 @@ - - - - 3 - always - - - 100.0 - - - 135.0 - - - - - - 3 - always - - - 100.0 - - - 135.0 - - - - - - - 2.0 - - - - - - - - - 3 - always - - - 100.0 - - - 135.0 - - - - - - + + + CameraInterpolation + + + Always + 3 + + + 100.0 + + + 135.0 + + + + + + Always + 3 + + + 100.0 + + + 135.0 + + + + + + + 2.0 + + + + + + + + + Always + 3 + + + 100.0 + + + 135.0 + + + + + + + diff --git a/templates/dkcr/Structs/CameraOrientation.xml b/templates/dkcr/Structs/CameraOrientation.xml index ddccb3dd..2cf25738 100644 --- a/templates/dkcr/Structs/CameraOrientation.xml +++ b/templates/dkcr/Structs/CameraOrientation.xml @@ -1,101 +1,75 @@ - - - - 0x75A7A55F - - - - - - - - - - - - 8 - always - - - 0x33D21F2E - - - - - - - - - - - - 0.0 - - - - 0.0 - - - 0x5B45D51F - - - - - - - - - - - 0x0BCC8352 - - - - - 20.0 - - - 5.0 - - - - - - - - - false - - - - - - - - - - - - 786432 - always - - - - - - - - - 256 - always - - - - - - - - - - + + + CameraOrientation + + + 0x75A7A55F + + + + + + + + + + + + Always + 8 + + + 0x33D21F2E + + + + + + + + + + + + 0.0 + + + + 0.0 + + + 0x5B45D51F + + + + + + + + + + + 0xBCC8352 + + + + + 20.0 + + + 5.0 + + + + + + + + + + + + + + diff --git a/templates/dkcr/Structs/CameraPosition.xml b/templates/dkcr/Structs/CameraPosition.xml index 642ac4d9..cca2c91e 100644 --- a/templates/dkcr/Structs/CameraPosition.xml +++ b/templates/dkcr/Structs/CameraPosition.xml @@ -1,220 +1,28 @@ - - - - 0x59BFFB56 - - - - - - - - - - - 2 - always - - - - - 0 - always - - - 0xD25FBD92 - - - - - - - - - - - 4.0 - - - 3.0 - - - - - - - - - - - 320 - always - - - - - - - - - - - - - - - - - - - 1 - always - - - - - - - - - 0x95BBB57E - - - - - - - - - - - - - - - 26.0, 0.0, 0.0 - - - - - 0xD7ECE572 - - - - - - - - - - - true - - - - - - - - false - - - false - - - - - 0x2AD11F8C - - - - - - - - - - - - 3.0 - - - 1.0 - - - 14.0 - - - 11.0 - - - 5.5 - - - 2.5 - - - 0.75 - - - 2.0 - - - 6.1 - - - true - - - 1.1 - - - true - - - 0.1 - - - 0.0 - - - - - - - - 2.0 - - - 1.0 - - - false - - - - - - - - - - - 0.5 - - - true - - - 0.5 - - - 1.0 - - - - - - - + + + CameraPosition + + + 0x59BFFB56 + + + + + + + + + + + Always + 2 + + + + + + + + + diff --git a/templates/dkcr/Structs/CameraShakerEnvelope.xml b/templates/dkcr/Structs/CameraShakerEnvelope.xml index 233ffb85..9e448ec3 100644 --- a/templates/dkcr/Structs/CameraShakerEnvelope.xml +++ b/templates/dkcr/Structs/CameraShakerEnvelope.xml @@ -1,14 +1,17 @@ - - - - 0x58F1CB59 - - - - - - - - - + + + CameraShakerEnvelope + + + 0x58F1CB59 + + + + + + + + + + diff --git a/templates/dkcr/Structs/ClingPathControlStruct.xml b/templates/dkcr/Structs/ClingPathControlStruct.xml deleted file mode 100644 index 1f2bad3b..00000000 --- a/templates/dkcr/Structs/ClingPathControlStruct.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - 0xD086634A - - - diff --git a/templates/dkcr/Structs/ConditionalTest.xml b/templates/dkcr/Structs/ConditionalTest.xml index 32e70453..a44b4002 100644 --- a/templates/dkcr/Structs/ConditionalTest.xml +++ b/templates/dkcr/Structs/ConditionalTest.xml @@ -1,26 +1,29 @@ - - - - 1 - - - false - - - 0xB22FD89B - - - 0 - - - 0 - - - false - - - 0 - - - + + + ConditionalTest + + + 0x1 + + + false + + + 0xB22FD89B + + + 0 + + + 0 + + + false + + + 0 + + + + diff --git a/templates/dkcr/Structs/ControlCommands.xml b/templates/dkcr/Structs/ControlCommands.xml index 1999b185..aa18ac53 100644 --- a/templates/dkcr/Structs/ControlCommands.xml +++ b/templates/dkcr/Structs/ControlCommands.xml @@ -1,48 +1,51 @@ - - - - 0xF4863F16 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + ControlCommands + + + 0xF4863F16 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/dkcr/Structs/Convergence.xml b/templates/dkcr/Structs/Convergence.xml index d33688ef..94fb1b74 100644 --- a/templates/dkcr/Structs/Convergence.xml +++ b/templates/dkcr/Structs/Convergence.xml @@ -1,95 +1,23 @@ - - - - 0x6DF9B393 - - - - - - - - - - - - 0.0 - - - 0.0 - - - 1.0 - - - - - This struct isn't read by the game, so it has no ingame effect. - - - false - always - - - - 0.0 - - - - - - - true - - - 10.0 - - - 0.0 - always - - - 0.01 - - - 10.0 - - - 1.0 - - - - - - - 0x5A778792 - - - - - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - 0.0 - - - - - - + + + Convergence + + + 0x6DF9B393 + + + + + + + + + + + + + + + + diff --git a/templates/dkcr/Structs/DamageEffectData.xml b/templates/dkcr/Structs/DamageEffectData.xml index 15e6abb1..0d32c942 100644 --- a/templates/dkcr/Structs/DamageEffectData.xml +++ b/templates/dkcr/Structs/DamageEffectData.xml @@ -1,75 +1,94 @@ - - - - 1.0, 1.0, 1.0 - - - false - - - - 5.0 - - - 0.0 - - - 2.0 - - - 4.0 - - - 0.0 - - - false - - - 0.5 - - - false - - - 0.5 - - - 360.0 - - - 0.1 - - - true - - - false - - - false - - - false - - - - 1.0 - - - 1.0, 1.0, 1.0 - - - - false - - - false - - - false - - - - + + + DamageEffectData + + + + 1.0 + 1.0 + 1.0 + + + + false + + + + 5.0 + + + 0.0 + + + 2.0 + + + 4.0 + + + 0.0 + + + false + + + 0.5 + + + false + + + 0.5 + + + 360.0 + + + 0.1 + + + true + + + false + + + false + + + false + + + + PART + + + + 1.0 + + + + 1.0 + 1.0 + 1.0 + + + + + CAUD + + + + false + + + false + + + false + + + + + diff --git a/templates/dkcr/Structs/DamageInfo.xml b/templates/dkcr/Structs/DamageInfo.xml index aa372244..2345203a 100644 --- a/templates/dkcr/Structs/DamageInfo.xml +++ b/templates/dkcr/Structs/DamageInfo.xml @@ -1,57 +1,60 @@ - - - - 0x927FA703 - - - - - - - - - - - - - - - - - - - - - - - - - - 0.0 - - - 0.0 - - - 4.0 - - - 6.0 - - - 12.0 - - - 0 - - - 0x54584D54 - - - - - - - - + + + DamageInfo + + + 0x927FA703 + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0 + + + 0.0 + + + 4.0 + + + 6.0 + + + 12.0 + + + 0 + + + 0x54584D54 + + + + + + + + + diff --git a/templates/dkcr/Structs/DamageVulnerability.xml b/templates/dkcr/Structs/DamageVulnerability.xml index 148d9e33..99258222 100644 --- a/templates/dkcr/Structs/DamageVulnerability.xml +++ b/templates/dkcr/Structs/DamageVulnerability.xml @@ -1,22 +1,25 @@ - - - - 2.0 - - - 0.0 - - - 0.0 - - - 524288 - always - - - 524288 - always - - - + + + DamageVulnerability + + + 2.0 + + + 0.0 + + + 0.0 + + + Always + 524288 + + + Always + 524288 + + + + diff --git a/templates/dkcr/Structs/DebrisPropertiesOrientationEnum.xml b/templates/dkcr/Structs/DebrisPropertiesOrientationEnum.xml index 010d719e..7c85697d 100644 --- a/templates/dkcr/Structs/DebrisPropertiesOrientationEnum.xml +++ b/templates/dkcr/Structs/DebrisPropertiesOrientationEnum.xml @@ -1,13 +1,16 @@ - - - - 0x76A5FBFD - - - - - - - - + + + DebrisPropertiesOrientationEnum + + + 0x76A5FBFD + + + + + + + + + diff --git a/templates/dkcr/Structs/EditorProperties.xml b/templates/dkcr/Structs/EditorProperties.xml index cf2b739e..2893ed3b 100644 --- a/templates/dkcr/Structs/EditorProperties.xml +++ b/templates/dkcr/Structs/EditorProperties.xml @@ -1,14 +1,17 @@ - - - - - - true - - - 3 - always - - - + + + EditorProperties + + + + + true + + + Always + 3 + + + + diff --git a/templates/dkcr/Structs/FOVInterpolationMethod.xml b/templates/dkcr/Structs/FOVInterpolationMethod.xml index 38a0142d..a667e8b2 100644 --- a/templates/dkcr/Structs/FOVInterpolationMethod.xml +++ b/templates/dkcr/Structs/FOVInterpolationMethod.xml @@ -1,14 +1,17 @@ - - - - 0x4C758A06 - - - - - - - - - + + + FOVInterpolationMethod + + + 0x4C758A06 + + + + + + + + + + diff --git a/templates/dkcr/Structs/ForestBossStructA.xml b/templates/dkcr/Structs/ForestBossStructA.xml index c44364b8..4441c8dd 100644 --- a/templates/dkcr/Structs/ForestBossStructA.xml +++ b/templates/dkcr/Structs/ForestBossStructA.xml @@ -1,15 +1,22 @@ - - - - - - - - 15.0 - - - 0.0 - - - + + + ForestBossStructA + + + + CAUD + + + + + + + 15.0 + + + 0.0 + + + + diff --git a/templates/dkcr/Structs/ForestBossStructB.xml b/templates/dkcr/Structs/ForestBossStructB.xml index f1507e15..b047d982 100644 --- a/templates/dkcr/Structs/ForestBossStructB.xml +++ b/templates/dkcr/Structs/ForestBossStructB.xml @@ -1,87 +1,90 @@ - - - - 10.0 - - - 30.0 - - - 10.0 - - - 8.0 - - - 7.0 - - - 6.0 - - - 5.0 - - - 0.1 - - - - - 6.0 - - - 10.0 - - - 10.0 - - - - - - - 10.0 - - - 10.0 - - - 480.0 - - - - - - - 12.0 - - - 10.0 - - - 10.0 - - - 180.0 - - - - - 20.0 - - - - - 20.0 - - - 20.0 - - - 180.0 - - - - - + + + ForestBossStructB + + + 10.0 + + + 30.0 + + + 10.0 + + + 8.0 + + + 7.0 + + + 6.0 + + + 5.0 + + + 0.1 + + + + + 6.0 + + + 10.0 + + + 10.0 + + + + + + + 10.0 + + + 10.0 + + + 480.0 + + + + + + + 12.0 + + + 10.0 + + + 10.0 + + + 180.0 + + + + + 20.0 + + + + + 20.0 + + + 20.0 + + + 180.0 + + + + + + diff --git a/templates/dkcr/Structs/ForestBossStructC.xml b/templates/dkcr/Structs/ForestBossStructC.xml index c0c27f3b..816a9eb0 100644 --- a/templates/dkcr/Structs/ForestBossStructC.xml +++ b/templates/dkcr/Structs/ForestBossStructC.xml @@ -1,55 +1,70 @@ - - - - 1.0, 1.0, 1.0 - - - - - - - - - 1.5 - - - 1.0 - - - 1.0 - - - - - - - - 524322 - - - - - - - 1.0 - - - 20.0 - - - - - - - 1.0 - - - - - 1.0 - - - - - + + + ForestBossStructC + + + + 1.0 + 1.0 + 1.0 + + + + + + + + TXTR + + + + + TXTR + + + + + 1.5 + + + 1.0 + + + 1.0 + + + + + + + + 524322 + + + + + + + 1.0 + + + 20.0 + + + + + + + 1.0 + + + + + 1.0 + + + + + + diff --git a/templates/dkcr/Structs/GenericCreatureStructA.xml b/templates/dkcr/Structs/GenericCreatureStructA.xml deleted file mode 100644 index b200c8ae..00000000 --- a/templates/dkcr/Structs/GenericCreatureStructA.xml +++ /dev/null @@ -1,1313 +0,0 @@ - - - - - 0x26D0F77A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0xD47E7961 - - - - - - - - false - - - true - - - false - - - false - - - true - - - false - - - true - - - - - - - 0.5 - - - 3.0 - - - false - - - 0.33 - - - 0.0 - - - false - - - false - - - 5.0 - - - 1.0 - - - false - - - false - - - - - - - 3.0 - - - - false - - - true - - - - - - - - - - 0xB2A31497 - - - - - - - 0xBD71A966 - - - - - - - 0x81864B79 - - - - - - - - - - 720.0 - - - - - - - false - - - false - - - true - - - false - - - false - - - false - - - false - - - true - - - false - - - false - - - false - - - false - - - true - - - true - - - true - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - true - - - false - - - 0.0 - - - 0.0 - - - 0.0 - - - false - - - false - - - 0.0 - - - 1.0, 0.0, 0.0, 1.0 - - - false - - - 1.0 - - - 1.0 - - - 0.0 - - - false - - - true - - - true - - - false - - - false - - - 0.0 - - - true - - - false - - - 0.5 - - - 1.0 - - - 1.0 - - - 1.0 - - - 0.0 - - - 6.0 - - - 0.5 - - - 10.0 - - - false - - - 3.0 - - - 1.0, 1.0, 1.0 - - - - - - - - - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - - - - - false - - - true - - - 1.0 - - - - - - - false - - - false - - - false - - - 0.0 - - - false - - - 7.0 - - - 1.0 - - - false - - - 3.0 - - - false - - - false - - - - false - - - - - 2.0 - - - 5.0 - - - 4.0 - - - - - - - - - 0.1 - - - 0.0 - - - false - - - false - - - false - - - 0.8 - - - - false - - - 1.0 - - - - - - - 0x779C23E7 - - - - - - - - 2 - - - - - - 2.0 - - - 1.0 - - - - - - - - 1.0 - - - false - - - true - - - 0xA09C5814 - - - - - - - - - false - - - false - - - true - - - 3.0 - - - 0.0 - - - 10.0 - - - 5.0 - - - - - - - 0x957B3EDC - - - - - - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - true - - - - - - - 0.0 - - - 5.0 - - - - - - - 0.5 - - - 0x20A7F919 - - - - - - - - - 0.0 - - - 1.0 - - - 0.0 - - - 0.0 - - - false - - - 5.0 - - - 30.0 - - - 0 - - - false - - - false - - - - - - false - - - false - - - false - - - false - - - false - - - 100.0 - - - - - - - 0.0 - - - false - - - - - - - false - - - 1000.0 - - - false - - - false - - - - - - - true - - - false - - - - - - - true - - - false - - - false - - - false - - - 1.0 - - - 6.0 - - - 6.0 - - - 0.0 - - - 20.0 - - - 5.0 - - - 10.0 - - - 3.0 - - - 3.0 - - - - - - - 5.0 - - - 1.0 - - - 5.0 - - - 5.0 - - - 5.0 - - - 1.0 - - - 10.0 - - - 40.0 - - - 8.0 - - - - - - - - 0.0 - - - - - - - 20.0 - - - 54.0 - - - 1.0 - - - 1.0 - - - - - - - 5.0 - - - 25.0 - - - 15.0 - - - 2.0 - - - 0.0 - - - 0.1 - - - 5.0 - - - 0.5 - - - 0.1 - - - 10.0 - - - 15.0 - - - 0.1 - - - - - - - 0.0 - - - 5.0 - - - 4.0 - - - 4.0 - - - 4.0 - - - 4.0 - - - 1.0 - - - 2.0 - - - 4.0 - - - 2.0 - - - - - - - - - - - 5.0 - - - 0.45 - - - 0x6A6F65BF - - - - - - - 60.0 - - - 2.5 - - - 2.0 - - - 1.0 - - - true - - - 12.0 - - - 0xBC521BB3 - - - - - - - - 1.0 - - - 3.0 - - - 2.0 - - - 20.0 - - - 10.0 - - - true - - - 0.0 - - - 3.0 - - - 4.0 - - - 1.5 - - - false - - - - 2.0 - - - 1.5 - - - 0.0 - - - - - - - 0xEACD24F9 - - - - - - - - 3.0 - - - false - - - 0.375 - - - 1.0 - - - 1.0 - - - 0.2 - - - 12.0 - - - 0.5 - - - 0.3 - - - 0.0 - - - 6.0 - - - 3.0 - - - 2.0 - - - 1.0 - - - 4.0 - - - - - - - - - - 0xB2A31497 - - - - - - - 0xBD71A966 - - - - - - - 0x81864B79 - - - - - - - - - 0x796194F4 - - - - - - - false - - - 1.0 - - - 1 - - - 2.0 - - - - - - - 3.0 - - - false - - - 5.0 - - - 1.0 - - - false - - - - - - - false - - - - - - - 1.0 - - - true - - - 1.0 - - - 0 - - - -1 - - - -1 - - - - - - - 0x61AA6174 - - - - - - - - 15.0 - - - 25.0 - - - 1440.0 - - - true - - - 2.0 - - - 0.1 - - - - - - - false - - - - - - - 0.0 - - - 0.0 - - - 0.0 - - - 3.0 - - - 3.0 - - - 0x648AAF79 - - - - - - - - - - - true - - - 2.0 - - - 0.0 - - - - - - - 10 - - - false - - - true - - - - - -2.0 - - - - - - - -4.0 - - - - - - - -6.0 - - - - - - - -8.0 - - - - - - - -10.0 - - - - - - - 2.0 - - - - - - - 4.0 - - - - - - - 6.0 - - - - - - - 8.0 - - - - - - - 10.0 - - - - - - - - - - 0xE3CB0298 - - - - - - - false - - - 0.0 - - - 5.0 - - - 1.0 - - - 1.0 - - - 0.0 - - - 0.3 - - - true - - - true - - - true - - - 0.0 - - - 120.0 - - - 0.0 - - - 0.5 - - - 0.25 - - - 1.0 - - - 0.0 - - - 0.0 - - - - - - - 0.0 - - - 1.0 - - - - - - - false - - - - - diff --git a/templates/dkcr/Structs/GenericCreatureStructB.xml b/templates/dkcr/Structs/GenericCreatureStructB.xml deleted file mode 100644 index 47c17acb..00000000 --- a/templates/dkcr/Structs/GenericCreatureStructB.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - 0.0 - - - 0.0 - - - 0.0 - - - 3.0 - - - 3.0 - - - 3.0 - - - 3.0 - - - 0.0 - - - false - - - true - - - 1 - - - 0x0B41B960 - - - - - - - diff --git a/templates/dkcr/Structs/GenericCreatureStructC.xml b/templates/dkcr/Structs/GenericCreatureStructC.xml index 2dcdcfeb..92808b88 100644 --- a/templates/dkcr/Structs/GenericCreatureStructC.xml +++ b/templates/dkcr/Structs/GenericCreatureStructC.xml @@ -1,25 +1,32 @@ - - - - - - false - - - 1.0 - - - false - - - true - - - false - - - false - - - + + + GenericCreatureStructC + + + + + RULE + + + + false + + + 1.0 + + + false + + + true + + + false + + + false + + + + diff --git a/templates/dkcr/Structs/GenericCreatureStructD.xml b/templates/dkcr/Structs/GenericCreatureStructD.xml index c6a55123..4f865437 100644 --- a/templates/dkcr/Structs/GenericCreatureStructD.xml +++ b/templates/dkcr/Structs/GenericCreatureStructD.xml @@ -1,61 +1,64 @@ - - - - 0x9FEEEB59 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0xDED898E0 - - - - - - - 0x548C9FF3 - - - - - - - - - + + + GenericCreatureStructD + + + 0x9FEEEB59 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0xDED898E0 + + + + + + + 0x548C9FF3 + + + + + + + + + + diff --git a/templates/dkcr/Structs/GenericCreatureStructE.xml b/templates/dkcr/Structs/GenericCreatureStructE.xml index a2936485..d036763d 100644 --- a/templates/dkcr/Structs/GenericCreatureStructE.xml +++ b/templates/dkcr/Structs/GenericCreatureStructE.xml @@ -1,15 +1,18 @@ - - - - -1 - always - - - 1 - - - false - - - + + + GenericCreatureStructE + + + Always + -1 + + + 1 + + + false + + + + diff --git a/templates/dkcr/Structs/GenericCreatureStructF.xml b/templates/dkcr/Structs/GenericCreatureStructF.xml deleted file mode 100644 index 0eba885a..00000000 --- a/templates/dkcr/Structs/GenericCreatureStructF.xml +++ /dev/null @@ -1,101 +0,0 @@ - - - - - 0.1 - - - 0.5 - - - 0.5 - - - 4.0 - - - 0.1 - - - 0.05 - - - false - - - 0.5 - - - 0.05 - - - 0.05 - - - 12.0 - - - 6.0 - - - 1.0 - - - 1.0 - - - 1.0 - - - 0.2 - - - 0.2 - - - -0.15 - - - -0.2 - - - false - - - 0.5 - - - 0.05 - - - 0.05 - - - 2.0 - - - 6.0 - - - 2.0 - - - 2.0 - - - 0.5 - - - 0.0 - - - -0.05 - - - -0.5 - - - false - - - diff --git a/templates/dkcr/Structs/GenericCreatureStructG.xml b/templates/dkcr/Structs/GenericCreatureStructG.xml deleted file mode 100644 index ec6eb6fc..00000000 --- a/templates/dkcr/Structs/GenericCreatureStructG.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - 3.0 - - - 6.0 - - - -1 - always - - - - diff --git a/templates/dkcr/Structs/GuiWidgetProperties.xml b/templates/dkcr/Structs/GuiWidgetProperties.xml index 1afad396..0ddcb9bf 100644 --- a/templates/dkcr/Structs/GuiWidgetProperties.xml +++ b/templates/dkcr/Structs/GuiWidgetProperties.xml @@ -1,12 +1,15 @@ - - - - - 1 - - - false - - - + + + GuiWidgetProperties + + + + 1 + + + false + + + + diff --git a/templates/dkcr/Structs/HealthInfo.xml b/templates/dkcr/Structs/HealthInfo.xml index ebd40c20..7433e96a 100644 --- a/templates/dkcr/Structs/HealthInfo.xml +++ b/templates/dkcr/Structs/HealthInfo.xml @@ -1,8 +1,11 @@ - - - - 5.0 - - - + + + HealthInfo + + + 5.0 + + + + diff --git a/templates/dkcr/Structs/InterpolationMethod.xml b/templates/dkcr/Structs/InterpolationMethod.xml index f80665bc..2b364cc2 100644 --- a/templates/dkcr/Structs/InterpolationMethod.xml +++ b/templates/dkcr/Structs/InterpolationMethod.xml @@ -1,28 +1,31 @@ - - - - 0xDD7C3483 - - - - - - - - - - - - - - 0.25 - - - 0.75 - - - 1.0 - - - + + + InterpolationMethod + + + 0xDD7C3483 + + + + + + + + + + + + + + 0.25 + + + 0.75 + + + 1.0 + + + + diff --git a/templates/dkcr/Structs/IslandAreaStruct.xml b/templates/dkcr/Structs/IslandAreaStruct.xml index e28911e9..fd532228 100644 --- a/templates/dkcr/Structs/IslandAreaStruct.xml +++ b/templates/dkcr/Structs/IslandAreaStruct.xml @@ -1,10 +1,21 @@ - - - - 0 - - - - - + + + IslandAreaStruct + + + 0 + + + + STRG + + + + + STRG + + + + + diff --git a/templates/dkcr/Structs/IslandHudStruct.xml b/templates/dkcr/Structs/IslandHudStruct.xml index 0ecbb209..3a071430 100644 --- a/templates/dkcr/Structs/IslandHudStruct.xml +++ b/templates/dkcr/Structs/IslandHudStruct.xml @@ -1,16 +1,59 @@ - - - - - - - - - - - - - - - + + + IslandHudStruct + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + TXTR + + + + + diff --git a/templates/dkcr/Structs/JungleBossStructA.xml b/templates/dkcr/Structs/JungleBossStructA.xml index 5b8debcb..30d288b1 100644 --- a/templates/dkcr/Structs/JungleBossStructA.xml +++ b/templates/dkcr/Structs/JungleBossStructA.xml @@ -1,26 +1,22 @@ - - - - - 15.0 - - - - - - - - - - false - - - - - - - - - - + + + JungleBossStructA + + + + TXTR + + + + 15.0 + + + + + + + + + + diff --git a/templates/dkcr/Structs/JungleBossStructB.xml b/templates/dkcr/Structs/JungleBossStructB.xml index 34a8d0a0..a4045dd9 100644 --- a/templates/dkcr/Structs/JungleBossStructB.xml +++ b/templates/dkcr/Structs/JungleBossStructB.xml @@ -1,18 +1,21 @@ - - - - 0xA7F21E62 - - - - - - - - - - - - - + + + JungleBossStructB + + + 0xA7F21E62 + + + + + + + + + + + + + + diff --git a/templates/dkcr/Structs/JungleBossStructC.xml b/templates/dkcr/Structs/JungleBossStructC.xml index feb42dea..93380938 100644 --- a/templates/dkcr/Structs/JungleBossStructC.xml +++ b/templates/dkcr/Structs/JungleBossStructC.xml @@ -1,17 +1,20 @@ - - - - 3 - - - 1.0 - - - 0.0 - - - 35.0 - - - + + + JungleBossStructC + + + 3 + + + 1.0 + + + 0.0 + + + 35.0 + + + + diff --git a/templates/dkcr/Structs/JungleBossStructD.xml b/templates/dkcr/Structs/JungleBossStructD.xml index 5db41b2f..37f97a76 100644 --- a/templates/dkcr/Structs/JungleBossStructD.xml +++ b/templates/dkcr/Structs/JungleBossStructD.xml @@ -1,11 +1,14 @@ - - - - - - - 50.0 - - - + + + JungleBossStructD + + + + + + 50.0 + + + + diff --git a/templates/dkcr/Structs/LayerToggle.xml b/templates/dkcr/Structs/LayerToggle.xml index 286e54d6..81104240 100644 --- a/templates/dkcr/Structs/LayerToggle.xml +++ b/templates/dkcr/Structs/LayerToggle.xml @@ -1,7 +1,15 @@ - - - - - - + + + LayerToggle + true + + + Area ID + + + Layer ID + + + + diff --git a/templates/dkcr/Structs/LightParameters.xml b/templates/dkcr/Structs/LightParameters.xml index 74d4f67e..1950c4ce 100644 --- a/templates/dkcr/Structs/LightParameters.xml +++ b/templates/dkcr/Structs/LightParameters.xml @@ -1,53 +1,64 @@ - - - - 1.0, 1.0, 1.0, 1.0 - - - 0x00000001 - - - - - - - - - true - - - 1 - - - 0.0, 0.0, 0.0 - - - true - - - false - - - false - - - false - - - true - - - 4 - - - 4 - - - 0.0 - - - 0 - - - + + + LightParameters + + + + 1.0 + 1.0 + 1.0 + + + + 0x1 + + + + + + + + + true + + + 1 + + + + 0.0 + 0.0 + 0.0 + + + + true + + + false + + + false + + + false + + + true + + + 4 + + + 4 + + + 0.0 + + + 0 + + + + diff --git a/templates/dkcr/Structs/MayaSpline.xml b/templates/dkcr/Structs/MayaSpline.xml deleted file mode 100644 index d8759fcf..00000000 --- a/templates/dkcr/Structs/MayaSpline.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/templates/dkcr/Structs/MinecartStructA.xml b/templates/dkcr/Structs/MinecartStructA.xml deleted file mode 100644 index 70283535..00000000 --- a/templates/dkcr/Structs/MinecartStructA.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - 0.05 - - - 0.121 - - - 3.0 - - - 6.0 - - - 3.0 - - - 6.0 - - - 0.1 - - - 0.25 - - - 0.25 - - - false - - - diff --git a/templates/dkcr/Structs/MinecartStructB.xml b/templates/dkcr/Structs/MinecartStructB.xml deleted file mode 100644 index d98da62f..00000000 --- a/templates/dkcr/Structs/MinecartStructB.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - false - - - false - - - false - - - true - - - 1 - - - 0.0 - - - diff --git a/templates/dkcr/Structs/MinecartStructC.xml b/templates/dkcr/Structs/MinecartStructC.xml deleted file mode 100644 index 275ccb10..00000000 --- a/templates/dkcr/Structs/MinecartStructC.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/templates/dkcr/Structs/MinecartStructD.xml b/templates/dkcr/Structs/MinecartStructD.xml deleted file mode 100644 index c650a31d..00000000 --- a/templates/dkcr/Structs/MinecartStructD.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/templates/dkcr/Structs/MoleCartStruct.xml b/templates/dkcr/Structs/MoleCartStruct.xml index dcc854d1..5b0b87a4 100644 --- a/templates/dkcr/Structs/MoleCartStruct.xml +++ b/templates/dkcr/Structs/MoleCartStruct.xml @@ -1,25 +1,32 @@ - - - - 0x4DE1561C - - - - - - - 45.0 - - - 45.0 - - - 0.5 - - - - - - - + + + MoleCartStruct + + + 0x4DE1561C + + + + + + + 45.0 + + + 45.0 + + + 0.5 + + + + CAUD + + + + + + + + diff --git a/templates/dkcr/Structs/MoleTrainManagerStructA.xml b/templates/dkcr/Structs/MoleTrainManagerStructA.xml index 9df79499..9947285c 100644 --- a/templates/dkcr/Structs/MoleTrainManagerStructA.xml +++ b/templates/dkcr/Structs/MoleTrainManagerStructA.xml @@ -1,26 +1,29 @@ - - - - true - - - 46.0 - - - 36.0 - - - 25.0 - - - 11.0 - - - 12.0 - - - 5.0 - - - + + + MoleTrainManagerStructA + + + true + + + 46.0 + + + 36.0 + + + 25.0 + + + 11.0 + + + 12.0 + + + 5.0 + + + + diff --git a/templates/dkcr/Structs/MoleTrainManagerStructB.xml b/templates/dkcr/Structs/MoleTrainManagerStructB.xml index 7ad7d6bf..d26e98cd 100644 --- a/templates/dkcr/Structs/MoleTrainManagerStructB.xml +++ b/templates/dkcr/Structs/MoleTrainManagerStructB.xml @@ -1,38 +1,41 @@ - - - - 1.0 - - - 33 - - - 3 - - - 0.25 - - - 0.25 - - - 2.0 - - - 1.25 - - - -10.0 - - - 60.0 - - - 30.5 - - - 20.0 - - - + + + MoleTrainManagerStructB + + + 1.0 + + + 33 + + + 3 + + + 0.25 + + + 0.25 + + + 2.0 + + + 1.25 + + + -10.0 + + + 60.0 + + + 30.5 + + + 20.0 + + + + diff --git a/templates/dkcr/Structs/MotionInterpolationMethod.xml b/templates/dkcr/Structs/MotionInterpolationMethod.xml index 1936903d..f1bdc893 100644 --- a/templates/dkcr/Structs/MotionInterpolationMethod.xml +++ b/templates/dkcr/Structs/MotionInterpolationMethod.xml @@ -1,29 +1,22 @@ - - - - 0x41B91E67 - - - - - - - - - - - - - - - - 0x8C1B1D20 - - - - - - - - + + + MotionInterpolationMethod + + + 0x41B91E67 + + + + + + + + + + + + + + + diff --git a/templates/dkcr/Structs/MultiModelActorStruct.xml b/templates/dkcr/Structs/MultiModelActorStruct.xml index 26ec9a57..77439c1c 100644 --- a/templates/dkcr/Structs/MultiModelActorStruct.xml +++ b/templates/dkcr/Structs/MultiModelActorStruct.xml @@ -1,9 +1,16 @@ - - - - - 0.0 - - - + + + MultiModelActorStruct + + + + CMDL + + + + 0.0 + + + + diff --git a/templates/dkcr/Structs/OceanBridgeStructA.xml b/templates/dkcr/Structs/OceanBridgeStructA.xml index 6b0963ed..662dea84 100644 --- a/templates/dkcr/Structs/OceanBridgeStructA.xml +++ b/templates/dkcr/Structs/OceanBridgeStructA.xml @@ -1,16 +1,19 @@ - - - - 0x2C8E656A - - - - - - - - - - - + + + OceanBridgeStructA + + + 0x2C8E656A + + + + + + + + + + + + diff --git a/templates/dkcr/Structs/OceanBridgeStructB.xml b/templates/dkcr/Structs/OceanBridgeStructB.xml index 7dea462e..54a55dfc 100644 --- a/templates/dkcr/Structs/OceanBridgeStructB.xml +++ b/templates/dkcr/Structs/OceanBridgeStructB.xml @@ -1,14 +1,17 @@ - - - - 0xAE14FDF2 - - - - - - - - - + + + OceanBridgeStructB + + + 0xAE14FDF2 + + + + + + + + + + diff --git a/templates/dkcr/Structs/OffsetInterpolant.xml b/templates/dkcr/Structs/OffsetInterpolant.xml index 4e45245d..da0d8bf6 100644 --- a/templates/dkcr/Structs/OffsetInterpolant.xml +++ b/templates/dkcr/Structs/OffsetInterpolant.xml @@ -1,8 +1,11 @@ - - - - - - - + + + OffsetInterpolant + + + + + + + diff --git a/templates/dkcr/Structs/OrientationInterpolationMethod.xml b/templates/dkcr/Structs/OrientationInterpolationMethod.xml index 6baab716..a7f2bcaf 100644 --- a/templates/dkcr/Structs/OrientationInterpolationMethod.xml +++ b/templates/dkcr/Structs/OrientationInterpolationMethod.xml @@ -1,24 +1,27 @@ - - - - 0x9087E681 - - - - - - - - - - - - - - 0xED3D458D - - - - - + + + OrientationInterpolationMethod + + + 0x9087E681 + + + + + + + + + + + + + + 0xED3D458D + + + + + + diff --git a/templates/dkcr/Structs/PathDetermination.xml b/templates/dkcr/Structs/PathDetermination.xml index e053e9ad..36e0f450 100644 --- a/templates/dkcr/Structs/PathDetermination.xml +++ b/templates/dkcr/Structs/PathDetermination.xml @@ -1,28 +1,18 @@ - - - - 0x571AA317 - - - - - - - - - - - 0x15F0534B - - - - - - - - - - - - + + + PathDetermination + + + 0x571AA317 + + + + + + + + + + + diff --git a/templates/dkcr/Structs/PatternedAI.xml b/templates/dkcr/Structs/PatternedAI.xml deleted file mode 100644 index d81604a2..00000000 --- a/templates/dkcr/Structs/PatternedAI.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - 150.0 - - - - - 2.0 - - - - 1.0 - - - 2.0 - - - 0.0, 0.0, 0.0 - - - 0.1 - - - 0.16 - - - - - - 0 - - - 5.0 - - - false - - - - - - true - - - 5.0 - - - 1.0 - - - 120.0 - - - true - - - 100.0 - - - 0.0 - - - 60.0 - - - 6.0 - - - 11.0 - - - 2.0 - - - 1.0 - - - diff --git a/templates/dkcr/Structs/PeanutStruct.xml b/templates/dkcr/Structs/PeanutStruct.xml deleted file mode 100644 index 9b6065e9..00000000 --- a/templates/dkcr/Structs/PeanutStruct.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/templates/dkcr/Structs/PickupRelayStruct.xml b/templates/dkcr/Structs/PickupRelayStruct.xml index b2a715af..be4b3d16 100644 --- a/templates/dkcr/Structs/PickupRelayStruct.xml +++ b/templates/dkcr/Structs/PickupRelayStruct.xml @@ -1,35 +1,38 @@ - - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - + + + PickupRelayStruct + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + diff --git a/templates/dkcr/Structs/PlatformMotionProperties.xml b/templates/dkcr/Structs/PlatformMotionProperties.xml index 6d8e3dc9..47927453 100644 --- a/templates/dkcr/Structs/PlatformMotionProperties.xml +++ b/templates/dkcr/Structs/PlatformMotionProperties.xml @@ -1,26 +1,33 @@ - - - - - - 10.0 - - - 1.0 - - - 0.0 - - - 262432 - always - - - - - - 0.0, 0.0, 0.0 - - - + + + PlatformMotionProperties + + + + + 10.0 + + + 1.0 + + + 0.0 + + + Always + 262432 + + + + + + + 0.0 + 0.0 + 0.0 + + + + + diff --git a/templates/dkcr/Structs/ProjectileBounceData.xml b/templates/dkcr/Structs/ProjectileBounceData.xml index 4be6b0b8..beac372a 100644 --- a/templates/dkcr/Structs/ProjectileBounceData.xml +++ b/templates/dkcr/Structs/ProjectileBounceData.xml @@ -1,22 +1,37 @@ - - - - 1 - - - - 1.0 - - - - false - - - 1.0 - - - 1.0, 1.0, 0.0 - - - + + + ProjectileBounceData + + + 1 + + + + CAUD + + + + 1.0 + + + + PART + + + + false + + + 1.0 + + + + 1.0 + 1.0 + 0.0 + + + + + diff --git a/templates/dkcr/Structs/ProjectileCollisionData.xml b/templates/dkcr/Structs/ProjectileCollisionData.xml index b9851520..de6585af 100644 --- a/templates/dkcr/Structs/ProjectileCollisionData.xml +++ b/templates/dkcr/Structs/ProjectileCollisionData.xml @@ -1,27 +1,38 @@ - - - - 64 - always - - - 0x3AF0EDA3 - - - - - - - - - 1.0 - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - + + + ProjectileCollisionData + + + Always + 64 + + + 0x3AF0EDA3 + + + + + + + + + 1.0 + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + diff --git a/templates/dkcr/Structs/ProjectileData.xml b/templates/dkcr/Structs/ProjectileData.xml index bef3aee8..9cd0965b 100644 --- a/templates/dkcr/Structs/ProjectileData.xml +++ b/templates/dkcr/Structs/ProjectileData.xml @@ -1,54 +1,79 @@ - - - - 30.0 - - - false - - - false - - - - false - - - false - - - - - - false - - - - - - 0x482099A8 - - - - - - - - false - - - false - - - 0.0, 0.0, 0.0 - - - - - - - - - - + + + ProjectileData + + + 30.0 + + + false + + + false + + + + false + + + false + + + + PART + + + + + PART + + + + + PART + + + + false + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + 0x482099A8 + + + + + + + + false + + + false + + + + 0.0 + 0.0 + 0.0 + + + + + + diff --git a/templates/dkcr/Structs/ProjectileMotionData.xml b/templates/dkcr/Structs/ProjectileMotionData.xml index c788e1ec..6d23ef60 100644 --- a/templates/dkcr/Structs/ProjectileMotionData.xml +++ b/templates/dkcr/Structs/ProjectileMotionData.xml @@ -1,129 +1,26 @@ - - - - 0xBBC76ABE - - - - - - - - - - - - - - 0xA85208A3 - - - - - - - - - - - - - 1.0, 0.0, 0.0 - - - 10.0 - - - 1.0 - - - - - - - 0x4278CA52 - - - - - - - - 0.0 - - - 0xC4585AA5 - - - - - - - - 1.0 - - - 10.0 - - - 3.0 - - - false - - - - - - - - - - - - - - 0x43EF7897 - - - - - - - - 0.0 - - - 3.0 - - - - - false - - - - - - - - - - - - - 0x6500CF77 - - - - - - - 90.0 - - - - - - + + + ProjectileMotionData + + + 0xBBC76ABE + + + + + + + + + + + + + + + + + + + diff --git a/templates/dkcr/Structs/ProjectileRenderData.xml b/templates/dkcr/Structs/ProjectileRenderData.xml index 4fce2a2a..8896028f 100644 --- a/templates/dkcr/Structs/ProjectileRenderData.xml +++ b/templates/dkcr/Structs/ProjectileRenderData.xml @@ -1,30 +1,19 @@ - - - - 0x21D587F4 - - - - - - - - - - - - - - - - - - - - 0.0 - - - - - + + + ProjectileRenderData + + + 0x21D587F4 + + + + + + + + + + + + diff --git a/templates/dkcr/Structs/ReactiveObjectStruct.xml b/templates/dkcr/Structs/ReactiveObjectStruct.xml deleted file mode 100644 index 2bc1e2ad..00000000 --- a/templates/dkcr/Structs/ReactiveObjectStruct.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - 0x62269F84 - - - - - - - - - - - - - false - - - false - - - false - - - false - - - -1 - always - - - 0.0 - - - 1.0 - - - 0.0, 0.0, 0.0 - - - diff --git a/templates/dkcr/Structs/RobotChickenFlyerStructA.xml b/templates/dkcr/Structs/RobotChickenFlyerStructA.xml index 908a599e..e54f90cd 100644 --- a/templates/dkcr/Structs/RobotChickenFlyerStructA.xml +++ b/templates/dkcr/Structs/RobotChickenFlyerStructA.xml @@ -1,17 +1,20 @@ - - - - 55.0 - - - 20.0 - - - 12.0 - - - 12.0 - - - + + + RobotChickenFlyerStructA + + + 55.0 + + + 20.0 + + + 12.0 + + + 12.0 + + + + diff --git a/templates/dkcr/Structs/RobotChickenFlyerStructB.xml b/templates/dkcr/Structs/RobotChickenFlyerStructB.xml index 18848206..6156db5b 100644 --- a/templates/dkcr/Structs/RobotChickenFlyerStructB.xml +++ b/templates/dkcr/Structs/RobotChickenFlyerStructB.xml @@ -1,38 +1,27 @@ - - - - 0xB5C34B64 - - - - - - - - - - - 3 - - - - - 0x226CDE94 - - - - - - - - 0x25234BDB - - - - - - - - - + + + RobotChickenFlyerStructB + + + 0xB5C34B64 + + + + + + + + + + + 3 + + + + + + + + + diff --git a/templates/dkcr/Structs/RobotChickenStructA.xml b/templates/dkcr/Structs/RobotChickenStructA.xml index 0b813949..75a3cc7b 100644 --- a/templates/dkcr/Structs/RobotChickenStructA.xml +++ b/templates/dkcr/Structs/RobotChickenStructA.xml @@ -1,26 +1,29 @@ - - - - 5 - - - 4 - - - 7 - - - 33 - - - 33 - - - -1 - - - -1 - - - + + + RobotChickenStructA + + + 5 + + + 4 + + + 7 + + + 33 + + + 33 + + + -1 + + + -1 + + + + diff --git a/templates/dkcr/Structs/RobotChickenStructB.xml b/templates/dkcr/Structs/RobotChickenStructB.xml index a8463a5f..67f83e2d 100644 --- a/templates/dkcr/Structs/RobotChickenStructB.xml +++ b/templates/dkcr/Structs/RobotChickenStructB.xml @@ -1,101 +1,74 @@ - - - - 0xB5C34B64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - 1 - - - - - 2.0 - - - - - - - 2.0 - - - - - - - - 2.0 - - - - - - - 2.0 - - - - - - - 2.0 - - - - - - - - - - - - - - - - - - - - - - - - - - + + + RobotChickenStructB + + + 0xB5C34B64 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/dkcr/Structs/RotationSplines.xml b/templates/dkcr/Structs/RotationSplines.xml index 6aedb3c3..181a8567 100644 --- a/templates/dkcr/Structs/RotationSplines.xml +++ b/templates/dkcr/Structs/RotationSplines.xml @@ -1,8 +1,11 @@ - - - - - - - + + + RotationSplines + + + + + + + diff --git a/templates/dkcr/Structs/SavedStateID.xml b/templates/dkcr/Structs/SavedStateID.xml index 205ac5b5..8f74aece 100644 --- a/templates/dkcr/Structs/SavedStateID.xml +++ b/templates/dkcr/Structs/SavedStateID.xml @@ -1,21 +1,29 @@ - - - - 0 - always - - - 0 - always - - - 0 - always - - - 0 - always - - - + + + SavedStateID + true + + + State ID 1 + Always + 0 + + + State ID 2 + Always + 0 + + + State ID 3 + Always + 0 + + + State ID 4 + Always + 0 + + + + diff --git a/templates/dkcr/Structs/ScaleSplines.xml b/templates/dkcr/Structs/ScaleSplines.xml index 05d9e73b..ed519e37 100644 --- a/templates/dkcr/Structs/ScaleSplines.xml +++ b/templates/dkcr/Structs/ScaleSplines.xml @@ -1,8 +1,11 @@ - - - - - - - + + + ScaleSplines + + + + + + + diff --git a/templates/dkcr/Structs/ShadowData.xml b/templates/dkcr/Structs/ShadowData.xml index ea4fc6f5..d9a272ec 100644 --- a/templates/dkcr/Structs/ShadowData.xml +++ b/templates/dkcr/Structs/ShadowData.xml @@ -1,36 +1,43 @@ - - - - false - - - - 0xB5F070C1 - - - - - - - - - 0.25 - - - 0.75 - - - 0.25 - - - 1.0 - - - 20.0 - - - 0.05 - - - + + + ShadowData + + + false + + + + TXTR + + + + 0xB5F070C1 + + + + + + + + + 0.25 + + + 0.75 + + + 0.25 + + + 1.0 + + + 20.0 + + + 0.050000001 + + + + diff --git a/templates/dkcr/Structs/SpindlePositionInterpolant.xml b/templates/dkcr/Structs/SpindlePositionInterpolant.xml index 4692d31b..38350751 100644 --- a/templates/dkcr/Structs/SpindlePositionInterpolant.xml +++ b/templates/dkcr/Structs/SpindlePositionInterpolant.xml @@ -1,22 +1,25 @@ - - - - 0xCEA073FF - - - - - - - - - - - - - - - - - + + + SpindlePositionInterpolant + + + 0xCEA073FF + + + + + + + + + + + + + + + + + + diff --git a/templates/dkcr/Structs/SplineType.xml b/templates/dkcr/Structs/SplineType.xml index b798d00f..67ac6ce3 100644 --- a/templates/dkcr/Structs/SplineType.xml +++ b/templates/dkcr/Structs/SplineType.xml @@ -1,8 +1,11 @@ - - - - 0 - - - + + + SplineType + + + 0 + + + + diff --git a/templates/dkcr/Structs/SuspensionBridgeStruct.xml b/templates/dkcr/Structs/SuspensionBridgeStruct.xml index 97d2d608..907adc38 100644 --- a/templates/dkcr/Structs/SuspensionBridgeStruct.xml +++ b/templates/dkcr/Structs/SuspensionBridgeStruct.xml @@ -1,17 +1,20 @@ - - - - true - - - false - - - false - - - false - - - + + + SuspensionBridgeStruct + + + true + + + false + + + false + + + false + + + + diff --git a/templates/dkcr/Structs/TextProperties.xml b/templates/dkcr/Structs/TextProperties.xml index 4d9d6a5b..0273b507 100644 --- a/templates/dkcr/Structs/TextProperties.xml +++ b/templates/dkcr/Structs/TextProperties.xml @@ -1,51 +1,78 @@ - - - - 0x82B6A62A - - - 1 - - - 1 - - - 100.0 - - - 0 - - - 0 - - - 1.0, 1.0, 1.0, 1.0 - - - 0.0, 0.0, 0.0, 1.0 - - - 1.0, 1.0, 1.0, 1.0 - - - 0.0, 0.0, 0.0, 1.0 - - - 0.0, 0.0, 0.0, 1.0 - - - - 0 - - - 0 - - - false - - - false - - - + + + TextProperties + + + 0x82B6A62A + + + 1 + + + 1 + + + 100.0 + + + 0 + + + 0 + + + + 1.0 + 1.0 + 1.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + 1.0 + 1.0 + 1.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + FONT + + + + 0 + + + 0 + + + false + + + false + + + + diff --git a/templates/dkcr/Structs/TrackObjectModuleData.xml b/templates/dkcr/Structs/TrackObjectModuleData.xml index b6c28896..2a00aeae 100644 --- a/templates/dkcr/Structs/TrackObjectModuleData.xml +++ b/templates/dkcr/Structs/TrackObjectModuleData.xml @@ -1,14 +1,17 @@ - - - - 15.0 - - - 10.0 - - - 5.0 - - - + + + TrackObjectModuleData + + + 15.0 + + + 10.0 + + + 5.0 + + + + diff --git a/templates/dkcr/Structs/TrainTrackManagerStructA.xml b/templates/dkcr/Structs/TrainTrackManagerStructA.xml index 356cd73a..df39a1b4 100644 --- a/templates/dkcr/Structs/TrainTrackManagerStructA.xml +++ b/templates/dkcr/Structs/TrainTrackManagerStructA.xml @@ -1,8 +1,11 @@ - - - - 0.0 - - - + + + TrainTrackManagerStructA + + + 0.0 + + + + diff --git a/templates/dkcr/Structs/TrainTrackManagerStructB.xml b/templates/dkcr/Structs/TrainTrackManagerStructB.xml index 9e4f0e40..a212d9fa 100644 --- a/templates/dkcr/Structs/TrainTrackManagerStructB.xml +++ b/templates/dkcr/Structs/TrainTrackManagerStructB.xml @@ -1,24 +1,11 @@ - - - - - - - - 0xEA8DB211 - - - - - - - - - - 0 - - - - - + + + TrainTrackManagerStructB + + + + + + + diff --git a/templates/dkcr/Structs/Transform.xml b/templates/dkcr/Structs/Transform.xml index 5fe91767..f6dcd19d 100644 --- a/templates/dkcr/Structs/Transform.xml +++ b/templates/dkcr/Structs/Transform.xml @@ -1,14 +1,33 @@ - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - 1.0, 1.0, 1.0 - - - + + + Transform + true + + + Position + + 0.0 + 0.0 + 0.0 + + + + Rotation + + 0.0 + 0.0 + 0.0 + + + + Scale + + 1.0 + 1.0 + 1.0 + + + + + diff --git a/templates/dkcr/Structs/TranslationSplines.xml b/templates/dkcr/Structs/TranslationSplines.xml index 220016f8..87f94ef8 100644 --- a/templates/dkcr/Structs/TranslationSplines.xml +++ b/templates/dkcr/Structs/TranslationSplines.xml @@ -1,8 +1,11 @@ - - - - - - - + + + TranslationSplines + + + + + + + diff --git a/templates/dkcr/Structs/TriggerInfo.xml b/templates/dkcr/Structs/TriggerInfo.xml index 5bce2af7..bdd72236 100644 --- a/templates/dkcr/Structs/TriggerInfo.xml +++ b/templates/dkcr/Structs/TriggerInfo.xml @@ -1,30 +1,37 @@ - - - - 1 - always - - - 128 - always - - - false - - - false - - - - - 0.0, 0.0, 0.0 - - - 1.0 - - - 10.0 - - - + + + TriggerInfo + + + Always + 1 + + + Always + 128 + + + false + + + false + + + + + + 0.0 + 0.0 + 0.0 + + + + 1.0 + + + 10.0 + + + + diff --git a/templates/dkcr/Structs/UnknownStruct.xml b/templates/dkcr/Structs/UnknownStruct.xml index abacd4f8..f63bcfb7 100644 --- a/templates/dkcr/Structs/UnknownStruct.xml +++ b/templates/dkcr/Structs/UnknownStruct.xml @@ -1,6 +1,9 @@ - - - - - + + + UnknownStruct + + + + + diff --git a/templates/dkcr/Structs/UnknownStruct1.xml b/templates/dkcr/Structs/UnknownStruct1.xml deleted file mode 100644 index f3f265cf..00000000 --- a/templates/dkcr/Structs/UnknownStruct1.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - 0x93D88A81 - - - - - - - - - - - diff --git a/templates/dkcr/Structs/UnknownStruct13.xml b/templates/dkcr/Structs/UnknownStruct13.xml index 74bf593d..91b21186 100644 --- a/templates/dkcr/Structs/UnknownStruct13.xml +++ b/templates/dkcr/Structs/UnknownStruct13.xml @@ -1,17 +1,20 @@ - - - - 0xF6FB5CBC - - - - - - - - - true - - - + + + UnknownStruct13 + + + 0xF6FB5CBC + + + + + + + + + true + + + + diff --git a/templates/dkcr/Structs/UnknownStruct14.xml b/templates/dkcr/Structs/UnknownStruct14.xml index e515ffd1..9a1e2868 100644 --- a/templates/dkcr/Structs/UnknownStruct14.xml +++ b/templates/dkcr/Structs/UnknownStruct14.xml @@ -1,14 +1,17 @@ - - - - 0.0 - - - false - - - 0.0 - - - + + + UnknownStruct14 + + + 0.0 + + + false + + + 0.0 + + + + diff --git a/templates/dkcr/Structs/UnknownStruct15.xml b/templates/dkcr/Structs/UnknownStruct15.xml index 02283baf..a6e98d9c 100644 --- a/templates/dkcr/Structs/UnknownStruct15.xml +++ b/templates/dkcr/Structs/UnknownStruct15.xml @@ -1,14 +1,17 @@ - - - - -1.5 - - - 2.75 - - - 6.0 - - - + + + UnknownStruct15 + + + -1.5 + + + 2.75 + + + 6.0 + + + + diff --git a/templates/dkcr/Structs/UnknownStruct17.xml b/templates/dkcr/Structs/UnknownStruct17.xml index 6e6d6b78..52aee425 100644 --- a/templates/dkcr/Structs/UnknownStruct17.xml +++ b/templates/dkcr/Structs/UnknownStruct17.xml @@ -1,12 +1,15 @@ - - - - 0x3643617C - - - - - - - + + + UnknownStruct17 + + + 0x3643617C + + + + + + + + diff --git a/templates/dkcr/Structs/UnknownStruct18.xml b/templates/dkcr/Structs/UnknownStruct18.xml index 1789453f..eda82b7f 100644 --- a/templates/dkcr/Structs/UnknownStruct18.xml +++ b/templates/dkcr/Structs/UnknownStruct18.xml @@ -1,11 +1,14 @@ - - - - false - - - true - - - + + + UnknownStruct18 + + + false + + + true + + + + diff --git a/templates/dkcr/Structs/UnknownStruct2.xml b/templates/dkcr/Structs/UnknownStruct2.xml deleted file mode 100644 index 20027267..00000000 --- a/templates/dkcr/Structs/UnknownStruct2.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - 0.0 - always - - - false - - - 5.0 - - - 1 - - - 3.0 - - - 0.0 - - - false - - - true - - - true - - - false - - - false - - - true - - - diff --git a/templates/dkcr/Structs/UnknownStruct24.xml b/templates/dkcr/Structs/UnknownStruct24.xml index 1b2d1efe..3559f10f 100644 --- a/templates/dkcr/Structs/UnknownStruct24.xml +++ b/templates/dkcr/Structs/UnknownStruct24.xml @@ -1,18 +1,21 @@ - - - - 0 - - - - - - - - - - - - - + + + UnknownStruct24 + + + 0 + + + + + + + + + + + + + + diff --git a/templates/dkcr/Structs/UnknownStruct25.xml b/templates/dkcr/Structs/UnknownStruct25.xml deleted file mode 100644 index b8570e3d..00000000 --- a/templates/dkcr/Structs/UnknownStruct25.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/templates/dkcr/Structs/UnknownStruct26.xml b/templates/dkcr/Structs/UnknownStruct26.xml index cd49922f..6b5179a1 100644 --- a/templates/dkcr/Structs/UnknownStruct26.xml +++ b/templates/dkcr/Structs/UnknownStruct26.xml @@ -1,14 +1,29 @@ - - - - 0.996078, 0.976471, 0.607843, 1.0 - - - 0.956863, 0.788235, 0.32549, 1.0 - - - 0.764706, 0.047059, 0.031373, 1.0 - - - + + + UnknownStruct26 + + + + 0.99607801 + 0.97647101 + 0.60784298 + + + + + 0.95686299 + 0.78823501 + 0.32549 + + + + + 0.76470602 + 0.047059 + 0.031373002 + + + + + diff --git a/templates/dkcr/Structs/UnknownStruct27.xml b/templates/dkcr/Structs/UnknownStruct27.xml index 3cda6a4b..5dc16438 100644 --- a/templates/dkcr/Structs/UnknownStruct27.xml +++ b/templates/dkcr/Structs/UnknownStruct27.xml @@ -1,16 +1,64 @@ - - - - - - - - - - - - - - - + + + UnknownStruct27 + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + STRG + + + + + CAUD + + + + + diff --git a/templates/dkcr/Structs/UnknownStruct28.xml b/templates/dkcr/Structs/UnknownStruct28.xml index da4989b8..79091b51 100644 --- a/templates/dkcr/Structs/UnknownStruct28.xml +++ b/templates/dkcr/Structs/UnknownStruct28.xml @@ -1,20 +1,79 @@ - - - - - - - - - - - - - - - - - - - + + + UnknownStruct28 + + + + FRME + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + + diff --git a/templates/dkcr/Structs/UnknownStruct29.xml b/templates/dkcr/Structs/UnknownStruct29.xml index c8ed2d35..9055ef47 100644 --- a/templates/dkcr/Structs/UnknownStruct29.xml +++ b/templates/dkcr/Structs/UnknownStruct29.xml @@ -1,6 +1,13 @@ - - - - - + + + UnknownStruct29 + + + + FRME + + + + + diff --git a/templates/dkcr/Structs/UnknownStruct3.xml b/templates/dkcr/Structs/UnknownStruct3.xml deleted file mode 100644 index 1302af34..00000000 --- a/templates/dkcr/Structs/UnknownStruct3.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - 0x489196E8 - - - - - - - - - diff --git a/templates/dkcr/Structs/UnknownStruct30.xml b/templates/dkcr/Structs/UnknownStruct30.xml index fe9932cb..678f5e7b 100644 --- a/templates/dkcr/Structs/UnknownStruct30.xml +++ b/templates/dkcr/Structs/UnknownStruct30.xml @@ -1,74 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + UnknownStruct30 + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + + + + TXTR + + + + + diff --git a/templates/dkcr/Structs/UnknownStruct31.xml b/templates/dkcr/Structs/UnknownStruct31.xml index 4680315b..f0ba7f3a 100644 --- a/templates/dkcr/Structs/UnknownStruct31.xml +++ b/templates/dkcr/Structs/UnknownStruct31.xml @@ -1,25 +1,104 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + UnknownStruct31 + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + STRG + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + TXTR + + + + + diff --git a/templates/dkcr/Structs/UnknownStruct32.xml b/templates/dkcr/Structs/UnknownStruct32.xml index 9f6e46d4..98cd5743 100644 --- a/templates/dkcr/Structs/UnknownStruct32.xml +++ b/templates/dkcr/Structs/UnknownStruct32.xml @@ -1,25 +1,28 @@ - - - - - - 10.0 - - - 1.0 - - - 0.0 - - - false - - - false - - - false - - - + + + UnknownStruct32 + + + + + 10.0 + + + 1.0 + + + 0.0 + + + false + + + false + + + false + + + + diff --git a/templates/dkcr/Structs/UnknownStruct33.xml b/templates/dkcr/Structs/UnknownStruct33.xml index fe83aebe..8f6241de 100644 --- a/templates/dkcr/Structs/UnknownStruct33.xml +++ b/templates/dkcr/Structs/UnknownStruct33.xml @@ -1,66 +1,81 @@ - - - - 0x5EEE75C7 - - - - - - - - 0x4FE7BA46 - - - - - - - - 0xA3617170 - - - - - - - - - - 0.0 - - - 0.0 - - - 0.0 - - - 5.0 - - - 5.0 - - - 5.0 - - - 0.0 - - - - 0.0 - - - - - - - 0.5 - - - - - - + + + UnknownStruct33 + + + 0x5EEE75C7 + + + + + + + + 0x4FE7BA46 + + + + + + + + 0xA3617170 + + + + + + + + + + 0.0 + + + 0.0 + + + 0.0 + + + 5.0 + + + 5.0 + + + 5.0 + + + 0.0 + + + + 0.0 + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + 0.5 + + + + + + + diff --git a/templates/dkcr/Structs/UnknownStruct34.xml b/templates/dkcr/Structs/UnknownStruct34.xml index 3747f064..411f2258 100644 --- a/templates/dkcr/Structs/UnknownStruct34.xml +++ b/templates/dkcr/Structs/UnknownStruct34.xml @@ -1,10 +1,33 @@ - - - - - - - - - + + + UnknownStruct34 + + + + FRME + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + STRG + + + + + diff --git a/templates/dkcr/Structs/UnknownStruct35.xml b/templates/dkcr/Structs/UnknownStruct35.xml index 8ce1f128..2ecb9992 100644 --- a/templates/dkcr/Structs/UnknownStruct35.xml +++ b/templates/dkcr/Structs/UnknownStruct35.xml @@ -1,109 +1,208 @@ - - - - - - 1.0, 1.0, 0.356863, 1.0 - - - 1.0, 0.701961, 0.0, 1.0 - - - 0.701961, 0.0, 0.0, 1.0 - - - - - - - 1.0, 0.901961, 0.117647, 1.0 - - - 1.0, 0.545098, 0.117647, 1.0 - - - 0.701961, 0.0, 0.0, 1.0 - - - - - - - 0.627451, 1.0, 0.478431, 1.0 - - - 0.129412, 0.54902, 0.509804, 1.0 - - - 0.031373, 0.176471, 0.031373, 1.0 - - - - - - - 1.0, 1.0, 1.0, 1.0 - - - 0.498039, 0.498039, 0.498039, 1.0 - - - 0.0, 0.0, 0.0, 1.0 - - - - - - - 1.0, 1.0, 0.356863, 1.0 - - - 1.0, 0.701961, 0.0, 1.0 - - - 0.701961, 0.0, 0.0, 1.0 - - - - - - - 1.0, 1.0, 0.356863, 1.0 - - - 1.0, 0.701961, 0.0, 1.0 - - - 0.701961, 0.0, 0.0, 1.0 - - - - - - - 1.0, 0.901961, 0.117647, 1.0 - - - 1.0, 0.545098, 0.117647, 1.0 - - - 0.701961, 0.0, 0.0, 1.0 - - - - - - - 0.0, 0.0, 0.0, 1.0 - - - 0.0, 0.0, 0.0, 1.0 - - - 1.0, 1.0, 1.0, 1.0 - - - - - + + + UnknownStruct35 + + + + + + 1.0 + 1.0 + 0.35686299 + + + + + 1.0 + 0.70196098 + 0.0 + + + + + 0.70196098 + 0.0 + 0.0 + + + + + + + + + 1.0 + 0.90196103 + 0.117647 + + + + + 1.0 + 0.54509801 + 0.117647 + + + + + 0.70196098 + 0.0 + 0.0 + + + + + + + + + 0.627451 + 1.0 + 0.47843099 + + + + + 0.129412 + 0.54901999 + 0.50980401 + + + + + 0.031373002 + 0.17647099 + 0.031373002 + + + + + + + + + 1.0 + 1.0 + 1.0 + + + + + 0.49803901 + 0.49803901 + 0.49803901 + + + + + 0.0 + 0.0 + 0.0 + + + + + + + + + 1.0 + 1.0 + 0.35686299 + + + + + 1.0 + 0.70196098 + 0.0 + + + + + 0.70196098 + 0.0 + 0.0 + + + + + + + + + 1.0 + 1.0 + 0.35686299 + + + + + 1.0 + 0.70196098 + 0.0 + + + + + 0.70196098 + 0.0 + 0.0 + + + + + + + + + 1.0 + 0.90196103 + 0.117647 + + + + + 1.0 + 0.54509801 + 0.117647 + + + + + 0.70196098 + 0.0 + 0.0 + + + + + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + 1.0 + 1.0 + 1.0 + + + + + + + diff --git a/templates/dkcr/Structs/UnknownStruct36.xml b/templates/dkcr/Structs/UnknownStruct36.xml index eb4c7ff4..f8aa4245 100644 --- a/templates/dkcr/Structs/UnknownStruct36.xml +++ b/templates/dkcr/Structs/UnknownStruct36.xml @@ -1,8 +1,23 @@ - - - - - - - + + + UnknownStruct36 + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + diff --git a/templates/dkcr/Structs/UnknownStruct37.xml b/templates/dkcr/Structs/UnknownStruct37.xml deleted file mode 100644 index c3dc7158..00000000 --- a/templates/dkcr/Structs/UnknownStruct37.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - false - - - diff --git a/templates/dkcr/Structs/UnknownStruct38.xml b/templates/dkcr/Structs/UnknownStruct38.xml deleted file mode 100644 index 1ea24cbf..00000000 --- a/templates/dkcr/Structs/UnknownStruct38.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - 30.0, 30.0, 30.0 - - - 0.1 - - - 1.0 - - - 1.0 - - - 0.5 - - - diff --git a/templates/dkcr/Structs/UnknownStruct39.xml b/templates/dkcr/Structs/UnknownStruct39.xml deleted file mode 100644 index 44166b50..00000000 --- a/templates/dkcr/Structs/UnknownStruct39.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - 3.25 - - - 5.25 - - - - - - - - diff --git a/templates/dkcr/Structs/UnknownStruct4.xml b/templates/dkcr/Structs/UnknownStruct4.xml deleted file mode 100644 index 43a8793e..00000000 --- a/templates/dkcr/Structs/UnknownStruct4.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - 1.0 - - - 0.5 - - - 1 - - - diff --git a/templates/dkcr/Structs/UnknownStruct40.xml b/templates/dkcr/Structs/UnknownStruct40.xml deleted file mode 100644 index 421f6e38..00000000 --- a/templates/dkcr/Structs/UnknownStruct40.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - 2.0 - - - 4.5 - - - - diff --git a/templates/dkcr/Structs/UnknownStruct41.xml b/templates/dkcr/Structs/UnknownStruct41.xml deleted file mode 100644 index 9006b692..00000000 --- a/templates/dkcr/Structs/UnknownStruct41.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - 0xB22FD89B - - - 1 - - - 1 - - - 1 - - - 1.0 - - - 1.0, 1.0, 1.0 - - - - - - diff --git a/templates/dkcr/Structs/UnknownStruct42.xml b/templates/dkcr/Structs/UnknownStruct42.xml deleted file mode 100644 index a1cb9925..00000000 --- a/templates/dkcr/Structs/UnknownStruct42.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - 10 - - - - diff --git a/templates/dkcr/Structs/UnknownStruct43.xml b/templates/dkcr/Structs/UnknownStruct43.xml deleted file mode 100644 index 7be8b44a..00000000 --- a/templates/dkcr/Structs/UnknownStruct43.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - 1.0 - - - 9.0 - - - 20.0 - - - diff --git a/templates/dkcr/Structs/UnknownStruct44.xml b/templates/dkcr/Structs/UnknownStruct44.xml deleted file mode 100644 index ce85058d..00000000 --- a/templates/dkcr/Structs/UnknownStruct44.xml +++ /dev/null @@ -1,771 +0,0 @@ - - - - - - - - false - - - 20.0 - - - 40.0 - - - true - - - 30.0 - - - 3.0 - - - 0.95 - - - 0.0 - - - 8.9 - - - 0.5 - - - 0.5 - - - 4.0 - - - 8.0 - - - 12.0 - - - - - - 15.0 - - - 22.0 - - - 28.0 - - - - - - - - 0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - 0 - - - - - - - - - 450.0 - - - false - - - 4.0 - - - true - - - true - - - 2.0 - - - 0.08 - - - 0.2 - - - 1.0 - - - false - - - 6.0 - - - 3.0 - - - - - - - 50.0 - - - 2.0 - - - 3.0 - - - 10.0 - - - 15.0 - - - 25.0 - - - - - - - - - - - - - - - - 0.5 - - - 4.5 - - - - - - - - - - - - 50.0 - - - - - - 10.0 - - - 6.5 - - - 15.0 - - - 0.8 - - - 0.25 - - - 900.0 - - - 10800.0 - - - 500.0 - - - 1.5 - - - 0.4 - - - 0.25 - - - 1.0 - - - - -2.0, 0.4, 1.6 - - - - 0.0, 0.0, 0.0 - - - - 1.1 - - - - - - - - - 30.0, 30.0, 30.0 - - - 0.25 - - - 0.125 - - - 2.0 - - - 2.0 - - - 4.6 - - - - 0.5 - - - 6.0 - - - 1.5 - - - 1.0 - - - 0.1 - - - 0.5 - - - 0.4 - - - - - - - - 10.0 - - - 0.1 - - - 30.0 - - - 1.0 - - - 3.0 - - - 0.1 - - - 7.0 - - - 3.0 - - - 0.5 - - - 3.0 - - - 10.0 - - - 1.1 - - - 4.0 - - - 20.0 - - - 4.0 - - - 20.0 - - - 4.0 - - - 0.0 - - - 2.0 - - - 0.2 - - - 1.0 - - - 5.0 - - - 6.0 - - - 9.0 - - - 6.0 - - - - - - - 20.0 - - - 70.0 - - - 54.0 - - - 20.0 - - - 4.0 - - - 4.0 - - - 7.0 - - - 15.0 - - - 40.0 - - - 40.0 - - - 20.0 - - - 0.1 - - - - 0.5 - - - - - - 0 - - - - - - - - - - - - - - - - - 3.0 - - - 0.35 - - - 1.25 - - - 2.5 - - - - - - - - - - - - - - - 0.5, 2.25, 1.25 - - - 0.5, 2.25, 2.5 - - - 3.0, 1.9, 1.25 - - - -0.6 - - - 0.0, 25.0, 5.0 - - - - - - false - - - - - - - -1 - always - - - -1 - always - - - -1 - always - - - - - - - - - - false - - - false - - - - - - - - - - - - - 1.0 - - - 0.3 - - - 0 - always - - - 0 - always - - - - - - - 0.5 - - - 5.0 - - - 5 - - - 1 - - - - - - - 0x82B6A62A - - - - 1.0, 1.0, 1.0, 1.0 - - - 0.0, 0.0, 0.0, 1.0 - - - 1.0, 1.0, 1.0, 1.0 - - - 0.0, 0.0, 0.0, 1.0 - - - 0.0, 0.0, 0.0, 1.0 - - - - - - - - 0x4F049055 - - - - - - - - 0 - - - 0 - - - - - - - - - false - - - true - - - 3 - - - 3 - - - 1.0 - - - - - - - - - - - - - - - 0.0 - - - - - - - - 0.1 - - - 0.2 - - - 450.0 - - - 3.0 - - - - - - - false - - - 0.75 - - - true - - - true - - - true - - - - - - - 0.8 - - - 30.0 - - - 9.0 - - - 6.5 - - - 0.25 - - - 3.0 - - - 1.125 - - - 0.2 - - - - - - - 1.0 - - - 4.0 - - - 0x80468E1F - - - - - - - 0.0 - - - 2 - - - 6.0 - - - - - - - - - - - 1.0 - - - - - - - false - - - 1.0, 1.0, 1.0 - - - 1.05 - - - 0.2 - - - - - - - 1 - - - - - - - - - - - - - - - diff --git a/templates/dkcr/Structs/UnknownStruct45.xml b/templates/dkcr/Structs/UnknownStruct45.xml deleted file mode 100644 index 90074b20..00000000 --- a/templates/dkcr/Structs/UnknownStruct45.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - 0 - - - 1.0 - - - - 0.95 - - - 55.0 - - - 35.0 - - - 2.0 - - - 0.125 - - - 0.2 - - - 0.0 - - - true - - - false - - - false - - - - - diff --git a/templates/dkcr/Structs/UnknownStruct46.xml b/templates/dkcr/Structs/UnknownStruct46.xml deleted file mode 100644 index df8c960a..00000000 --- a/templates/dkcr/Structs/UnknownStruct46.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - 0 - - - - - - - - - diff --git a/templates/dkcr/Structs/UnknownStruct47.xml b/templates/dkcr/Structs/UnknownStruct47.xml index b12066c7..57db3c7c 100644 --- a/templates/dkcr/Structs/UnknownStruct47.xml +++ b/templates/dkcr/Structs/UnknownStruct47.xml @@ -1,7 +1,18 @@ - - - - - - + + + UnknownStruct47 + + + + PART + + + + + CAUD + + + + + diff --git a/templates/dkcr/Structs/UnknownStruct48.xml b/templates/dkcr/Structs/UnknownStruct48.xml index dcf3abcb..35c7f281 100644 --- a/templates/dkcr/Structs/UnknownStruct48.xml +++ b/templates/dkcr/Structs/UnknownStruct48.xml @@ -1,84 +1,27 @@ - - - - 0xB5C34B64 - - - - - - - - - - - 3 - - - - - 3.0 - - - 7.0 - - - 0.5 - - - 10.0 - - - - - - - 3.0 - - - 7.0 - - - - - - - 0x226CDE94 - - - - - - - - - 0x25234BDB - - - - - - - 6 - - - 20.0 - - - 15.0 - - - 20.0 - - - - - - - 2.0 - - - - - + + + UnknownStruct48 + + + 0xB5C34B64 + + + + + + + + + + + 3 + + + + + + + + + diff --git a/templates/dkcr/Structs/UnknownStruct49.xml b/templates/dkcr/Structs/UnknownStruct49.xml index c06de7ce..07fbf4ce 100644 --- a/templates/dkcr/Structs/UnknownStruct49.xml +++ b/templates/dkcr/Structs/UnknownStruct49.xml @@ -1,17 +1,20 @@ - - - - 9.0 - - - 20.0 - - - 9.0 - - - 270.0 - - - + + + UnknownStruct49 + + + 9.0 + + + 20.0 + + + 9.0 + + + 270.0 + + + + diff --git a/templates/dkcr/Structs/UnknownStruct5.xml b/templates/dkcr/Structs/UnknownStruct5.xml deleted file mode 100644 index d8d0c170..00000000 --- a/templates/dkcr/Structs/UnknownStruct5.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - 0.0 - - - 1.0 - - - 3.0 - - - - - 0 - - - - - - - - diff --git a/templates/dkcr/Structs/UnknownStruct50.xml b/templates/dkcr/Structs/UnknownStruct50.xml index 93b179e0..e345c149 100644 --- a/templates/dkcr/Structs/UnknownStruct50.xml +++ b/templates/dkcr/Structs/UnknownStruct50.xml @@ -1,8 +1,11 @@ - - - - 2.0 - - - + + + UnknownStruct50 + + + 2.0 + + + + diff --git a/templates/dkcr/Structs/UnknownStruct51.xml b/templates/dkcr/Structs/UnknownStruct51.xml index 3a4bb143..7b3e5702 100644 --- a/templates/dkcr/Structs/UnknownStruct51.xml +++ b/templates/dkcr/Structs/UnknownStruct51.xml @@ -1,8 +1,11 @@ - - - - 2.0 - - - + + + UnknownStruct51 + + + 2.0 + + + + diff --git a/templates/dkcr/Structs/UnknownStruct52.xml b/templates/dkcr/Structs/UnknownStruct52.xml index 51c8dad6..fed09fbe 100644 --- a/templates/dkcr/Structs/UnknownStruct52.xml +++ b/templates/dkcr/Structs/UnknownStruct52.xml @@ -1,8 +1,11 @@ - - - - 1.0 - - - + + + UnknownStruct52 + + + 1.0 + + + + diff --git a/templates/dkcr/Structs/UnknownStruct53.xml b/templates/dkcr/Structs/UnknownStruct53.xml index 1dfaac10..87d56574 100644 --- a/templates/dkcr/Structs/UnknownStruct53.xml +++ b/templates/dkcr/Structs/UnknownStruct53.xml @@ -1,9 +1,12 @@ - - - - - 0.0 - - - + + + UnknownStruct53 + + + + 0.0 + + + + diff --git a/templates/dkcr/Structs/UnknownStruct54.xml b/templates/dkcr/Structs/UnknownStruct54.xml index a1c96ea2..42e38eec 100644 --- a/templates/dkcr/Structs/UnknownStruct54.xml +++ b/templates/dkcr/Structs/UnknownStruct54.xml @@ -1,17 +1,20 @@ - - - - 0xB5C34B64 - - - - - - - - - - - - + + + UnknownStruct54 + + + 0xB5C34B64 + + + + + + + + + + + + + diff --git a/templates/dkcr/Structs/UnknownStruct55.xml b/templates/dkcr/Structs/UnknownStruct55.xml index a0b50b17..d6f6fcfb 100644 --- a/templates/dkcr/Structs/UnknownStruct55.xml +++ b/templates/dkcr/Structs/UnknownStruct55.xml @@ -1,18 +1,21 @@ - - - - 0.0 - - - - - 0 - - - - - - - - + + + UnknownStruct55 + + + 0.0 + + + + + 0 + + + + + + + + + diff --git a/templates/dkcr/Structs/UnknownStruct56.xml b/templates/dkcr/Structs/UnknownStruct56.xml index 59bcbc05..09b50812 100644 --- a/templates/dkcr/Structs/UnknownStruct56.xml +++ b/templates/dkcr/Structs/UnknownStruct56.xml @@ -1,121 +1,18 @@ - - - - - - - 1 - - - 2.0 - - - - - 4.0 - - - - - - - 5.0 - - - - - - - - - 1 - - - 5.0 - - - 8.0 - - - 1.0 - - - - - - - - - 1.0 - - - 2 - - - false - - - 2.0 - - - 1.0 - - - 0.5 - - - 0.5 - - - 0.5 - - - 4.0 - - - - - - - 1.0 - - - 2 - - - 2.0 - - - - - - - 1 - - - 3.0 - - - - - - - 1 - - - 1.0 - - - 1.0 - - - 6.0 - - - - - 0.0 - - - + + + UnknownStruct56 + + + + + + + + + + 0.0 + + + + diff --git a/templates/dkcr/Structs/UnknownStruct57.xml b/templates/dkcr/Structs/UnknownStruct57.xml index ac98f9bc..cd6e5bfc 100644 --- a/templates/dkcr/Structs/UnknownStruct57.xml +++ b/templates/dkcr/Structs/UnknownStruct57.xml @@ -1,16 +1,9 @@ - - - - - - 0 - - - - - - - - - + + + UnknownStruct57 + + + + + diff --git a/templates/dkcr/Structs/UnknownStruct58.xml b/templates/dkcr/Structs/UnknownStruct58.xml index 728e56b5..a2091e48 100644 --- a/templates/dkcr/Structs/UnknownStruct58.xml +++ b/templates/dkcr/Structs/UnknownStruct58.xml @@ -1,29 +1,32 @@ - - - - 1 - - - 30.0 - - - 1 - - - 1 - - - 1.0 - - - 1.5 - - - 2.0 - - - 3.0 - - - + + + UnknownStruct58 + + + 1 + + + 30.0 + + + 1 + + + 1 + + + 1.0 + + + 1.5 + + + 2.0 + + + 3.0 + + + + diff --git a/templates/dkcr/Structs/UnknownStruct6.xml b/templates/dkcr/Structs/UnknownStruct6.xml deleted file mode 100644 index 6fc325b7..00000000 --- a/templates/dkcr/Structs/UnknownStruct6.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - 0xD0808BD7 - - - - - - - - - - - diff --git a/templates/dkcr/Structs/UnknownStruct7.xml b/templates/dkcr/Structs/UnknownStruct7.xml index b528a755..0a435331 100644 --- a/templates/dkcr/Structs/UnknownStruct7.xml +++ b/templates/dkcr/Structs/UnknownStruct7.xml @@ -1,7 +1,14 @@ - - - - - - + + + UnknownStruct7 + + + + CMDL + + + + + + diff --git a/templates/dkcr/Structs/UnknownStruct8.xml b/templates/dkcr/Structs/UnknownStruct8.xml index 070a3b52..c2609f5b 100644 --- a/templates/dkcr/Structs/UnknownStruct8.xml +++ b/templates/dkcr/Structs/UnknownStruct8.xml @@ -1,14 +1,17 @@ - - - - 0 - - - false - - - - - - + + + UnknownStruct8 + + + 0 + + + false + + + + + + + diff --git a/templates/dkcr/Structs/Vector2f.xml b/templates/dkcr/Structs/Vector2f.xml index 3be26a5e..822b933c 100644 --- a/templates/dkcr/Structs/Vector2f.xml +++ b/templates/dkcr/Structs/Vector2f.xml @@ -1,11 +1,14 @@ - - - - 0.0 - - - 0.0 - - - + + + Vector2f + + + 0.0 + + + 0.0 + + + + diff --git a/templates/dkcr/Structs/VehicleStructA.xml b/templates/dkcr/Structs/VehicleStructA.xml deleted file mode 100644 index eab30422..00000000 --- a/templates/dkcr/Structs/VehicleStructA.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - 0 - always - - - 0 - always - - - false - - - false - - - true - - - true - - - false - - - 1.1 - - - 15.0 - - - 1.0 - - - true - - - false - - - false - - - false - - - false - - - diff --git a/templates/dkcr/Structs/VehicleStructB.xml b/templates/dkcr/Structs/VehicleStructB.xml deleted file mode 100644 index bae098af..00000000 --- a/templates/dkcr/Structs/VehicleStructB.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - 0 - - - - - - diff --git a/templates/dkcr/Structs/VolcanoBossBodyPartStructA.xml b/templates/dkcr/Structs/VolcanoBossBodyPartStructA.xml index 5ad91d7b..5dae90d2 100644 --- a/templates/dkcr/Structs/VolcanoBossBodyPartStructA.xml +++ b/templates/dkcr/Structs/VolcanoBossBodyPartStructA.xml @@ -1,21 +1,24 @@ - - - - 0xB5C34B64 - - - - - - - - - - - - - - - - + + + VolcanoBossBodyPartStructA + + + 0xB5C34B64 + + + + + + + + + + + + + + + + + diff --git a/templates/dkcr/Structs/VolcanoBossBodyPartStructB.xml b/templates/dkcr/Structs/VolcanoBossBodyPartStructB.xml index 7019c771..2f64323d 100644 --- a/templates/dkcr/Structs/VolcanoBossBodyPartStructB.xml +++ b/templates/dkcr/Structs/VolcanoBossBodyPartStructB.xml @@ -1,110 +1,10 @@ - - - - - - - - 1 - - - 2.0 - - - 30.0 - - - - - - - - 2 - - - 4 - - - 2.0 - - - 1.0 - - - 30.0 - - - - - - - - 1 - - - 30.0 - - - - - - - 1 - - - 30.0 - - - - - - - 3 - - - 5 - - - 0.5 - - - - - - - 1 - - - 3 - - - - - - - 1 - - - - - - - 1 - - - - - - - - - 0 - - - - - - - - + + + VolcanoBossBodyPartStructB + + + + + + diff --git a/templates/dkcr/Structs/VolcanoBossBodyPartStructC.xml b/templates/dkcr/Structs/VolcanoBossBodyPartStructC.xml index 52f505e4..54f5ffbb 100644 --- a/templates/dkcr/Structs/VolcanoBossBodyPartStructC.xml +++ b/templates/dkcr/Structs/VolcanoBossBodyPartStructC.xml @@ -1,33 +1,36 @@ - - - - -1 - always - - - -1 - always - - - -1 - always - - - -1 - always - - - -1 - always - - - -1 - always - - - -1 - always - - - + + + VolcanoBossBodyPartStructC + + + Always + -1 + + + Always + -1 + + + Always + -1 + + + Always + -1 + + + Always + -1 + + + Always + -1 + + + Always + -1 + + + + diff --git a/templates/dkcr/Structs/VolcanoBossBodyPartStructD.xml b/templates/dkcr/Structs/VolcanoBossBodyPartStructD.xml index 43f5c4b8..1e52a034 100644 --- a/templates/dkcr/Structs/VolcanoBossBodyPartStructD.xml +++ b/templates/dkcr/Structs/VolcanoBossBodyPartStructD.xml @@ -1,18 +1,21 @@ - - - - 0xA7F21E62 - - - - - - - - - - - - - + + + VolcanoBossBodyPartStructD + + + 0xA7F21E62 + + + + + + + + + + + + + + diff --git a/templates/mp1/Enums/ControllerButton.xml b/templates/mp1/Enums/ControllerButton.xml deleted file mode 100644 index af880296..00000000 --- a/templates/mp1/Enums/ControllerButton.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/templates/mp1/Enums/Item.xml b/templates/mp1/Enums/Item.xml deleted file mode 100644 index 093ea367..00000000 --- a/templates/mp1/Enums/Item.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/templates/mp1/Enums/PlayerAction.xml b/templates/mp1/Enums/PlayerAction.xml index 09b2ea69..68f89e3b 100644 --- a/templates/mp1/Enums/PlayerAction.xml +++ b/templates/mp1/Enums/PlayerAction.xml @@ -1,72 +1,75 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + PlayerAction + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/mp1/Enums/VulnerabilityType.xml b/templates/mp1/Enums/VulnerabilityType.xml index d455fd43..76a8c74c 100644 --- a/templates/mp1/Enums/VulnerabilityType.xml +++ b/templates/mp1/Enums/VulnerabilityType.xml @@ -1,13 +1,16 @@ - - - - - - - - - - - - + + + VulnerabilityType + + + + + + + + + + + + diff --git a/templates/mp1/Enums/WeaponType.xml b/templates/mp1/Enums/WeaponType.xml index 8e59e2ce..54544dde 100644 --- a/templates/mp1/Enums/WeaponType.xml +++ b/templates/mp1/Enums/WeaponType.xml @@ -1,20 +1,23 @@ - - - - - - - - - - - - - - - - - - - + + + WeaponType + + + + + + + + + + + + + + + + + + + diff --git a/templates/mp1/MasterTemplate.xml b/templates/mp1/MasterTemplate.xml deleted file mode 100644 index e6696ab7..00000000 --- a/templates/mp1/MasterTemplate.xml +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/templates/mp1/Script/AIJumpPoint.xml b/templates/mp1/Script/AIJumpPoint.xml index 6d5b56be..6840df1c 100644 --- a/templates/mp1/Script/AIJumpPoint.xml +++ b/templates/mp1/Script/AIJumpPoint.xml @@ -1,24 +1,30 @@ - - AIJumpPoint - - - - - - - - - - - - - - - - - - enabled - disabled - - + + + AIJumpPoint + + + Name + + + Position + + + Rotation + + + Active + + + Unknown 1 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + + ScaleDisabled + diff --git a/templates/mp1/Script/AIKeyframe.xml b/templates/mp1/Script/AIKeyframe.xml index d4e17436..ebf19df1 100644 --- a/templates/mp1/Script/AIKeyframe.xml +++ b/templates/mp1/Script/AIKeyframe.xml @@ -1,23 +1,34 @@ - - AIKeyframe - - - - - - - - - - - - - - - - - disabled - disabled - - + + + AIKeyframe + + + Name + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + + + 0x00 + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/Actor.xml b/templates/mp1/Script/Actor.xml index d2603c2a..17faba31 100644 --- a/templates/mp1/Script/Actor.xml +++ b/templates/mp1/Script/Actor.xml @@ -1,50 +1,91 @@ - - Actor - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x0B - 0x0A - 0x0C:0x02 - 0x0C:0x04 - - enabled - enabled - - + + + Actor + + + Name + + + Position + + + Rotation + + + Scale + + + Unknown 1 + + + Scan Offset + + + Unknown 2 + + + Unknown 3 + + + + + Model + + CMDL + + + + AnimationParameters + + + + Auto-Play Animation + + + Unknown 5 + + + Bounding Box Collision + + + Unknown 7 + + + Active + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + Unknown 12 + + + Unknown 13 + + + Unknown 14 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x11 + 0x0C:0x00 + + + + + + + + diff --git a/templates/mp1/Script/ActorContraption.xml b/templates/mp1/Script/ActorContraption.xml index 4b38f171..f705857b 100644 --- a/templates/mp1/Script/ActorContraption.xml +++ b/templates/mp1/Script/ActorContraption.xml @@ -1,40 +1,61 @@ - - ActorContraption - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x0A - 0x0B:0x02 - 0x0B:0x04 - - enabled - enabled - - + + + ActorContraption + + + Name + + + Position + + + Rotation + + + Scale + + + Collision Extent + + + Collision/Scan Offset + + + Mass + + + Z Momentum + + + + + AnimationParameters + + + + Flame Particle + + PART + + + + + Active + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x0E + 0x0B:0x00 + + + + + + + diff --git a/templates/mp1/Script/ActorKeyframe.xml b/templates/mp1/Script/ActorKeyframe.xml index 76f14036..1c443292 100644 --- a/templates/mp1/Script/ActorKeyframe.xml +++ b/templates/mp1/Script/ActorKeyframe.xml @@ -1,23 +1,34 @@ - - ActorKeyframe - - - - - - - - - - - - - - - - - disabled - disabled - - + + + ActorKeyframe + + + Name + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + + + 0x00 + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/ActorRotate.xml b/templates/mp1/Script/ActorRotate.xml index 66bae39f..1c5ff506 100644 --- a/templates/mp1/Script/ActorRotate.xml +++ b/templates/mp1/Script/ActorRotate.xml @@ -1,23 +1,32 @@ - - ActorRotate - - - - - - - - - - - - - - - - - disabled - disabled - - + + + ActorRotate + + + Name + + + Rotation Offset + + + Time Scale + + + Unknown 1 + + + Unknown 2 + + + Active + + + + + 0x00 + 0x05 + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/AmbientAI.xml b/templates/mp1/Script/AmbientAI.xml index aaa7d9b2..bf87ee88 100644 --- a/templates/mp1/Script/AmbientAI.xml +++ b/templates/mp1/Script/AmbientAI.xml @@ -1,41 +1,63 @@ - - AmbientAI - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x09 - 0x0A:0x02 - 0x0A:0x04 - - enabled - enabled - - + + + AmbientAI + + + Name + + + Position + + + Rotation + + + Scale + + + Unknown 1 + + + Scan Offset + + + Unknown 2 + + + + + AnimationParameters + + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Active + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x0F + 0x0A:0x00 + + + + + + + diff --git a/templates/mp1/Script/AreaAttributes.xml b/templates/mp1/Script/AreaAttributes.xml index 6a49ac44..635594a2 100644 --- a/templates/mp1/Script/AreaAttributes.xml +++ b/templates/mp1/Script/AreaAttributes.xml @@ -1,40 +1,55 @@ - - AreaAttributes - - - If set to anything other than 1, AreaAttributes will not work. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - script/common/AreaAttributes.TXTR - - disabled - disabled - - + + + AreaAttributes + + + Unknown + If set to anything other than 1, AreaAttributes will not work. + + + Show Skybox + + + Environmental Effect + + + + + + + + + Initial Environmental Effect Density + + + Initial Thermal Heat Level + + + X-Ray Fog Distance + + + Initial World Lighting Level + + + Skybox Model + + CMDL + + + + Phazon Type + + + + + + + + + + + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/AtomicAlpha.xml b/templates/mp1/Script/AtomicAlpha.xml index 6140a7e8..cc8fc989 100644 --- a/templates/mp1/Script/AtomicAlpha.xml +++ b/templates/mp1/Script/AtomicAlpha.xml @@ -1,46 +1,70 @@ - - AtomicAlpha - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - 0x07 - - - - - - - - enabled - enabled - - + + + AtomicAlpha + + + Name + + + Position + + + Rotation + + + Scale + + + + + WPSC + + WPSC + + + + Bomb Model + + CMDL + + + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + + + + + + + + diff --git a/templates/mp1/Script/AtomicBeta.xml b/templates/mp1/Script/AtomicBeta.xml index 33aa54fa..c7b768f0 100644 --- a/templates/mp1/Script/AtomicBeta.xml +++ b/templates/mp1/Script/AtomicBeta.xml @@ -1,46 +1,85 @@ - - AtomicBeta - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - - enabled - enabled - - + + + AtomicBeta + + + Name + + + Position + + + Rotation + + + Scale + + + + + ELSC + + ELSC + + + + WPSC + + WPSC + + + + + Particle + + PART + + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + diff --git a/templates/mp1/Script/Babygoth.xml b/templates/mp1/Script/Babygoth.xml index e7b88a22..eabe0cc8 100644 --- a/templates/mp1/Script/Babygoth.xml +++ b/templates/mp1/Script/Babygoth.xml @@ -1,59 +1,150 @@ - - Babygoth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - 0x10 - - enabled - enabled - - + + + Babygoth + + + Name + + + Position + + + Rotation + + + Scale + + + + + Unknown 1 + + + Unknown 2 + + + WPSC 1 + + WPSC + + + + DamageInfo 1 + + + DamageInfo 2 + + + WPSC 2 + + WPSC + + + + Particle 1 + + PART + + + + DamageInfo 3 + + + DamageVulnerability 1 + + + DamageVulnerability 2 + + + Model + + CMDL + + + + CSKR + + CSKR + + + + Unknown 3 + + + Unknown 4 + + + Particle 2 + + PART + + + + Particle 3 + + PART + + + + Particle 4 + + PART + + + + Particle 5 + + PART + + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + Texture + + TXTR + + + + Unknown 11 + + + Particle 6 + + PART + + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + + diff --git a/templates/mp1/Script/BallTrigger.xml b/templates/mp1/Script/BallTrigger.xml index 8e963a3c..e68c0d78 100644 --- a/templates/mp1/Script/BallTrigger.xml +++ b/templates/mp1/Script/BallTrigger.xml @@ -1,28 +1,43 @@ - - BallTrigger - - - - - - - - - - - - - - - - - - - - - disabled - volume - - - + + + BallTrigger + + + Name + + + Position + + + Scale + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + + + 0x00 + 0x01 + 0x02 + + RotationDisabled + ScaleVolume + BoxShape + diff --git a/templates/mp1/Script/Beetle.xml b/templates/mp1/Script/Beetle.xml index 5d894486..48c8607e 100644 --- a/templates/mp1/Script/Beetle.xml +++ b/templates/mp1/Script/Beetle.xml @@ -1,47 +1,71 @@ - - Beetle - - - - - - - - - - - This is clamped to the beetle's bounding box. - - - - - - - - - - - - - - - - - - - - - - 0x05:0x19 - 0x06:0x02 - 0x06:0x04 - 0x0C - - - - - enabled - enabled - - + + + Beetle + + + Name + + + Unknown 1 + + + Position + + + Rotation + + + Scale + + + + + + Orbit Offset + This is clamped to the beetle's bounding box. + + + Unknown 3 + + + Abdomen Vulnerability + + + Armor Vulnerability + + + Abdomen Model + + CMDL + + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + + + 0x00 + 0x02 + 0x03 + 0x04 + 0x05:0x1A + 0x06:0x00 + + + + + + + + + + + diff --git a/templates/mp1/Script/BloodFlower.xml b/templates/mp1/Script/BloodFlower.xml index f31bb7ba..ef6cabe3 100644 --- a/templates/mp1/Script/BloodFlower.xml +++ b/templates/mp1/Script/BloodFlower.xml @@ -1,43 +1,92 @@ - - BloodFlower - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - - enabled - enabled - - + + + BloodFlower + + + Name + + + Position + + + Rotation + + + Scale + + + + + Particle 1 + + PART + + + + WPSC 1 + + WPSC + + + + WPSC 2 + + WPSC + + + + DamageInfo 1 + + + DamageInfo 2 + + + DamageInfo 3 + + + Particle 2 + + PART + + + + Particle 3 + + PART + + + + Particle 4 + + PART + + + + Unknown 1 + + + Particle 5 + + PART + + + + Unknown 2 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + diff --git a/templates/mp1/Script/Burrower.xml b/templates/mp1/Script/Burrower.xml index ee071ce6..98894d89 100644 --- a/templates/mp1/Script/Burrower.xml +++ b/templates/mp1/Script/Burrower.xml @@ -1,38 +1,69 @@ - - Burrower - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - - enabled - enabled - - + + + Burrower + + + Name + + + Position + + + Rotation + + + Scale + + + + + Particle 1 + + PART + + + + Particle 2 + + PART + + + + WPSC + + WPSC + + + + + Particle 3 + + PART + + + + Always FFFFFFFF + + + Particle 4 + + PART + + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + diff --git a/templates/mp1/Script/Camera.xml b/templates/mp1/Script/Camera.xml index 31c691b9..590e517e 100644 --- a/templates/mp1/Script/Camera.xml +++ b/templates/mp1/Script/Camera.xml @@ -1,35 +1,62 @@ - - Camera - - - - - - - - - - - - - - - - - - - - - - - - - - - script/common/Camera.CMDL - - enabled - disabled - - + + + Camera + + + Name + + + Position + + + Rotation + + + Unknown 1 + + + Shot Duration + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + Unknown 12 + + + + + 0x00 + 0x01 + 0x02 + + + + + ScaleDisabled + diff --git a/templates/mp1/Script/CameraBlurKeyframe.xml b/templates/mp1/Script/CameraBlurKeyframe.xml index cbc8721b..ecdb5f3e 100644 --- a/templates/mp1/Script/CameraBlurKeyframe.xml +++ b/templates/mp1/Script/CameraBlurKeyframe.xml @@ -1,26 +1,38 @@ - - CameraBlurKeyframe - - - - - - - - - - - - - - - - - - script/common/CameraBlurKeyframe.TXTR - - disabled - disabled - - + + + CameraBlurKeyframe + + + Name + + + Active + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + + + 0x00 + 0x01 + + + + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/CameraFilterKeyframe.xml b/templates/mp1/Script/CameraFilterKeyframe.xml index 277a1a24..d74d7e4a 100644 --- a/templates/mp1/Script/CameraFilterKeyframe.xml +++ b/templates/mp1/Script/CameraFilterKeyframe.xml @@ -1,29 +1,50 @@ - - CameraFilterKeyframe - - - - - - - - - - - - - - - - - - - - - script/common/CameraFilterKeyframe.TXTR - - disabled - disabled - - + + + CameraFilterKeyframe + + + Name + + + Active + + + Filter Type + + + Filter Shape + + + Unknown 4 + + + Unknown 5 + + + Filter Color + + + Fade-In Duration + + + Fade-Out Duration + + + Overlay Texture + + TXTR + + + + + + 0x00 + 0x01 + + + + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/CameraHint.xml b/templates/mp1/Script/CameraHint.xml index 5f1048e0..9114c301 100644 --- a/templates/mp1/Script/CameraHint.xml +++ b/templates/mp1/Script/CameraHint.xml @@ -1,116 +1,61 @@ - - CameraHint - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - enabled - disabled - - + + + CameraHint + + + Name + + + Position + + + Rotation + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + + + + + + + Unknown 36 + + + + + + + Unknown 45 + + + Unknown 46 + + + + Unknown 49 + + + Unknown 50 + + + Unknown 51 + + + + + 0x00 + 0x01 + 0x02 + + ScaleDisabled + diff --git a/templates/mp1/Script/CameraHintTrigger.xml b/templates/mp1/Script/CameraHintTrigger.xml index 031c0e6b..a8718e1d 100644 --- a/templates/mp1/Script/CameraHintTrigger.xml +++ b/templates/mp1/Script/CameraHintTrigger.xml @@ -1,27 +1,37 @@ - - CameraHintTrigger - - - - - - - - - - - - - - - - - - - - enabled - volume - - - + + + CameraHintTrigger + + + Name + + + Position + + + Rotation + + + Scale + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + + ScaleVolume + BoxShape + diff --git a/templates/mp1/Script/CameraPitchVolume.xml b/templates/mp1/Script/CameraPitchVolume.xml index 02772783..9a50b93a 100644 --- a/templates/mp1/Script/CameraPitchVolume.xml +++ b/templates/mp1/Script/CameraPitchVolume.xml @@ -1,29 +1,41 @@ - - CameraPitchVolume - - - - - - - - - - - - - - - - - - - - - - enabled - volume - - - + + + CameraPitchVolume + + + Name + + + Position + + + Rotation + + + Scale + + + Active + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04 + + ScaleVolume + BoxShape + diff --git a/templates/mp1/Script/CameraShaker.xml b/templates/mp1/Script/CameraShaker.xml index 3c1803e6..7258b4e8 100644 --- a/templates/mp1/Script/CameraShaker.xml +++ b/templates/mp1/Script/CameraShaker.xml @@ -1,28 +1,44 @@ - - CameraShaker - - - - - - - - - - - - - - - - - - - - script/common/CameraShaker.TXTR - - disabled - disabled - - + + + CameraShaker + + + Name + + + Horizontal Shake + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Vertical Shake + + + Unknown 4 + + + Shake Length + + + Active + + + + + 0x00 + 0x08 + + + + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/CameraWaypoint.xml b/templates/mp1/Script/CameraWaypoint.xml index 7d5ce8e4..2bdf7981 100644 --- a/templates/mp1/Script/CameraWaypoint.xml +++ b/templates/mp1/Script/CameraWaypoint.xml @@ -1,28 +1,36 @@ - - CameraWaypoint - - - - - - - - - - - - - - - - - - - script/common/CameraWaypoint.CMDL - - 0.5 - enabled - enabled - - + + + CameraWaypoint + + + Name + + + Position + + + Rotation + + + Active + + + Unknown 2 + + + Unknown 3 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + + + + + 0.5 + diff --git a/templates/mp1/Script/ChozoGhost.xml b/templates/mp1/Script/ChozoGhost.xml index 7c905f75..e86468bf 100644 --- a/templates/mp1/Script/ChozoGhost.xml +++ b/templates/mp1/Script/ChozoGhost.xml @@ -1,56 +1,119 @@ - - ChozoGhost - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - - enabled - enabled - - + + + ChozoGhost + + + Name + + + Position + + + Rotation + + + Scale + + + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + WPSC 1 + + WPSC + + + + DamageInfo 1 + + + WPSC 2 + + WPSC + + + + DamageInfo 2 + + + BehaveChance 1 + + + BehaveChance 2 + + + BehaveChance 3 + + + Sound ID 1 + + + Unknown 5 + + + Sound ID 2 + + + Sound ID 3 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Particle + + PART + + + + Sound ID 4 + + + Unknown 10 + + + Unknown 11 + + + Unknown 12 + + + Unknown 13 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + diff --git a/templates/mp1/Script/ColorModulate.xml b/templates/mp1/Script/ColorModulate.xml index 6f9ea75c..46655b9d 100644 --- a/templates/mp1/Script/ColorModulate.xml +++ b/templates/mp1/Script/ColorModulate.xml @@ -1,30 +1,52 @@ - - ColorModulate - - - - - - - - - - - - - - - - - - - - - - script/common/ColorModulate.TXTR - - disabled - disabled - - + + + ColorModulate + + + Name + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + + + 0x00 + + + + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/ControllerAction.xml b/templates/mp1/Script/ControllerAction.xml index 07bd3b84..7a49f121 100644 --- a/templates/mp1/Script/ControllerAction.xml +++ b/templates/mp1/Script/ControllerAction.xml @@ -1,21 +1,26 @@ - - ControllerAction - - - - - - - - - - - - - - - disabled - disabled - - + + + ControllerAction + + + Name + + + Active + + + Action + + + Deactivate When Used + + + + + 0x00 + 0x01 + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/Counter.xml b/templates/mp1/Script/Counter.xml index 2e3308e9..518b8414 100644 --- a/templates/mp1/Script/Counter.xml +++ b/templates/mp1/Script/Counter.xml @@ -1,24 +1,30 @@ - - Counter - - - - - - - - - - - - - - - - script/common/Counter.TXTR - - enabled - enabled - - + + + Counter + + + Name + + + Start Value + + + Max Value + + + Reset When Max/Zero Reached + + + Active + + + + + 0x00 + 0x04 + + + + + diff --git a/templates/mp1/Script/CoverPoint.xml b/templates/mp1/Script/CoverPoint.xml index 092bd8ef..b9610128 100644 --- a/templates/mp1/Script/CoverPoint.xml +++ b/templates/mp1/Script/CoverPoint.xml @@ -1,27 +1,41 @@ - - CoverPoint - - - - - - - - - - - - - - - - - - - - - enabled - disabled - - + + + CoverPoint + + + Name + + + Position + + + Rotation + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + + + 0x00 + 0x01 + 0x02 + + ScaleDisabled + diff --git a/templates/mp1/Script/DamageableTrigger.xml b/templates/mp1/Script/DamageableTrigger.xml index 37749860..4a36b69c 100644 --- a/templates/mp1/Script/DamageableTrigger.xml +++ b/templates/mp1/Script/DamageableTrigger.xml @@ -1,44 +1,68 @@ - - DamageableTrigger - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - script/common/DamageableTrigger.TXTR - - disabled - volume - - - + + + DamageableTrigger + + + Name + + + Position + + + Scale + + + + + Render Side + + + + + + + + + + + + Texture 1 + + TXTR + + + + Texture 2 + + TXTR + + + + Texture 3 + + TXTR + + + + Enable Lock-On + + + Active + + + + + + 0x00 + 0x01 + 0x02 + 0x0A + + + + + RotationDisabled + ScaleVolume + BoxShape + diff --git a/templates/mp1/Script/Debris.xml b/templates/mp1/Script/Debris.xml index a730dfe9..4c5c8ecd 100644 --- a/templates/mp1/Script/Debris.xml +++ b/templates/mp1/Script/Debris.xml @@ -1,42 +1,78 @@ - - Debris - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x0C - 0x0D:0x02 - 0x0D:0x04 - - enabled - enabled - - + + + Debris + + + Name + + + Position + + + Rotation + + + Scale + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Model + + CMDL + + + + + Particle + + PART + + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x0D:0x00 + + + + + + + diff --git a/templates/mp1/Script/DebrisExtended.xml b/templates/mp1/Script/DebrisExtended.xml index f33c4d80..35dea3d8 100644 --- a/templates/mp1/Script/DebrisExtended.xml +++ b/templates/mp1/Script/DebrisExtended.xml @@ -1,63 +1,147 @@ - - DebrisExtended - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x14 - 0x15:0x02 - 0x15:0x04 - - enabled - enabled - - + + + DebrisExtended + + + Name + + + Position + + + Rotation + + + Scale + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + Unknown 12 + + + Unknown 13 + + + Unknown 14 + + + Unknown 15 + + + Unknown 16 + + + Model + + CMDL + + + + + Particle 1 + + PART + + + + Unknown 17 + + + Unknown 18 + + + Unknown 19 + + + Unknown 20 + + + Particle 2 + + PART + + + + Unknown 21 + + + Unknown 22 + + + Unknown 23 + + + Unknown 24 + + + Particle 3 + + PART + + + + Unknown 25 + + + Unknown 26 + + + Unknown 27 + + + Unknown 28 + + + Unknown 29 + + + Unknown 30 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x15:0x00 + + + + + + + diff --git a/templates/mp1/Script/DebugCameraWaypoint.xml b/templates/mp1/Script/DebugCameraWaypoint.xml index ea4aeb98..84362006 100644 --- a/templates/mp1/Script/DebugCameraWaypoint.xml +++ b/templates/mp1/Script/DebugCameraWaypoint.xml @@ -1,25 +1,29 @@ - - DebugCameraWaypoint - - - - - - - - - - - - - - - - script/common/CameraWaypoint.CMDL - - 0.5 - enabled - enabled - - + + + DebugCameraWaypoint + + + Name + + + Position + + + Rotation + + + Unknown 1 + + + + + 0x00 + 0x01 + 0x02 + + + + + 0.5 + diff --git a/templates/mp1/Script/DistanceFog.xml b/templates/mp1/Script/DistanceFog.xml index 862676d8..b76ca420 100644 --- a/templates/mp1/Script/DistanceFog.xml +++ b/templates/mp1/Script/DistanceFog.xml @@ -1,27 +1,41 @@ - - DistanceFog - - - - - - - - - - - - - - - - - - - script/common/DistanceFog.TXTR - - disabled - disabled - - + + + DistanceFog + + + Name + + + Mode + + + Color + + + Range + + + Color Delta + + + Range Delta + + + Explicit + + + Active + + + + + 0x00 + 0x07 + + + + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/Dock.xml b/templates/mp1/Script/Dock.xml index 80fa880b..2e19df17 100644 --- a/templates/mp1/Script/Dock.xml +++ b/templates/mp1/Script/Dock.xml @@ -1,29 +1,41 @@ - - Dock - - - - - - - - - - - - - - - - - - - - script/common/Dock.TXTR - - disabled - volume - - - + + + Dock + + + Name + + + Active + + + Position + + + Scale + + + Dock Index + + + Area Index + + + Auto Load + + + + + 0x00 + 0x02 + 0x03 + 0x01 + + + + + RotationDisabled + ScaleVolume + AxisAlignedBoxShape + diff --git a/templates/mp1/Script/DockAreaChange.xml b/templates/mp1/Script/DockAreaChange.xml index c2deb5bc..db92e0a1 100644 --- a/templates/mp1/Script/DockAreaChange.xml +++ b/templates/mp1/Script/DockAreaChange.xml @@ -1,19 +1,22 @@ - - DockAreaChange - - - - - - - - - - - - - disabled - disabled - - + + + DockAreaChange + + + Name + + + Unknown 1 + + + Unknown 2 + + + + + 0x00 + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/Door.xml b/templates/mp1/Script/Door.xml index 1071cade..01d3ecaf 100644 --- a/templates/mp1/Script/Door.xml +++ b/templates/mp1/Script/Door.xml @@ -1,39 +1,61 @@ - - Door - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04 - 0x05:0x02 - 0x05:0x04 - - enabled - enabled - - + + + Door + + + Name + + + Position + + + Rotation + + + Scale + + + AnimationParameters + + + + Scan Offset + + + Collision Size + + + Collision Offset + + + Active + + + Open + + + Unknown 6 + + + Open/Close Animation Length + + + Unknown 8 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x09 + 0x05:0x00 + + + + + + + diff --git a/templates/mp1/Script/Drone.xml b/templates/mp1/Script/Drone.xml index c52e25f1..1f8f719f 100644 --- a/templates/mp1/Script/Drone.xml +++ b/templates/mp1/Script/Drone.xml @@ -1,70 +1,164 @@ - - Drone - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x06:0x19 - 0x07:0x02 - 0x07:0x04 - - enabled - enabled - - + + + Drone + + + Name + + + Unknown 1 + + + Position + + + Rotation + + + Scale + + + Unknown 2 + + + + + DamageInfo 1 + + + Unknown 3 + + + DamageInfo 2 + + + Particle 1 + + PART + + + + Particle 2 + + PART + + + + Model 1 + + CMDL + + + + FlareDef 1 + + + FlareDef 2 + + + FlareDef 3 + + + FlareDef 4 + + + FlareDef 5 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + Unknown 12 + + + Unknown 13 + + + Unknown 14 + + + Unknown 15 + + + Unknown 16 + + + Unknown 17 + + + Unknown 18 + + + Unknown 19 + + + Unknown 20 + + + Unknown 21 + + + Unknown 22 + + + Unknown 23 + + + Unknown 24 + + + Unknown 25 + + + CRSC + + CRSC + + + + Unknown 26 + + + Unknown 27 + + + Unknown 28 + + + Unknown 29 + + + Sound + + + Unknown 30 + + + + + 0x00 + 0x02 + 0x03 + 0x04 + 0x06:0x1A + 0x07:0x00 + + + + + + + diff --git a/templates/mp1/Script/Effect.xml b/templates/mp1/Script/Effect.xml index 3737e7f5..08c6b36b 100644 --- a/templates/mp1/Script/Effect.xml +++ b/templates/mp1/Script/Effect.xml @@ -1,46 +1,94 @@ - - Effect - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - script/common/Effect.TXTR - - enabled - enabled - - + + + Effect + + + Name + + + Position + + + Rotation + + + Scale + + + Particle + + PART + + + + ELSC + + ELSC + + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + Unknown 12 + + + Unknown 13 + + + Unknown 14 + + + Unknown 15 + + + Unknown 16 + + + Unknown 17 + + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x17 + + + + + diff --git a/templates/mp1/Script/ElectroMagneticPulse.xml b/templates/mp1/Script/ElectroMagneticPulse.xml index 46bb3be9..9269594d 100644 --- a/templates/mp1/Script/ElectroMagneticPulse.xml +++ b/templates/mp1/Script/ElectroMagneticPulse.xml @@ -1,30 +1,53 @@ - - ElectroMagneticPulse - - - - - - - - - - - - - - - - - - - - - - - - enabled - disabled - - + + + ElectroMagneticPulse + + + Name + + + Position + + + Rotation + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Particle + + PART + + + + + + 0x00 + 0x01 + 0x02 + + ScaleDisabled + diff --git a/templates/mp1/Script/ElitePirate.xml b/templates/mp1/Script/ElitePirate.xml index de180c23..ff837b82 100644 --- a/templates/mp1/Script/ElitePirate.xml +++ b/templates/mp1/Script/ElitePirate.xml @@ -1,70 +1,175 @@ - - ElitePirate - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x11 - 0x14 - - - - - enabled - enabled - - + + + ElitePirate + + + Name + + + Position + + + Rotation + + + Scale + + + + ActorParameters 1 + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Particle 1 + + PART + + + + Sound ID 1 + + + ActorParameters 2 + + + AnimationParameters + + + Particle 2 + + PART + + + + Sound ID 2 + + + Model + + CMDL + + + + DamageInfo 1 + + + Unknown 9 + + + Particle 3 + + PART + + + + Particle 4 + + PART + + + + Particle 5 + + PART + + + + Particle 6 + + PART + + + + Unknown 10 + + + Unknown 11 + + + Unknown 12 + + + Unknown 13 + + + Unknown 14 + + + Unknown 15 + + + Unknown 16 + + + Sound ID 3 + + + Sound ID 4 + + + Particle 7 + + PART + + + + DamageInfo 2 + + + ELSC + + ELSC + + + + Sound ID 5 + + + Unknown 17 + + + Unknown 18 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + + + + diff --git a/templates/mp1/Script/EnergyBall.xml b/templates/mp1/Script/EnergyBall.xml index 24dcde13..82192e00 100644 --- a/templates/mp1/Script/EnergyBall.xml +++ b/templates/mp1/Script/EnergyBall.xml @@ -1,45 +1,89 @@ - - EnergyBall - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - - enabled - enabled - - + + + EnergyBall + + + Name + + + Position + + + Rotation + + + Scale + + + + + Unknown 1 + + + Unknown 2 + + + DamageInfo 1 + + + Unknown 3 + + + Texture + + TXTR + + + + Sound ID 1 + + + Particle 1 + + PART + + + + ELSC + + ELSC + + + + Sound ID 2 + + + Unknown 4 + + + Unknown 5 + + + Particle 2 + + PART + + + + DamageInfo 2 + + + Unknown 6 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + diff --git a/templates/mp1/Script/EnvFxDensityController.xml b/templates/mp1/Script/EnvFxDensityController.xml index 33645268..ad861675 100644 --- a/templates/mp1/Script/EnvFxDensityController.xml +++ b/templates/mp1/Script/EnvFxDensityController.xml @@ -1,21 +1,26 @@ - - EnvFxDensityController - - - - - - - - - - - - - - - disabled - disabled - - + + + EnvFxDensityController + + + Name + + + Active + + + Density + + + Unknown + + + + + 0x00 + 0x01 + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/Eyeball.xml b/templates/mp1/Script/Eyeball.xml index 63f0f4a4..2d565c11 100644 --- a/templates/mp1/Script/Eyeball.xml +++ b/templates/mp1/Script/Eyeball.xml @@ -1,46 +1,93 @@ - - Eyeball - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x05:0x19 - 0x06:0x02 - 0x06:0x04 - - enabled - enabled - - + + + Eyeball + + + Name + + + Unknown 1 + + + Position + + + Rotation + + + Scale + + + + + Unknown 2 + + + Unknown 3 + + + WPSC + + WPSC + + + + + Particle 1 + + PART + + + + Particle 2 + + PART + + + + Texture 1 + + TXTR + + + + Texture 2 + + TXTR + + + + Unknown 4 + + + Always FFFFFFFF 1 + + + Always FFFFFFFF 2 + + + Always FFFFFFFF 3 + + + Laser Sound + + + Unknown 6 + + + + + 0x00 + 0x02 + 0x03 + 0x04 + 0x05:0x1A + 0x06:0x00 + + + + + + + diff --git a/templates/mp1/Script/FireFlea.xml b/templates/mp1/Script/FireFlea.xml index 9acf179b..60abb341 100644 --- a/templates/mp1/Script/FireFlea.xml +++ b/templates/mp1/Script/FireFlea.xml @@ -1,34 +1,44 @@ - - FireFlea - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - - enabled - enabled - - + + + FireFlea + + + Name + + + Position + + + Rotation + + + Scale + + + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + diff --git a/templates/mp1/Script/FishCloud.xml b/templates/mp1/Script/FishCloud.xml index d605330f..711b965c 100644 --- a/templates/mp1/Script/FishCloud.xml +++ b/templates/mp1/Script/FishCloud.xml @@ -1,59 +1,134 @@ - - FishCloud - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x06 - 0x05 - - enabled - volume - - - + + + FishCloud + + + Name + + + Position + + + Rotation + + + Scale + + + Unknown 1 + + + Model + + CMDL + + + + AnimationParameters + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + Unknown 12 + + + Unknown 13 + + + Unknown 14 + + + Unknown 15 + + + Unknown 16 + + + Unknown 17 + + + Unknown 18 + + + Unknown 19 + + + Particle + + PART + + + + Unknown 21 + + + Unknown 22 + + + Unknown 23 + + + Unknown 24 + + + Unknown 25 + + + Unknown 26 + + + Unknown 27 + + + Unknown 28 + + + Unknown 29 + + + Unknown 30 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + + + + + + ScaleVolume + BoxShape + diff --git a/templates/mp1/Script/FishCloudModifier.xml b/templates/mp1/Script/FishCloudModifier.xml index b11f78f3..e7f58d08 100644 --- a/templates/mp1/Script/FishCloudModifier.xml +++ b/templates/mp1/Script/FishCloudModifier.xml @@ -1,24 +1,35 @@ - - FishCloudModifier - - - - - - - - - - - - - - - - - - disabled - disabled - - + + + FishCloudModifier + + + Name + + + Position + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + + + 0x00 + 0x01 + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/Flaahgra.xml b/templates/mp1/Script/Flaahgra.xml index f7b9cf1e..32296f8e 100644 --- a/templates/mp1/Script/Flaahgra.xml +++ b/templates/mp1/Script/Flaahgra.xml @@ -1,47 +1,97 @@ - - Flaahgra - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x15 - - enabled - enabled - - + + + Flaahgra + + + Name + + + Position + + + Rotation + + + Scale + + + + ActorParameters 1 + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + + WPSC 1 + + WPSC + + + + DamageInfo 1 + + + WPSC 2 + + WPSC + + + + DamageInfo 2 + + + Particle + + PART + + + + DamageInfo 3 + + + ActorParameters 2 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + AnimationParameters + + + DGRP + + DGRP + + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + diff --git a/templates/mp1/Script/FlaahgraTentacle.xml b/templates/mp1/Script/FlaahgraTentacle.xml index 8a88a592..111d421e 100644 --- a/templates/mp1/Script/FlaahgraTentacle.xml +++ b/templates/mp1/Script/FlaahgraTentacle.xml @@ -1,31 +1,35 @@ - - FlaahgraTentacle - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - - enabled - enabled - - + + + FlaahgraTentacle + + + Name + + + Position + + + Rotation + + + Scale + + + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + diff --git a/templates/mp1/Script/FlickerBat.xml b/templates/mp1/Script/FlickerBat.xml index 59ed08c1..04cec14b 100644 --- a/templates/mp1/Script/FlickerBat.xml +++ b/templates/mp1/Script/FlickerBat.xml @@ -1,35 +1,47 @@ - - FlickerBat - - - - - - - - - - - - - - - - - - - - - - - - - 0x05:0x19 - 0x06:0x02 - 0x06:0x04 - - enabled - enabled - - + + + FlickerBat + + + Name + + + Unknown 1 + + + Position + + + Rotation + + + Scale + + + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + + + 0x00 + 0x02 + 0x03 + 0x04 + 0x05:0x1A + 0x06:0x00 + + + + + + + diff --git a/templates/mp1/Script/FlyingPirate.xml b/templates/mp1/Script/FlyingPirate.xml index 63c48402..6bc0b3a2 100644 --- a/templates/mp1/Script/FlyingPirate.xml +++ b/templates/mp1/Script/FlyingPirate.xml @@ -1,61 +1,146 @@ - - FlyingPirate - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - - enabled - enabled - - + + + FlyingPirate + + + Name + + + Position + + + Rotation + + + Scale + + + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + WPSC 1 + + WPSC + + + + DamageInfo 1 + + + Unknown 4 + + + WPSC 2 + + WPSC + + + + DamageInfo 2 + + + WPSC 3 + + WPSC + + + + Unknown 5 + + + Unknown 6 + + + Particle 1 + + PART + + + + DamageInfo 3 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + Unknown 12 + + + Unknown 13 + + + Unknown 14 + + + Unknown 15 + + + Particle 2 + + PART + + + + Particle 3 + + PART + + + + Particle 4 + + PART + + + + Unknown 16 + + + Unknown 17 + + + Unknown 18 + + + Unknown 19 + + + Unknown 20 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + diff --git a/templates/mp1/Script/FogVolume.xml b/templates/mp1/Script/FogVolume.xml index 992d3f23..eb0b0989 100644 --- a/templates/mp1/Script/FogVolume.xml +++ b/templates/mp1/Script/FogVolume.xml @@ -1,27 +1,38 @@ - - FogVolume - - - - - - - - - - - - - - - - - - - - disabled - volume - - - + + + FogVolume + + + Name + + + Position + + + Scale + + + Flicker Speed + + + Unknown + + + Fog Color + + + Active + + + + + 0x00 + 0x01 + 0x02 + 0x06 + + RotationDisabled + ScaleVolume + BoxShape + diff --git a/templates/mp1/Script/Geemer.xml b/templates/mp1/Script/Geemer.xml index 28e2195e..c985bc93 100644 --- a/templates/mp1/Script/Geemer.xml +++ b/templates/mp1/Script/Geemer.xml @@ -1,41 +1,65 @@ - - Geemer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - - enabled - enabled - - + + + Geemer + + + Name + + + Position + + + Rotation + + + Scale + + + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + diff --git a/templates/mp1/Script/Generator.xml b/templates/mp1/Script/Generator.xml index aea7fa49..b418d16a 100644 --- a/templates/mp1/Script/Generator.xml +++ b/templates/mp1/Script/Generator.xml @@ -1,26 +1,38 @@ - - Generator - - - - - - - - - - - - - - - - - - script/common/Generator.TXTR - - enabled - enabled - - + + + Generator + + + Name + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Min Scale Multiplier + + + Max Scale Multiplier + + + + + 0x00 + + + + + diff --git a/templates/mp1/Script/GrapplePoint.xml b/templates/mp1/Script/GrapplePoint.xml index c2479add..a700546b 100644 --- a/templates/mp1/Script/GrapplePoint.xml +++ b/templates/mp1/Script/GrapplePoint.xml @@ -1,26 +1,30 @@ - - GrapplePoint - - - - - - - - - - - - - - - - - - script/common/GrapplePoint.TXTR - - enabled - enabled - - + + + GrapplePoint + + + Name + + + Position + + + Rotation + + + Active + + + + + + 0x00 + 0x01 + 0x02 + 0x03 + + + + + diff --git a/templates/mp1/Script/GunTurret.xml b/templates/mp1/Script/GunTurret.xml index 780dd47e..3aa8081c 100644 --- a/templates/mp1/Script/GunTurret.xml +++ b/templates/mp1/Script/GunTurret.xml @@ -1,73 +1,184 @@ - - GunTurret - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x07 - 0x08:0x02 - 0x08:0x04 - 0x29 - - enabled - enabled - - + + + GunTurret + + + Name + + + Unknown 1 + + + Position + + + Rotation + + + Scale + + + Unknown 2 + + + Scan Offset + + + AnimationParameters + + + + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + Unknown 12 + + + Unknown 13 + + + Unknown 14 + + + Unknown 15 + + + Unknown 16 + + + Unknown 17 + + + Unknown 18 + + WPSC + + + + + Particle 1 + + PART + + + + Particle 2 + + PART + + + + Particle 3 + + PART + + + + Particle 4 + + PART + + + + Particle 5 + + PART + + + + Particle 6 + + PART + + + + Particle 7 + + PART + + + + Unknown 19 + + + Unknown 20 + + + Unknown 21 + + + Unknown 22 + + + Unknown 23 + + + Unknown 24 + + + Model + + CMDL + + + + Unknown 25 + + + Unknown 26 + + + Unknown 27 + + + Unknown 28 + + + Unknown 29 + + + Unknown 30 + + + + + 0x00 + 0x02 + 0x03 + 0x04 + 0x08:0x00 + + + + + + + + diff --git a/templates/mp1/Script/HUDMemo.xml b/templates/mp1/Script/HUDMemo.xml index 2c2b6f6c..488590c2 100644 --- a/templates/mp1/Script/HUDMemo.xml +++ b/templates/mp1/Script/HUDMemo.xml @@ -1,30 +1,41 @@ - - HUDMemo - - - - - - - - - - - - - - - - - - - - - - script/common/HUDMemo.TXTR - - disabled - enabled - - + + + HUDMemo + + + Name + + + First message timer + + + Unknown 1 + + + Memo Type + + + + + + + STRG + + STRG + + + + Active + + + + + 0x00 + 0x05 + + + + + RotationDisabled + diff --git a/templates/mp1/Script/IceSheegoth.xml b/templates/mp1/Script/IceSheegoth.xml index 4258c2d5..796669c5 100644 --- a/templates/mp1/Script/IceSheegoth.xml +++ b/templates/mp1/Script/IceSheegoth.xml @@ -1,62 +1,158 @@ - - IceSheegoth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - - enabled - enabled - - + + + IceSheegoth + + + Name + + + Position + + + Rotation + + + Scale + + + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + DamageVulnerability 1 + + + DamageVulnerability 2 + + + DamageVulnerability 3 + + + WPSC 1 + + WPSC + + + + DamageInfo 1 + + + Unknown 5 + + + Unknown 6 + + + WPSC 2 + + WPSC + + + + Particle 1 + + PART + + + + DamageInfo 2 + + + Particle 2 + + PART + + + + Particle 3 + + PART + + + + Particle 4 + + PART + + + + Particle 5 + + PART + + + + ELSC + + ELSC + + + + Unknown 7 + + + Unknown 8 + + + DamageInfo 3 + + + Sound ID 1 + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + Texture + + TXTR + + + + Sound ID 2 + + + Particle 6 + + PART + + + + Unknown 12 + + + Unknown 13 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + diff --git a/templates/mp1/Script/IceZoomer.xml b/templates/mp1/Script/IceZoomer.xml index c80babbe..4851804d 100644 --- a/templates/mp1/Script/IceZoomer.xml +++ b/templates/mp1/Script/IceZoomer.xml @@ -1,41 +1,63 @@ - - IceZoomer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - - enabled - enabled - - + + + IceZoomer + + + Name + + + Position + + + Rotation + + + Scale + + + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + + Unknown 9 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + diff --git a/templates/mp1/Script/JellyZap.xml b/templates/mp1/Script/JellyZap.xml index 0baac76f..787bf207 100644 --- a/templates/mp1/Script/JellyZap.xml +++ b/templates/mp1/Script/JellyZap.xml @@ -1,45 +1,75 @@ - - JellyZap - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - - enabled - enabled - - + + + JellyZap + + + Name + + + Position + + + Rotation + + + Scale + + + + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + Unknown 12 + + + Unknown 13 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + diff --git a/templates/mp1/Script/Magdolite.xml b/templates/mp1/Script/Magdolite.xml index 6c978388..a2c356e8 100644 --- a/templates/mp1/Script/Magdolite.xml +++ b/templates/mp1/Script/Magdolite.xml @@ -1,57 +1,88 @@ - - Magdolite - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - 0x0C - - enabled - enabled - - + + + Magdolite + + + Name + + + Position + + + Rotation + + + Scale + + + + + Unknown 1 + + + Unknown 2 + + + DamageInfo 1 + + + DamageInfo 2 + + + DamageVulnerability 1 + + + DamageVulnerability 2 + + + Model + + CMDL + + + + CSKR + + CSKR + + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + + Unknown 12 + + + Unknown 13 + + + Unknown 14 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + + diff --git a/templates/mp1/Script/MazeNode.xml b/templates/mp1/Script/MazeNode.xml index a37d246a..9d8e56be 100644 --- a/templates/mp1/Script/MazeNode.xml +++ b/templates/mp1/Script/MazeNode.xml @@ -1,28 +1,44 @@ - - MazeNode - - - - - - - - - - - - - - - - - - - - - - enabled - disabled - - + + + MazeNode + + + Name + + + Position + + + Rotation + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + + + 0x00 + 0x01 + 0x02 + + ScaleDisabled + diff --git a/templates/mp1/Script/MemoryRelay.xml b/templates/mp1/Script/MemoryRelay.xml index 96dc7e32..fa521ad5 100644 --- a/templates/mp1/Script/MemoryRelay.xml +++ b/templates/mp1/Script/MemoryRelay.xml @@ -1,22 +1,25 @@ - - MemoryRelay - - - - - - - - - - - - - - script/common/MemoryRelay.TXTR - - disabled - enabled - - + + + MemoryRelay + + + Name + + + Unknown 1 + + + Active + + + + + 0x00 + 0x02 + + + + + RotationDisabled + diff --git a/templates/mp1/Script/MetareeAlpha.xml b/templates/mp1/Script/MetareeAlpha.xml index cbe8bc16..e0a302fa 100644 --- a/templates/mp1/Script/MetareeAlpha.xml +++ b/templates/mp1/Script/MetareeAlpha.xml @@ -1,37 +1,51 @@ - - MetareeAlpha - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - - enabled - enabled - - + + + MetareeAlpha + + + Name + + + Position + + + Rotation + + + Scale + + + + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + diff --git a/templates/mp1/Script/MetroidAlpha.xml b/templates/mp1/Script/MetroidAlpha.xml index fbfab757..a820cd8a 100644 --- a/templates/mp1/Script/MetroidAlpha.xml +++ b/templates/mp1/Script/MetroidAlpha.xml @@ -1,49 +1,81 @@ - - MetroidAlpha - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x05:0x19 - 0x0F - 0x10 - 0x11 - 0x12 - 0x06:0x02 - 0x06:0x04 - - enabled - enabled - - + + + MetroidAlpha + + + Name + + + Unknown 1 + + + Position + + + Rotation + + + Scale + + + + + DamageVulnerability 1 + + + DamageVulnerability 2 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + AnimationParameters 1 + + + AnimationParameters 2 + + + AnimationParameters 3 + + + AnimationParameters 4 + + + Unknown 8 + + + + + 0x00 + 0x02 + 0x03 + 0x04 + 0x05:0x1A + 0x06:0x00 + + + + + + + + + + + diff --git a/templates/mp1/Script/MetroidBeta.xml b/templates/mp1/Script/MetroidBeta.xml index 568a5963..8c22d84e 100644 --- a/templates/mp1/Script/MetroidBeta.xml +++ b/templates/mp1/Script/MetroidBeta.xml @@ -1,48 +1,101 @@ - - MetroidBeta - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - - enabled - enabled - - + + + MetroidBeta + + + Name + + + Position + + + Rotation + + + Scale + + + + + DamageVulnerability 1 + + + DamageVulnerability 2 + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Particle 1 + + PART + + + + SWHC + + SWHC + + + + Particle 2 + + PART + + + + Particle 3 + + PART + + + + Particle 4 + + PART + + + + Unknown 10 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + diff --git a/templates/mp1/Script/MetroidPrimeStage1.xml b/templates/mp1/Script/MetroidPrimeStage1.xml index 60c3b4fe..7c8c42b9 100644 --- a/templates/mp1/Script/MetroidPrimeStage1.xml +++ b/templates/mp1/Script/MetroidPrimeStage1.xml @@ -1,99 +1,85 @@ - - MetroidPrimeStage1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x15:0x01:0x19 - 0x15:0x02:0x02 - 0x15:0x02:0x04 - - enabled - enabled - - + + + MetroidPrimeStage1 + + + Unknown 1 + + + Name + + + Position + + + Rotation + + + Scale + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + HealthInfo 1 + + + HealthInfo 2 + + + Unknown 9 + + + PrimeStruct1 1 + + + PrimeStruct1 2 + + + PrimeStruct1 3 + + + PrimeStruct1 4 + + + Unknown 10 + + + Unknown 11 + + + + + + 0x01 + 0x02 + 0x03 + 0x04 + 0x15:0x01:0x1A + 0x15:0x02:0x00 + + + + + + + diff --git a/templates/mp1/Script/MetroidPrimeStage2.xml b/templates/mp1/Script/MetroidPrimeStage2.xml index cbc64f29..db941d74 100644 --- a/templates/mp1/Script/MetroidPrimeStage2.xml +++ b/templates/mp1/Script/MetroidPrimeStage2.xml @@ -1,36 +1,57 @@ - - MetroidPrimeStage2 - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - - enabled - enabled - - + + + MetroidPrimeStage2 + + + Name + + + Position + + + Rotation + + + Scale + + + + + Particle 1 + + PART + + + + + ELSC + + ELSC + + + + Unknown 1 + + + Particle 2 + + PART + + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + diff --git a/templates/mp1/Script/Midi.xml b/templates/mp1/Script/Midi.xml index d14407d0..f8439baf 100644 --- a/templates/mp1/Script/Midi.xml +++ b/templates/mp1/Script/Midi.xml @@ -1,22 +1,34 @@ - - Midi - - - - - - - - - - - - - - - - disabled - disabled - - + + + Midi + + + Name + + + Unknown 1 + + + CSNG + + CSNG + + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + + + 0x00 + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/NewCameraShaker.xml b/templates/mp1/Script/NewCameraShaker.xml index e973f694..2eb56996 100644 --- a/templates/mp1/Script/NewCameraShaker.xml +++ b/templates/mp1/Script/NewCameraShaker.xml @@ -1,88 +1,37 @@ - - NewCameraShaker - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - script/mp1/NewCameraShaker.TXTR - - disabled - disabled - - + + + NewCameraShaker + + + Name + + + Position + + + Unknown 1 + + + + + NewCameraShakerStruct 1 + + + NewCameraShakerStruct 2 + + + NewCameraShakerStruct 3 + + + + + 0x00 + 0x01 + + + + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/NewIntroBoss.xml b/templates/mp1/Script/NewIntroBoss.xml index b70614e1..8a2b55ab 100644 --- a/templates/mp1/Script/NewIntroBoss.xml +++ b/templates/mp1/Script/NewIntroBoss.xml @@ -1,38 +1,69 @@ - - NewIntroBoss - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - - enabled - enabled - - + + + NewIntroBoss + + + Name + + + Position + + + Rotation + + + Scale + + + + + Unknown + + + WPSC 1 + + WPSC + + + + + Particle 1 + + PART + + + + Particle 2 + + PART + + + + Texture 1 + + TXTR + + + + Texture 2 + + TXTR + + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + diff --git a/templates/mp1/Script/Oculus.xml b/templates/mp1/Script/Oculus.xml index 11e2b0d6..6ed40f1b 100644 --- a/templates/mp1/Script/Oculus.xml +++ b/templates/mp1/Script/Oculus.xml @@ -1,40 +1,58 @@ - - Oculus - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - - enabled - enabled - - + + + Oculus + + + Name + + + Position + + + Rotation + + + Scale + + + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + + Unknown 7 + + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + diff --git a/templates/mp1/Script/OmegaPirate.xml b/templates/mp1/Script/OmegaPirate.xml index 455f5913..5e24a14e 100644 --- a/templates/mp1/Script/OmegaPirate.xml +++ b/templates/mp1/Script/OmegaPirate.xml @@ -1,75 +1,195 @@ - - OmegaPirate - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x11 - 0x14 - 0x2A - - - - - - enabled - enabled - - + + + OmegaPirate + + + Name + + + Position + + + Rotation + + + Scale + + + + ActorParameters 1 + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Particle 1 + + PART + + + + Sound ID 1 + + + ActorParameters 2 + + + AnimationParameters + + + Particle 2 + + PART + + + + Sound ID 2 + + + Grenade Model + + CMDL + + + + DamageInfo 1 + + + Unknown 9 + + + Particle 3 + + PART + + + + Particle 4 + + PART + + + + Particle 5 + + PART + + + + Particle 6 + + PART + + + + Unknown 10 + + + Unknown 11 + + + Unknown 12 + + + Unknown 13 + + + Unknown 14 + + + Unknown 15 + + + Unknown 16 + + + Sound ID 3 + + + Sound ID 4 + + + Particle 7 + + PART + + + + DamageInfo 2 + + + ELSC + + ELSC + + + + Sound ID 5 + + + Unknown 17 + + + Unknown 18 + + + X-Ray Model + + CMDL + + + + X-Ray CSKR + + CSKR + + + + X-Ray CINF + + CINF + + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + + + + + + diff --git a/templates/mp1/Script/Parasite.xml b/templates/mp1/Script/Parasite.xml index ba6f4716..0d02fc4d 100644 --- a/templates/mp1/Script/Parasite.xml +++ b/templates/mp1/Script/Parasite.xml @@ -1,50 +1,92 @@ - - Parasite - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x05:0x19 - 0x06:0x02 - 0x06:0x04 - - enabled - enabled - - + + + Parasite + + + Name + + + Unknown 1 + + + Position + + + Rotation + + + Scale + + + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + Unknown 12 + + + Unknown 13 + + + Unknown 14 + + + Unknown 15 + + + Unknown 16 + + + Unknown 17 + + + Unknown 18 + + + Unknown 19 + + + + + 0x00 + 0x02 + 0x03 + 0x04 + 0x05:0x1A + 0x06:0x00 + + + + + + + diff --git a/templates/mp1/Script/PathCamera.xml b/templates/mp1/Script/PathCamera.xml index 6604033b..47474a94 100644 --- a/templates/mp1/Script/PathCamera.xml +++ b/templates/mp1/Script/PathCamera.xml @@ -1,38 +1,45 @@ - - PathCamera - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - enabled - disabled - - + + + PathCamera + + + Name + + + Position + + + Rotation + + + Unknown 1 + + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + Unknown 12 + + + Unknown 13 + + + + + 0x00 + 0x01 + 0x02 + + ScaleDisabled + diff --git a/templates/mp1/Script/PhazonHealingNodule.xml b/templates/mp1/Script/PhazonHealingNodule.xml index 5b246efc..64dbc86f 100644 --- a/templates/mp1/Script/PhazonHealingNodule.xml +++ b/templates/mp1/Script/PhazonHealingNodule.xml @@ -1,34 +1,47 @@ - - PhazonHealingNodule - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - - enabled - enabled - - + + + PhazonHealingNodule + + + Name + + + Position + + + Rotation + + + Scale + + + + + Unused + + + ELSC + + ELSC + + + + Target Locator + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + diff --git a/templates/mp1/Script/PhazonPool.xml b/templates/mp1/Script/PhazonPool.xml index 106656d2..66f644c5 100644 --- a/templates/mp1/Script/PhazonPool.xml +++ b/templates/mp1/Script/PhazonPool.xml @@ -1,40 +1,82 @@ - - PhazonPool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x05 - 0x06 - - enabled - enabled - - + + + PhazonPool + + + Name + + + Position + + + Rotation + + + Scale + + + Unknown 1 + + + Model 1 + + CMDL + + + + Model 2 + + CMDL + + + + Particle 1 + + PART + + + + Particle 2 + + PART + + + + Unknown 2 + + + + Force + + + Trigger Flags + + + Pool Starting Value + + + Phazon Beam Drain Per Second + + + Time Until Regeneration + + + Automatic Drain/Don't Regenerate + + + Time Until Automatic Drain + + + + + 0x00 + 0x01 + 0x02 + 0x03 + + + + + + diff --git a/templates/mp1/Script/Pickup.xml b/templates/mp1/Script/Pickup.xml index 0815e503..0e480bcc 100644 --- a/templates/mp1/Script/Pickup.xml +++ b/templates/mp1/Script/Pickup.xml @@ -1,44 +1,78 @@ - - Pickup - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x0D - 0x0C - 0x0E:0x02 - 0x0E:0x04 - - enabled - enabled - - + + + Pickup + + + Name + + + Position + + + Rotation + + + Scale + + + Collision Scale + + + Scan/Collision Offset + + + + Capacity + + + Amount + + + Drop Rate + + + Life Time + + + Fade Length + + + Model + + CMDL + + + + AnimationParameters + + + + Active + + + Spawn Delay + + + Particle + + PART + + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x0F + 0x0E:0x00 + + + + + + + + diff --git a/templates/mp1/Script/PickupGenerator.xml b/templates/mp1/Script/PickupGenerator.xml index 14e3520b..29a81d53 100644 --- a/templates/mp1/Script/PickupGenerator.xml +++ b/templates/mp1/Script/PickupGenerator.xml @@ -1,23 +1,29 @@ - - PickupGenerator - - - - - - - - - - - - - - - script/common/PickupGenerator.TXTR - - disabled - disabled - - + + + PickupGenerator + + + Name + + + Offset + + + Active + + + Frequency + + + + + 0x00 + 0x02 + + + + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/Platform.xml b/templates/mp1/Script/Platform.xml index c537a505..4626da2a 100644 --- a/templates/mp1/Script/Platform.xml +++ b/templates/mp1/Script/Platform.xml @@ -1,46 +1,80 @@ - - Platform - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x07 - 0x06 - 0x08:0x02 - 0x08:0x04 - 0x0B - - enabled - enabled - - + + + Platform + + + Name + + + Position + + + Rotation + + + Scale + + + Unknown 1 + + + Scan Offset + + + Model + + CMDL + + + + AnimationParameters + + + + Unknown 2 + + + Active + + + DCLN + + DCLN + + + + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x0A + 0x08:0x00 + + + + + + + + + diff --git a/templates/mp1/Script/PlayerActor.xml b/templates/mp1/Script/PlayerActor.xml index d950d4b2..83ab256c 100644 --- a/templates/mp1/Script/PlayerActor.xml +++ b/templates/mp1/Script/PlayerActor.xml @@ -1,53 +1,74 @@ - - PlayerActor - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x0B - 0x0A - 0x0C:0x02 - 0x0C:0x04 - - enabled - enabled - - + + + PlayerActor + + + Name + + + Position + + + Rotation + + + Scale + + + Unknown 1 + + + Scan Offset + + + Unknown 2 + + + Unknown 3 + + + + + Model + + CMDL + + + + AnimationParameters + + + + Loop Animation + + + Unknown 5 + + + Disable Movement? + + + Active + + + + Unknown 13 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x10 + 0x0C:0x00 + + + + + + + + diff --git a/templates/mp1/Script/PlayerHint.xml b/templates/mp1/Script/PlayerHint.xml index 4d16381f..be426bd7 100644 --- a/templates/mp1/Script/PlayerHint.xml +++ b/templates/mp1/Script/PlayerHint.xml @@ -1,25 +1,31 @@ - - PlayerHint - - - - - - - - - - - - - - - - - - - enabled - disabled - - + + + PlayerHint + + + Name + + + Position + + + Rotation + + + Active + + + + Unknown + + + + + 0x00 + 0x01 + 0x02 + 0x03 + + ScaleDisabled + diff --git a/templates/mp1/Script/PlayerStateChange.xml b/templates/mp1/Script/PlayerStateChange.xml index 4f7209f9..26ddfba7 100644 --- a/templates/mp1/Script/PlayerStateChange.xml +++ b/templates/mp1/Script/PlayerStateChange.xml @@ -1,24 +1,33 @@ - - PlayerStateChange - - - - - - - - - - - - - - - - - - disabled - disabled - - + + + PlayerStateChange + + + Name + + + Active + + + + Amount + + + Capacity + + + Unknown 4 + + + Unknown 5 + + + + + 0x00 + 0x01 + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/PointOfInterest.xml b/templates/mp1/Script/PointOfInterest.xml index 372430ab..b65426f1 100644 --- a/templates/mp1/Script/PointOfInterest.xml +++ b/templates/mp1/Script/PointOfInterest.xml @@ -1,29 +1,34 @@ - - PointOfInterest - - - - - - - - Affects the size of the scan point. - - - - - - - - - - - - - script/common/PointOfInterest.TXTR - - enabled - enabled - - + + + PointOfInterest + + + Name + + + Position + + + Rotation + + + Active + + + + Unknown + Affects the size of the scan point. + + + + + 0x00 + 0x01 + 0x02 + 0x03 + + + + + diff --git a/templates/mp1/Script/PuddleSpore.xml b/templates/mp1/Script/PuddleSpore.xml index 141c3675..9ccb3873 100644 --- a/templates/mp1/Script/PuddleSpore.xml +++ b/templates/mp1/Script/PuddleSpore.xml @@ -1,41 +1,69 @@ - - PuddleSpore - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x05:0x19 - 0x06:0x02 - 0x06:0x04 - - enabled - enabled - - + + + PuddleSpore + + + Name + + + Unknown 1 + + + Position + + + Rotation + + + Scale + + + + + Unknown 2 + + + Particle + + PART + + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + WPSC + + WPSC + + + + + + + 0x00 + 0x02 + 0x03 + 0x04 + 0x05:0x1A + 0x06:0x00 + + + + + + + diff --git a/templates/mp1/Script/PuddleToadGamma.xml b/templates/mp1/Script/PuddleToadGamma.xml index 749c5349..9ce8dfcd 100644 --- a/templates/mp1/Script/PuddleToadGamma.xml +++ b/templates/mp1/Script/PuddleToadGamma.xml @@ -1,42 +1,71 @@ - - PuddleToadGamma - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x05:0x19 - 0x06:0x02 - 0x06:0x04 - - enabled - enabled - - + + + PuddleToadGamma + + + Name + + + Unknown 1 + + + Position + + + Rotation + + + Scale + + + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + DamageInfo 1 + + + DamageInfo 2 + + + DCLN + + DCLN + + + + + + 0x00 + 0x02 + 0x03 + 0x04 + 0x05:0x1A + 0x06:0x00 + + + + + + + diff --git a/templates/mp1/Script/Puffer.xml b/templates/mp1/Script/Puffer.xml index 8e407b6a..8f659909 100644 --- a/templates/mp1/Script/Puffer.xml +++ b/templates/mp1/Script/Puffer.xml @@ -1,41 +1,71 @@ - - Puffer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - - enabled - enabled - - + + + Puffer + + + Name + + + Position + + + Rotation + + + Scale + + + + + Unknown 1 + + + Particle + + PART + + + + DamageInfo 1 + + + Texture + + TXTR + + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + DamageInfo 2 + + + Unknown 6 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + diff --git a/templates/mp1/Script/RadialDamage.xml b/templates/mp1/Script/RadialDamage.xml index de49b7b3..818d9266 100644 --- a/templates/mp1/Script/RadialDamage.xml +++ b/templates/mp1/Script/RadialDamage.xml @@ -1,25 +1,31 @@ - - RadialDamage - - - - - - - - - - - - - - - - - script/common/RadialDamage.TXTR - - disabled - disabled - - + + + RadialDamage + + + Name + + + Position + + + Active + + + + Radius + + + + + 0x00 + 0x01 + 0x02 + + + + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/RandomRelay.xml b/templates/mp1/Script/RandomRelay.xml index 3463c654..24c53d37 100644 --- a/templates/mp1/Script/RandomRelay.xml +++ b/templates/mp1/Script/RandomRelay.xml @@ -1,24 +1,31 @@ - - RandomRelay - - - - - - - - - - - - - - - - script/common/RandomRelay.TXTR - - disabled - enabled - - + + + RandomRelay + + + Name + + + Connection Count + + + Variance + + + Unknown + + + Active + + + + + 0x00 + 0x04 + + + + + RotationDisabled + diff --git a/templates/mp1/Script/Relay.xml b/templates/mp1/Script/Relay.xml index 2573c93e..1a4506f5 100644 --- a/templates/mp1/Script/Relay.xml +++ b/templates/mp1/Script/Relay.xml @@ -1,21 +1,21 @@ - - Relay - - - - - - - - - - - - - script/common/Relay.TXTR - - enabled - enabled - - + + + Relay + + + Name + + + Active + + + + + 0x00 + 0x01 + + + + + diff --git a/templates/mp1/Script/Repulsor.xml b/templates/mp1/Script/Repulsor.xml index ef95b587..be9e566c 100644 --- a/templates/mp1/Script/Repulsor.xml +++ b/templates/mp1/Script/Repulsor.xml @@ -1,22 +1,27 @@ - - Repulsor - - - - - - - - - - - - - - - - disabled - disabled - - + + + Repulsor + + + Name + + + Position + + + Active + + + Radius + + + + + 0x00 + 0x01 + 0x02 + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/Ridley.xml b/templates/mp1/Script/Ridley.xml index 66fa8105..4f69d28d 100644 --- a/templates/mp1/Script/Ridley.xml +++ b/templates/mp1/Script/Ridley.xml @@ -1,105 +1,222 @@ - - Ridley - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - 0x06 - 0x07 - 0x08 - 0x09 - 0x0A - 0x0B - 0x0C - 0x0D - 0x0E - 0x0F - 0x10 - 0x11 - - enabled - enabled - - + + + Ridley + + + Name + + + Position + + + Rotation + + + Scale + + + + + Model 1 + + CMDL + + + + Model 2 + + CMDL + + + + Model 3 + + CMDL + + + + Model 4 + + CMDL + + + + Model 5 + + CMDL + + + + Model 6 + + CMDL + + + + Model 7 + + CMDL + + + + Model 8 + + CMDL + + + + Model 9 + + CMDL + + + + Model 10 + + CMDL + + + + Model 11 + + CMDL + + + + Model 12 + + CMDL + + + + Particle + + PART + + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + WPSC 1 + + WPSC + + + + DamageInfo 1 + + + + Sound ID 1 + + + WPSC 2 + + WPSC + + + + DamageInfo 2 + + + RidleyStruct2 1 + + + WPSC 3 + + WPSC + + + + DamageInfo 3 + + + RidleyStruct2 2 + + + Sound ID 2 + + + DamageInfo 4 + + + RidleyStruct2 3 + + + Unknown 18 + + + Unknown 19 + + + DamageInfo 5 + + + Unknown 20 + + + DamageInfo 6 + + + Unknown 21 + + + DamageInfo 7 + + + Unknown 22 + + + ELSC + + ELSC + + + + Unknown 23 + + + Sound ID 3 + + + DamageInfo 8 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + + + + + + + + + + + + + diff --git a/templates/mp1/Script/Ripper.xml b/templates/mp1/Script/Ripper.xml index 26b2e986..c96baf0f 100644 --- a/templates/mp1/Script/Ripper.xml +++ b/templates/mp1/Script/Ripper.xml @@ -1,33 +1,39 @@ - - Ripper - - - - - - - - - - - - - - - - - - - - - - - 0x05:0x19 - 0x06:0x02 - 0x06:0x04 - - enabled - enabled - - + + + Ripper + + + Name + + + Unknown 1 + + + Position + + + Rotation + + + Scale + + + + + + + + 0x00 + 0x02 + 0x03 + 0x04 + 0x05:0x1A + 0x06:0x00 + + + + + + + diff --git a/templates/mp1/Script/Ripple.xml b/templates/mp1/Script/Ripple.xml index b85d6eb0..026db51a 100644 --- a/templates/mp1/Script/Ripple.xml +++ b/templates/mp1/Script/Ripple.xml @@ -1,21 +1,26 @@ - - Ripple - - - - - - - - - - - - - - - disabled - disabled - - + + + Ripple + + + Name + + + Position + + + Unknown 1 + + + Unknown 2 + + + + + 0x00 + 0x01 + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/RoomAcoustics.xml b/templates/mp1/Script/RoomAcoustics.xml index 3536426b..262e015a 100644 --- a/templates/mp1/Script/RoomAcoustics.xml +++ b/templates/mp1/Script/RoomAcoustics.xml @@ -1,48 +1,109 @@ - - RoomAcoustics - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - disabled - disabled - - + + + RoomAcoustics + + + Name + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + Unknown 12 + + + Unknown 13 + + + Unknown 14 + + + Unknown 15 + + + Unknown 16 + + + Unknown 17 + + + Unknown 18 + + + Unknown 19 + + + Unknown 20 + + + Unknown 21 + + + Unknown 22 + + + Unknown 23 + + + Unknown 24 + + + Unknown 25 + + + Unknown 26 + + + Unknown 27 + + + Unknown 28 + + + Unknown 29 + + + Unknown 30 + + + Unknown 31 + + + + + 0x00 + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/RumbleEffect.xml b/templates/mp1/Script/RumbleEffect.xml index 2ed5ec73..4e3fe544 100644 --- a/templates/mp1/Script/RumbleEffect.xml +++ b/templates/mp1/Script/RumbleEffect.xml @@ -1,28 +1,30 @@ - - RumbleEffect - - - - - - - - - - - - - - - - - - - - - - disabled - disabled - - + + + RumbleEffect + + + Name + + + Position + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + + + + 0x00 + 0x01 + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/ScriptBeam.xml b/templates/mp1/Script/ScriptBeam.xml index 5354c34f..2ec7b8cb 100644 --- a/templates/mp1/Script/ScriptBeam.xml +++ b/templates/mp1/Script/ScriptBeam.xml @@ -1,44 +1,34 @@ - - ScriptBeam - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - enabled - disabled - - + + + ScriptBeam + + + Name + + + Position + + + Rotation + + + Unknown 1 + + + WPSC + + WPSC + + + + + + + + 0x00 + 0x01 + 0x02 + + ScaleDisabled + diff --git a/templates/mp1/Script/Seedling.xml b/templates/mp1/Script/Seedling.xml index 7602a3b5..06be8ac8 100644 --- a/templates/mp1/Script/Seedling.xml +++ b/templates/mp1/Script/Seedling.xml @@ -1,39 +1,65 @@ - - Seedling - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - - enabled - enabled - - + + + Seedling + + + Name + + + Position + + + Rotation + + + Scale + + + + + Unknown 1 + + CMDL + + + + Unknown 2 + + WPSC + + + + DamageInfo 1 + + + DamageInfo 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + diff --git a/templates/mp1/Script/ShadowProjector.xml b/templates/mp1/Script/ShadowProjector.xml index 92395a92..335f9f6b 100644 --- a/templates/mp1/Script/ShadowProjector.xml +++ b/templates/mp1/Script/ShadowProjector.xml @@ -1,28 +1,45 @@ - - ShadowProjector - - - - - - - - - - - - - - - - - - - - - - disabled - disabled - - + + + ShadowProjector + + + Name + + + Position + + + Active + + + Shadow Scale + + + Shadow Offset + + + Unknown 4 + + + Shadow Opacity + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + + + 0x00 + 0x01 + 0x02 + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/SnakeWeedSwarm.xml b/templates/mp1/Script/SnakeWeedSwarm.xml index 77ec8a59..440e5ddb 100644 --- a/templates/mp1/Script/SnakeWeedSwarm.xml +++ b/templates/mp1/Script/SnakeWeedSwarm.xml @@ -1,50 +1,94 @@ - - SnakeWeedSwarm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04 - 0x05:0x02 - 0x05:0x04 - - disabled - volume - - - + + + SnakeWeedSwarm + + + Name + + + Position + + + Scale + + + Active + + + AnimationParameters + + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + Unknown 12 + + + Unknown 13 + + + Unknown 14 + + + Unknown 15 + + + + Unknown 16 + + + Unknown 17 + + + Unknown 18 + + + Unknown 19 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x05:0x00 + + + + + + + RotationDisabled + ScaleVolume + AxisAlignedBoxShape + diff --git a/templates/mp1/Script/Sound.xml b/templates/mp1/Script/Sound.xml index 463ea720..e528f437 100644 --- a/templates/mp1/Script/Sound.xml +++ b/templates/mp1/Script/Sound.xml @@ -1,40 +1,77 @@ - - Sound - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - script/common/Sound.TXTR - - enabled - disabled - - + + + Sound + + + Name + + + Position + + + Rotation + + + Sound ID + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + Unknown 12 + + + Unknown 13 + + + Unknown 14 + + + Unknown 15 + + + Unknown 16 + + + + + 0x00 + 0x01 + 0x02 + + + + + ScaleDisabled + diff --git a/templates/mp1/Script/SpacePirate.xml b/templates/mp1/Script/SpacePirate.xml index ea9d6ad2..8ecbec3c 100644 --- a/templates/mp1/Script/SpacePirate.xml +++ b/templates/mp1/Script/SpacePirate.xml @@ -1,61 +1,131 @@ - - SpacePirate - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - - enabled - enabled - - + + + SpacePirate + + + Name + + + Position + + + Rotation + + + Scale + + + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + WPSC 1 + + WPSC + + + + DamageInfo 1 + + + Sound ID 1 + + + DamageInfo 2 + + + Unknown 9 + + + WPSC 2 + + WPSC + + + + DamageInfo 3 + + + Unknown 10 + + + Sound ID 2 + + + Unknown 11 + + + Unknown 12 + + + Sound ID 3 + + + Unknown 13 + + + Unknown 14 + + + Unknown 15 + + + Unknown 16 + + + Unknown 17 + + + Unknown 18 + + + Sound ID 4 + + + Sound ID 5 + + + Unknown 19 + + + Unknown 20 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + diff --git a/templates/mp1/Script/SpankWeed.xml b/templates/mp1/Script/SpankWeed.xml index 9aa4c749..9d7ec8c8 100644 --- a/templates/mp1/Script/SpankWeed.xml +++ b/templates/mp1/Script/SpankWeed.xml @@ -1,36 +1,50 @@ - - SpankWeed - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - - enabled - enabled - - + + + SpankWeed + + + Name + + + Position + + + Rotation + + + Scale + + + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + diff --git a/templates/mp1/Script/SpawnPoint.xml b/templates/mp1/Script/SpawnPoint.xml index 15d72a2e..8a05f1f9 100644 --- a/templates/mp1/Script/SpawnPoint.xml +++ b/templates/mp1/Script/SpawnPoint.xml @@ -1,54 +1,120 @@ - - SpawnPoint - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - enabled - disabled - - + + + SpawnPoint + + + Name + + + Position + + + Rotation + + + Power Beam + + + Ice Beam + + + Wave Beam + + + Plasma Beam + + + Missiles + + + Scan Visor + + + Morph Ball Bomb + + + Power Bombs + + + Flamethrower + + + Thermal Visor + + + Charge Beam + + + Super Missile + + + Grapple Beam + + + X-Ray Visor + + + Ice Spreader + + + Space Jump Boots + + + Morph Ball + + + Combat Visor + + + Boost Ball + + + Spider Ball + + + Power Suit? + + + Gravity Suit + + + Varia Suit + + + Phazon Suit + + + Energy Tanks + + + Unknown Item 1 + + + Health Refill + + + Unknown Item 2 + + + Wavebuster + + + Default Spawn + + + Active + + + Morphed + + + + + 0x00 + 0x01 + 0x02 + 0x21 + + ScaleDisabled + diff --git a/templates/mp1/Script/SpecialFunction.xml b/templates/mp1/Script/SpecialFunction.xml index 979f954e..80e11469 100644 --- a/templates/mp1/Script/SpecialFunction.xml +++ b/templates/mp1/Script/SpecialFunction.xml @@ -1,77 +1,93 @@ - - SpecialFunction - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - script/common/SpecialFunction.TXTR - - enabled - enabled - - + + + SpecialFunction + + + Name + + + Position + + + Rotation + + + Function + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + + + Active + + + Unknown 5 + + + Used by SpinnerController 1 + + + Used by SpinnerController 2 + + + Used by SpinnerController 3 + + + + + 0x00 + 0x01 + 0x02 + 0x0A + + + + + diff --git a/templates/mp1/Script/SpiderBallAttractionSurface.xml b/templates/mp1/Script/SpiderBallAttractionSurface.xml index 50132451..5e065535 100644 --- a/templates/mp1/Script/SpiderBallAttractionSurface.xml +++ b/templates/mp1/Script/SpiderBallAttractionSurface.xml @@ -1,28 +1,35 @@ - - SpiderBallAttractionSurface - - - - - - - - - - - - - - - - - - - script/common/SpiderBallAttractionSurface.TXTR - - enabled - volume - - - + + + SpiderBallAttractionSurface + + + Name + + + Position + + + Rotation + + + Scale + + + Active + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04 + + + + + ScaleVolume + BoxShape + diff --git a/templates/mp1/Script/SpiderBallWaypoint.xml b/templates/mp1/Script/SpiderBallWaypoint.xml index faf0bc1f..58d83f0c 100644 --- a/templates/mp1/Script/SpiderBallWaypoint.xml +++ b/templates/mp1/Script/SpiderBallWaypoint.xml @@ -1,26 +1,32 @@ - - SpiderBallWaypoint - - - - - - - - - - - - - - - - - script/common/SpiderBallWaypoint.CMDL - - 0.5 - enabled - enabled - - + + + SpiderBallWaypoint + + + Name + + + Position + + + Rotation + + + Unknown 1 + + + Unknown 2 + + + + + 0x00 + 0x01 + 0x02 + + + + + 0.5 + diff --git a/templates/mp1/Script/SpindleCamera.xml b/templates/mp1/Script/SpindleCamera.xml index 0431e0c1..bf4e498c 100644 --- a/templates/mp1/Script/SpindleCamera.xml +++ b/templates/mp1/Script/SpindleCamera.xml @@ -1,42 +1,84 @@ - - SpindleCamera - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - enabled - disabled - - + + + SpindleCamera + + + Name + + + Position + + + Rotation + + + Unknown 1 + + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + SpindleCameraStruct 1 + + + SpindleCameraStruct 2 + + + SpindleCameraStruct 3 + + + SpindleCameraStruct 4 + + + SpindleCameraStruct 5 + + + SpindleCameraStruct 6 + + + SpindleCameraStruct 7 + + + SpindleCameraStruct 8 + + + SpindleCameraStruct 9 + + + SpindleCameraStruct 10 + + + SpindleCameraStruct 11 + + + SpindleCameraStruct 12 + + + SpindleCameraStruct 13 + + + SpindleCameraStruct 14 + + + SpindleCameraStruct 15 + + + + + 0x00 + 0x01 + 0x02 + + ScaleDisabled + diff --git a/templates/mp1/Script/Steam.xml b/templates/mp1/Script/Steam.xml index 22f9de2c..e3fa0c9c 100644 --- a/templates/mp1/Script/Steam.xml +++ b/templates/mp1/Script/Steam.xml @@ -1,40 +1,50 @@ - - Steam - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - disabled - volume - - - + + + Steam + + + Name + + + Position + + + Scale + + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Texture + + TXTR + + + + GuessStruct 1 + + + GuessStruct 2 + + + Unknown 8 + + + + + 0x00 + 0x01 + 0x02 + + RotationDisabled + ScaleVolume + BoxShape + diff --git a/templates/mp1/Script/StreamedAudio.xml b/templates/mp1/Script/StreamedAudio.xml index e4d8d825..1f3c1dcf 100644 --- a/templates/mp1/Script/StreamedAudio.xml +++ b/templates/mp1/Script/StreamedAudio.xml @@ -1,28 +1,44 @@ - - StreamedAudio - - - - - - - - - - - - - - - - - - - - script/common/StreamedAudio.TXTR - - disabled - disabled - - + + + StreamedAudio + + + Name + + + Active + + + Audio file + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + + + 0x00 + 0x01 + + + + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/Switch.xml b/templates/mp1/Script/Switch.xml index 82a379a6..4292a093 100644 --- a/templates/mp1/Script/Switch.xml +++ b/templates/mp1/Script/Switch.xml @@ -1,21 +1,26 @@ - - Switch - - - - - - - - - - - - - - - disabled - disabled - - + + + Switch + + + Name + + + Active + + + Open + + + Close when used? + + + + + 0x00 + 0x01 + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/TargetingPoint.xml b/templates/mp1/Script/TargetingPoint.xml index 1b437f8b..d338fc7a 100644 --- a/templates/mp1/Script/TargetingPoint.xml +++ b/templates/mp1/Script/TargetingPoint.xml @@ -1,23 +1,27 @@ - - TargetingPoint - - - - - - - - - - - - - - - - - enabled - disabled - - + + + TargetingPoint + + + Name + + + Position + + + Rotation + + + Active + + + + + 0x00 + 0x01 + 0x02 + 0x03 + + ScaleDisabled + diff --git a/templates/mp1/Script/TeamAIMgr.xml b/templates/mp1/Script/TeamAIMgr.xml index 5c0d5f8d..ef81916d 100644 --- a/templates/mp1/Script/TeamAIMgr.xml +++ b/templates/mp1/Script/TeamAIMgr.xml @@ -1,26 +1,43 @@ - - TeamAIMgr - - - - - - - - - - - - - - - - - - - - disabled - disabled - - + + + TeamAIMgr + + + Name + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + + + 0x00 + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/Thardus.xml b/templates/mp1/Script/Thardus.xml index 01a75bdd..d9340339 100644 --- a/templates/mp1/Script/Thardus.xml +++ b/templates/mp1/Script/Thardus.xml @@ -1,83 +1,241 @@ - - Thardus - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - 0x08 - 0x09 - 0x0A - 0x0B - 0x0C - 0x0D - 0x0E - 0x0F - 0x10 - 0x11 - 0x12 - 0x13 - 0x14 - 0x15 - - enabled - enabled - - + + + Thardus + + + Name + + + Position + + + Rotation + + + Scale + + + + + Unknown 1 + + + Unknown 2 + + + Rock Weak Point 1 Model + + CMDL + + + + Rock Weak Point 2 Model + + CMDL + + + + Rock Weak Point 3 Model + + CMDL + + + + Rock Weak Point 4 Model + + CMDL + + + + Rock Weak Point 5 Model + + CMDL + + + + Rock Weak Point 6 Model + + CMDL + + + + Rock Weak Point 7 Model + + CMDL + + + + Phazon Weak Point 1 Model + + CMDL + + + + Phazon Weak Point 2 Model + + CMDL + + + + Phazon Weak Point 3 Model + + CMDL + + + + Phazon Weak Point 4 Model + + CMDL + + + + Phazon Weak Point 5 Model + + CMDL + + + + Phazon Weak Point 6 Model + + CMDL + + + + Phazon Weak Point 7 Model + + CMDL + + + + Particle 1 + + PART + + + + Particle 2 + + PART + + + + Particle 3 + + PART + + + + State Machine + + AFSM + + + + Particle 4 + + PART + + + + Particle 5 + + PART + + + + Particle 6 + + PART + + + + Particle 7 + + PART + + + + Particle 8 + + PART + + + + Particle 9 + + PART + + + + Roll Speed + + + Unknown 4 + + + Unknown 5 + + + Phazon Weak Point Health + + + Rock Weak Point Health + + + Ice Spikes Speed + + + Texture + + TXTR + + + + Unknown 9 + + + Particle 10 + + PART + + + + Unknown 10 + + + Unknown 11 + + + Unknown 12 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/mp1/Script/ThardusRockProjectile.xml b/templates/mp1/Script/ThardusRockProjectile.xml index 5e5a15e8..a70fd692 100644 --- a/templates/mp1/Script/ThardusRockProjectile.xml +++ b/templates/mp1/Script/ThardusRockProjectile.xml @@ -1,37 +1,57 @@ - - ThardusRockProjectile - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - 0x09 - - enabled - enabled - - + + + ThardusRockProjectile + + + Name + + + Position + + + Rotation + + + Scale + + + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Model + + CMDL + + + + AFSM + + AFSM + + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + + diff --git a/templates/mp1/Script/ThermalHeatFader.xml b/templates/mp1/Script/ThermalHeatFader.xml index b1f5e199..342cea05 100644 --- a/templates/mp1/Script/ThermalHeatFader.xml +++ b/templates/mp1/Script/ThermalHeatFader.xml @@ -1,21 +1,26 @@ - - ThermalHeatFader - - - - - - - - - - - - - - - disabled - disabled - - + + + ThermalHeatFader + + + Name + + + Active + + + Faded Heat Level + + + Initial Heat Level + + + + + 0x00 + 0x01 + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/Timer.xml b/templates/mp1/Script/Timer.xml index 9611b7ff..b61cfa5c 100644 --- a/templates/mp1/Script/Timer.xml +++ b/templates/mp1/Script/Timer.xml @@ -1,31 +1,37 @@ - - Timer - - - - - A random value between 0 and this number will be added to the timer's start time. - - - When the timer reaches 0, it will reset back to its start time and start ticking again. - - - The timer will start ticking immediately on load, without waiting for a script message to start it. - - - - - - - - - - - - script/common/Timer.TXTR - - disabled - enabled - - + + + Timer + + + Name + + + Start Time + + + Max Random Delay + A random value between 0 and this number will be added to the timer's start time. + + + Loop + When the timer reaches 0, it will reset back to its start time and start ticking again. + + + Auto-Start + The timer will start ticking immediately on load, without waiting for a script message to start it. + + + Active + + + + + 0x00 + 0x05 + + + + + RotationDisabled + diff --git a/templates/mp1/Script/Trigger.xml b/templates/mp1/Script/Trigger.xml index b4ebaf57..3f93c677 100644 --- a/templates/mp1/Script/Trigger.xml +++ b/templates/mp1/Script/Trigger.xml @@ -1,52 +1,65 @@ - - Trigger - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - script/common/Trigger.TXTR - - disabled - volume - - - + + + Trigger + + + Name + + + Position + + + Scale + + + + Force + + + Trigger Flags + + + + + + + + + + + + + + + + + + + + + + + Active + + + Deactivate On Entered + + + Deactivate On Exited + + + + + 0x00 + 0x01 + 0x02 + 0x06 + + + + + RotationDisabled + ScaleVolume + AxisAlignedBoxShape + diff --git a/templates/mp1/Script/Tryclops.xml b/templates/mp1/Script/Tryclops.xml index f4d93ab2..52438c16 100644 --- a/templates/mp1/Script/Tryclops.xml +++ b/templates/mp1/Script/Tryclops.xml @@ -1,35 +1,47 @@ - - Tryclops - - - - - - - - - - - - - - - - - - - - - - - - - 0x04:0x19 - 0x05:0x02 - 0x05:0x04 - - enabled - enabled - - + + + Tryclops + + + Name + + + Position + + + Rotation + + + Scale + + + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04:0x1A + 0x05:0x00 + + + + + + + diff --git a/templates/mp1/Script/VisorFlare.xml b/templates/mp1/Script/VisorFlare.xml index 9670c396..3a258fc1 100644 --- a/templates/mp1/Script/VisorFlare.xml +++ b/templates/mp1/Script/VisorFlare.xml @@ -1,33 +1,59 @@ - - VisorFlare - - - - - - - - - - - - - - - - - - - - - - - - - script/common/VisorFlare.TXTR - - disabled - disabled - - + + + VisorFlare + + + Name + + + Position + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + FlareDef 1 + + + FlareDef 2 + + + FlareDef 3 + + + FlareDef 4 + + + FlareDef 5 + + + + + 0x00 + 0x01 + + + + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/VisorGoo.xml b/templates/mp1/Script/VisorGoo.xml index 1c264dc6..7b236191 100644 --- a/templates/mp1/Script/VisorGoo.xml +++ b/templates/mp1/Script/VisorGoo.xml @@ -1,30 +1,56 @@ - - VisorGoo - - - - - - - - - - - - - - - - - - - - - - script/common/VisorGoo.TXTR - - disabled - disabled - - + + + VisorGoo + + + Name + + + Position + + + Particle + + PART + + + + ELSC + + ELSC + + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Sound + + + Unknown 7 + + + + + 0x00 + 0x01 + + + + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/WallCrawlerSwarm.xml b/templates/mp1/Script/WallCrawlerSwarm.xml index b42f4ef7..04e66b85 100644 --- a/templates/mp1/Script/WallCrawlerSwarm.xml +++ b/templates/mp1/Script/WallCrawlerSwarm.xml @@ -1,65 +1,140 @@ - - WallCrawlerSwarm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x07 - 0x05:0x02 - 0x05:0x04 - - enabled - volume - - - + + + WallCrawlerSwarm + + + Name + + + Position + + + Rotation + + + Scale + + + Active + + + + Unknown 1 + + + AnimationParameters + + + Unknown 2 + + + Unknown 3 + + + Particle 1 + + PART + + + + Particle 2 + + PART + + + + Always FFFFFFFF 1 + + + Always FFFFFFFF 2 + + + DamageInfo 1 + + + Unknown 4 + + + DamageInfo 2 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + Unknown 12 + + + Unknown 13 + + + Unknown 14 + + + Unknown 15 + + + Unknown 16 + + + Unknown 17 + + + Unknown 18 + + + Unknown 19 + + + Unknown 20 + + + Unknown 21 + + + Unknown 22 + + + + + Sound 1 + + + Sound 2 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + 0x04 + 0x05:0x00 + + + + + + + ScaleVolume + BoxShape + diff --git a/templates/mp1/Script/Warwasp.xml b/templates/mp1/Script/Warwasp.xml index f4aef7ef..f005db6d 100644 --- a/templates/mp1/Script/Warwasp.xml +++ b/templates/mp1/Script/Warwasp.xml @@ -1,38 +1,62 @@ - - WarWasp - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x05:0x19 - 0x06:0x02 - 0x06:0x04 - - enabled - enabled - - + + + WarWasp + + + Name + + + Patterned Flavor Type + + + Position + + + Rotation + + + Scale + + + + + Collider + + + DamageInfo 1 + + + WPSC + + WPSC + + + + DamageInfo 2 + + + Particle + + PART + + + + Unknown 3 + + + + + 0x00 + 0x02 + 0x03 + 0x04 + 0x05:0x1A + 0x06:0x00 + + + + + + + diff --git a/templates/mp1/Script/Water.xml b/templates/mp1/Script/Water.xml index 5703a1f7..e6c0c430 100644 --- a/templates/mp1/Script/Water.xml +++ b/templates/mp1/Script/Water.xml @@ -1,93 +1,239 @@ - - Water - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This particle plays when an actor/projectile enters the water. It also plays when the morph ball is rolling in it at surface level. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - disabled - volume - - - + + + Water + + + Name + + + Position + + + Scale + + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Display Fluid Surface + + + Texture 1 + + TXTR + + + + Texture 2 + + TXTR + + + + Texture 3 + + TXTR + + + + Texture 4 + + TXTR + + + + Reflection Map + + TXTR + + + + Texture 6 + + TXTR + + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Active + + + Fluid Type + + + Unknown 11 + + + Unknown 12 + + + + Unknown 30 + + + Unknown 31 + + + Unknown 32 + + + Unknown 33 + + + Unknown 34 + + + Unknown 35 + + + Unknown 36 + + + Unknown 37 + + + Unknown 38 + + + Unknown 39 + + + Enter Particle + This particle plays when an actor/projectile enters the water. It also plays when the morph ball is rolling in it at surface level. + + PART + + + + Particle 2 + + PART + + + + Particle 3 + + PART + + + + Particle 4 + + PART + + + + Particle 5 + + PART + + + + Sound 1 + + + Sound 2 + + + Sound 3 + + + Sound 4 + + + Sound 5 + + + Unknown 40 + + + Unknown 41 + + + Unknown 42 + + + Unknown 43 + + + Unknown 44 + + + Unknown 45 + + + Unknown 46 + + + Unknown 47 + + + Heat Wave Height + + + Heat Wave Speed + + + Heat Wave Color + + + Lightmap Texture + + TXTR + + + + Unknown 51 + + + Unknown 52 + + + Unknown 53 + + + Unknown 54 + + + Unknown 55 + + + DO NOT ENABLE - WILL CRASH + + + Ignore + + + Ignore + + + + + 0x00 + 0x01 + 0x02 + 0x09 + + RotationDisabled + ScaleVolume + BoxShape + diff --git a/templates/mp1/Script/Waypoint.xml b/templates/mp1/Script/Waypoint.xml index 3605a978..a8e5accc 100644 --- a/templates/mp1/Script/Waypoint.xml +++ b/templates/mp1/Script/Waypoint.xml @@ -1,35 +1,57 @@ - - Waypoint - - - - - - - - - - - - - - - - - - - - - - - - - - script/common/Waypoint.CMDL - - 0.5 - enabled - enabled - - + + + Waypoint + + + Name + + + Position + + + Rotation + + + Active + + + Unknown 2 + + + Delay + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + + + 0x00 + 0x01 + 0x02 + 0x03 + + + + + 0.5 + diff --git a/templates/mp1/Script/WorldLightFader.xml b/templates/mp1/Script/WorldLightFader.xml index 916d6bc9..10e4f525 100644 --- a/templates/mp1/Script/WorldLightFader.xml +++ b/templates/mp1/Script/WorldLightFader.xml @@ -1,21 +1,26 @@ - - WorldLightFader - - - - - - - - - - - - - - - disabled - disabled - - + + + WorldLightFader + + + Name + + + Active + + + Faded Light Level + + + Fade Speed + + + + + 0x00 + 0x01 + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Script/WorldTeleporter.xml b/templates/mp1/Script/WorldTeleporter.xml index b433c826..e8fbfbb6 100644 --- a/templates/mp1/Script/WorldTeleporter.xml +++ b/templates/mp1/Script/WorldTeleporter.xml @@ -1,42 +1,100 @@ - - WorldTeleporter - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x04 - 0x06 - 0x08 - - disabled - disabled - - + + + WorldTeleporter + + + Name + + + Active + + + World + + MLVL + + + + Area + + MREA + + + + Player Model + + + Player Scale + + + Elevator Platform Model + + CMDL + + + + Elevator Platform Scale + + + Elevator Background Model + + CMDL + + + + Elevator Background Scale + + + Upward Elevator + + + Elevator Sound + + + Sound Volume + + + Unknown (Sound-Related) + + + Show Text Instead Of Cutscene + + + Font + + FONT + + + + String + + STRG + + + + Fade In From/Out To White + + + Character Fade In Time + + + Characters Per Second + + + Delay Before Showing Text + + + + + 0x00 + 0x01 + + + + + + + RotationDisabled + ScaleDisabled + diff --git a/templates/mp1/Structs/ActorParameters.xml b/templates/mp1/Structs/ActorParameters.xml index b18ad2c9..72ee2ba5 100644 --- a/templates/mp1/Structs/ActorParameters.xml +++ b/templates/mp1/Structs/ActorParameters.xml @@ -1,19 +1,56 @@ - - - - - - - - - - - - - - - - - - + + + ActorParameters + + + + + X-Ray Visor Model + + CMDL + + + + X-Ray Visor Skin + + CSKR + + + + Thermal Visor Model + + CMDL + + + + Thermal Visor Skin + + CSKR + + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + + Enable Thermal Heat + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + + diff --git a/templates/mp1/Structs/BeamCombos.xml b/templates/mp1/Structs/BeamCombos.xml new file mode 100644 index 00000000..00b7cfd1 --- /dev/null +++ b/templates/mp1/Structs/BeamCombos.xml @@ -0,0 +1,23 @@ + + + + BeamCombos + + + Super Missile + + + Ice Spreader + + + Wavebuster + + + Flamethrower + + + Phazon Combo + + + + diff --git a/templates/mp1/Structs/BehaveChance.xml b/templates/mp1/Structs/BehaveChance.xml index 685354d1..435fdcdb 100644 --- a/templates/mp1/Structs/BehaveChance.xml +++ b/templates/mp1/Structs/BehaveChance.xml @@ -1,12 +1,29 @@ - - - - - - - - - - - + + + BehaveChance + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + + diff --git a/templates/mp1/Structs/ChargedBeams.xml b/templates/mp1/Structs/ChargedBeams.xml new file mode 100644 index 00000000..4ca99827 --- /dev/null +++ b/templates/mp1/Structs/ChargedBeams.xml @@ -0,0 +1,23 @@ + + + + ChargedBeams + + + Power + + + Ice + + + Wave + + + Plasma + + + Phazon + + + + diff --git a/templates/mp1/Structs/DamageInfo.xml b/templates/mp1/Structs/DamageInfo.xml index 20d781b3..a8a61f73 100644 --- a/templates/mp1/Structs/DamageInfo.xml +++ b/templates/mp1/Structs/DamageInfo.xml @@ -1,9 +1,20 @@ - - - - - - - - + + + DamageInfo + + + Weapon Type + + + Damage + + + Radius + + + Knockback Power + + + + diff --git a/templates/mp1/Structs/DamageVulnerability.xml b/templates/mp1/Structs/DamageVulnerability.xml index e2a5f547..d41e54a4 100644 --- a/templates/mp1/Structs/DamageVulnerability.xml +++ b/templates/mp1/Structs/DamageVulnerability.xml @@ -1,39 +1,58 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + DamageVulnerability + + + Power + + + Ice + + + Wave + + + Plasma + + + Bomb + + + Power Bomb + + + Missile + + + Boost Ball + + + Phazon + + + AI + + + Poison Water + + + Lava + + + Hot + + + Unused Weapon 1 + + + Unused Weapon 2 + + + Unused Weapon 3 + + + + + + diff --git a/templates/mp1/Structs/FlareDef.xml b/templates/mp1/Structs/FlareDef.xml index 85efb82a..d7ccf010 100644 --- a/templates/mp1/Structs/FlareDef.xml +++ b/templates/mp1/Structs/FlareDef.xml @@ -1,9 +1,23 @@ - - - - - - - - + + + FlareDef + + + Texture + + TXTR + + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + + diff --git a/templates/mp1/Structs/FluidLayerMotion.xml b/templates/mp1/Structs/FluidLayerMotion.xml index dbe52504..ec709e08 100644 --- a/templates/mp1/Structs/FluidLayerMotion.xml +++ b/templates/mp1/Structs/FluidLayerMotion.xml @@ -1,10 +1,24 @@ - - - - - - - - - + + + FluidLayerMotion + true + + + Fluid UV Motion + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + + diff --git a/templates/mp1/Structs/FluidUVMotion.xml b/templates/mp1/Structs/FluidUVMotion.xml new file mode 100644 index 00000000..81442b63 --- /dev/null +++ b/templates/mp1/Structs/FluidUVMotion.xml @@ -0,0 +1,24 @@ + + + + FluidUVMotion + true + + + Fluid Layer Motion 1 + + + Fluid Layer Motion 2 + + + Fluid Layer Motion 3 + + + Unknown 1 + + + Unknown 2 + + + + diff --git a/templates/mp1/Structs/GrappleParameters.xml b/templates/mp1/Structs/GrappleParameters.xml index e58a4838..c65cfd04 100644 --- a/templates/mp1/Structs/GrappleParameters.xml +++ b/templates/mp1/Structs/GrappleParameters.xml @@ -1,17 +1,44 @@ - - - - - - - - - - - - - - - - + + + GrappleParameters + + + Unknown 1 + + + Unknown 2 + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + Unknown 11 + + + Disable Turning + + + + diff --git a/templates/mp1/Structs/HealthInfo.xml b/templates/mp1/Structs/HealthInfo.xml index 6a4dcefe..404c1601 100644 --- a/templates/mp1/Structs/HealthInfo.xml +++ b/templates/mp1/Structs/HealthInfo.xml @@ -1,7 +1,14 @@ - - - - - - + + + HealthInfo + + + Health + + + Knockback Resistance + + + + diff --git a/templates/mp1/Structs/LayerSwitch.xml b/templates/mp1/Structs/LayerSwitch.xml new file mode 100644 index 00000000..429cb9fd --- /dev/null +++ b/templates/mp1/Structs/LayerSwitch.xml @@ -0,0 +1,18 @@ + + + + LayerSwitch + true + + + Room ID + + MREA + + + + Layer no + + + + diff --git a/templates/mp1/Structs/LightParameters.xml b/templates/mp1/Structs/LightParameters.xml index 0a617550..a920e810 100644 --- a/templates/mp1/Structs/LightParameters.xml +++ b/templates/mp1/Structs/LightParameters.xml @@ -1,36 +1,65 @@ - - - - - - - - - - - - - - - - - - - - - Interval between light recalculation updates. - - - - - - - - - - - - - - + + + LightParameters + + + Unknown 1 + + + Unknown 2 + + + Shadow Tessellation + + + Unknown 3 + + + Unknown 4 + + + Unknown 5 + + + Unknown 6 + + + World Lighting Options + + + + + + + + + + + Light Recalculation Options + Interval between light recalculation updates. + + + + + + + + + Unknown 7 + + + Unknown 8 + + + Unknown 9 + + + Unknown 10 + + + Light Layer Index + + + + diff --git a/templates/mp1/Structs/PatternedInfo.xml b/templates/mp1/Structs/PatternedInfo.xml deleted file mode 100644 index 50e53f00..00000000 --- a/templates/mp1/Structs/PatternedInfo.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/templates/mp1/Structs/PlayerHintStruct.xml b/templates/mp1/Structs/PlayerHintStruct.xml deleted file mode 100644 index 459f0851..00000000 --- a/templates/mp1/Structs/PlayerHintStruct.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - Inverts morph ball controls? - - - - - Affects Spider Ball controls in some situations. - - - - - - - - - - - - On state Play, send a Play message to the target object. - - - diff --git a/templates/mp1/Structs/PrimeStruct1.xml b/templates/mp1/Structs/PrimeStruct1.xml deleted file mode 100644 index 1f27069c..00000000 --- a/templates/mp1/Structs/PrimeStruct1.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/templates/mp1/Structs/PrimeStruct2.xml b/templates/mp1/Structs/PrimeStruct2.xml deleted file mode 100644 index d6cab502..00000000 --- a/templates/mp1/Structs/PrimeStruct2.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/templates/mp1/Structs/PrimeStruct3.xml b/templates/mp1/Structs/PrimeStruct3.xml deleted file mode 100644 index d20c2636..00000000 --- a/templates/mp1/Structs/PrimeStruct3.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/templates/mp1/Structs/PrimeStruct4.xml b/templates/mp1/Structs/PrimeStruct4.xml deleted file mode 100644 index 57ab15d5..00000000 --- a/templates/mp1/Structs/PrimeStruct4.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/templates/mp1/Structs/PrimeStruct6.xml b/templates/mp1/Structs/PrimeStruct6.xml deleted file mode 100644 index 88712655..00000000 --- a/templates/mp1/Structs/PrimeStruct6.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/templates/mp1/Structs/RidleyStruct2.xml b/templates/mp1/Structs/RidleyStruct2.xml deleted file mode 100644 index 6919a9af..00000000 --- a/templates/mp1/Structs/RidleyStruct2.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/templates/mp1/Structs/ScannableParameters.xml b/templates/mp1/Structs/ScannableParameters.xml index 0ff68c78..0a5b228e 100644 --- a/templates/mp1/Structs/ScannableParameters.xml +++ b/templates/mp1/Structs/ScannableParameters.xml @@ -1,6 +1,14 @@ - - - - - + + + ScannableParameters + + + Scan File + + SCAN + + + + + diff --git a/templates/mp1/Structs/SpindleCameraStruct.xml b/templates/mp1/Structs/SpindleCameraStruct.xml deleted file mode 100644 index 162d4058..00000000 --- a/templates/mp1/Structs/SpindleCameraStruct.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/templates/mp1/Structs/Vector2f.xml b/templates/mp1/Structs/Vector2f.xml index 9ac2cfef..85480216 100644 --- a/templates/mp1/Structs/Vector2f.xml +++ b/templates/mp1/Structs/Vector2f.xml @@ -1,7 +1,15 @@ - - - - - - + + + Vector2f + true + + + X + + + Y + + + + diff --git a/templates/mp1/Structs/VisorParameters.xml b/templates/mp1/Structs/VisorParameters.xml index 430b03ac..17b87164 100644 --- a/templates/mp1/Structs/VisorParameters.xml +++ b/templates/mp1/Structs/VisorParameters.xml @@ -1,15 +1,23 @@ - - - - - - - - - - - - - - + + + VisorParameters + + + Unknown 1 + + + Unknown 2 + + + Visor Flags + + + + + + + + + + diff --git a/templates/mp2/Enums/Item.xml b/templates/mp2/Enums/Item.xml deleted file mode 100644 index 9bbd9377..00000000 --- a/templates/mp2/Enums/Item.xml +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/templates/mp2/Enums/WeaponType.xml b/templates/mp2/Enums/WeaponType.xml index dfb6ed62..f9a534f3 100644 --- a/templates/mp2/Enums/WeaponType.xml +++ b/templates/mp2/Enums/WeaponType.xml @@ -1,26 +1,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + WeaponType + 0x0 + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/mp2/MasterTemplate.xml b/templates/mp2/MasterTemplate.xml deleted file mode 100644 index a2cfa745..00000000 --- a/templates/mp2/MasterTemplate.xml +++ /dev/null @@ -1,336 +0,0 @@ - - - - GameCube NTSC - Trilogy - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/templates/mp2/Script/AIHint.xml b/templates/mp2/Script/AIHint.xml index b4127028..11ab977d 100644 --- a/templates/mp2/Script/AIHint.xml +++ b/templates/mp2/Script/AIHint.xml @@ -1,36 +1,31 @@ - - AIHint - - - - 0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - enabled - enabled - - + + + AIHint + + + + 0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/mp2/Script/AIJumpPoint.xml b/templates/mp2/Script/AIJumpPoint.xml index a9f897f9..7939c8b3 100644 --- a/templates/mp2/Script/AIJumpPoint.xml +++ b/templates/mp2/Script/AIJumpPoint.xml @@ -1,27 +1,22 @@ - - AIJumpPoint - - - - 3.0 - - - 0 - - - - - - - - - - - - - - enabled - enabled - - + + + AIJumpPoint + + + + 3.0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/mp2/Script/AIKeyframe.xml b/templates/mp2/Script/AIKeyframe.xml index 9dbfc986..19265877 100644 --- a/templates/mp2/Script/AIKeyframe.xml +++ b/templates/mp2/Script/AIKeyframe.xml @@ -1,43 +1,38 @@ - - AIKeyframe - - - - -1 - - - false - - - 0.0 - - - 0 - This property isn't read by the game and has no ingame effect. Might be a float. - - - 0 - never - - - 1.0 - never - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + AIKeyframe + + + + -1 + + + false + + + 0.0 + + + This property isn't read by the game and has no ingame effect. Might be a float. + 0 + + + Never + 0 + + + Never + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/AIMannedTurret.xml b/templates/mp2/Script/AIMannedTurret.xml index 994f998e..76b6331a 100644 --- a/templates/mp2/Script/AIMannedTurret.xml +++ b/templates/mp2/Script/AIMannedTurret.xml @@ -1,82 +1,29 @@ - - AIMannedTurret - - AIMannedTurret.rel - - - - - - false - - - - - - - 90.0 - - - 90.0 - - - 60.0 - - - 60.0 - - - 30.0 - - - 30.0 - - - 30.0 - - - 1.0 - - - 0.0 - - - 90.0 - - - 40.0 - - - 20.0 - - - 2.0 - - - - - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + AIMannedTurret.rel + + + AIMannedTurret + + + + + false + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/AIWaypoint.xml b/templates/mp2/Script/AIWaypoint.xml index 66ab534f..a7b2b1d0 100644 --- a/templates/mp2/Script/AIWaypoint.xml +++ b/templates/mp2/Script/AIWaypoint.xml @@ -1,38 +1,34 @@ - - AIWaypoint - - - - 1.0 - - - 0.0 - - - 0 - - - 0 - - - 0 - - - - - - - - - - - - - - script/common/AIWaypoint.CMDL - - enabled - enabled - - + + + AIWaypoint + + + + 1.0 + + + 0.0 + + + 0 + + + 0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/mp2/Script/Actor.xml b/templates/mp2/Script/Actor.xml index b8d8044b..8329f3b5 100644 --- a/templates/mp2/Script/Actor.xml +++ b/templates/mp2/Script/Actor.xml @@ -1,86 +1,102 @@ - - Actor - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - 1.0 - - - 0.0 - - - - - - - - - - true - - - true - - - true - - - false - - - false - never - - - 0 - - - false - - - false - - - false - - - 0.0 - - - - - - 0x0000000B - - - - - - - - - - - - - - - - - 0xE25FB08C - 0xC27FFA8F - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0x0FC966DC - - enabled - enabled - - + + + Actor + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + 1.0 + + + 0.0 + + + + + + CMDL + + + + + DCLN + + + + + + + true + + + true + + + true + + + false + + + Never + false + + + 0 + + + false + + + false + + + false + + + 0.0 + + + + WPSC + + + + + + 0xB + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + diff --git a/templates/mp2/Script/ActorKeyframe.xml b/templates/mp2/Script/ActorKeyframe.xml index eaa5537c..f81fa3c5 100644 --- a/templates/mp2/Script/ActorKeyframe.xml +++ b/templates/mp2/Script/ActorKeyframe.xml @@ -1,37 +1,32 @@ - - ActorKeyframe - - - - -1 - - - false - - - 0.0 - - - 0 - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ActorKeyframe + + + + -1 + + + false + + + 0.0 + + + 0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/ActorRotate.xml b/templates/mp2/Script/ActorRotate.xml index 0c7f0df8..b3cc80c9 100644 --- a/templates/mp2/Script/ActorRotate.xml +++ b/templates/mp2/Script/ActorRotate.xml @@ -1,42 +1,25 @@ - - ActorRotate - - - - 20 - - - 10.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ActorRotate + + + + 20 + + + 10.0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/AdvancedCounter.xml b/templates/mp2/Script/AdvancedCounter.xml index bea98161..26f51a6e 100644 --- a/templates/mp2/Script/AdvancedCounter.xml +++ b/templates/mp2/Script/AdvancedCounter.xml @@ -1,63 +1,59 @@ - - AdvancedCounter - - - - 0 - - - 10 - - - false - - - 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - 9 - - - 10 - - - - - - - - - - - - - - script/mp2/AdvancedCounter.TXTR - - 0.5 - enabled - enabled - - + + + AdvancedCounter + + + + 0 + + + 10 + + + false + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + 10 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/AmbientAI.xml b/templates/mp2/Script/AmbientAI.xml index 4c48a6ff..7d5ba159 100644 --- a/templates/mp2/Script/AmbientAI.xml +++ b/templates/mp2/Script/AmbientAI.xml @@ -1,110 +1,114 @@ - - AmbientAI - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - 1.0 - - - - - - - - never - - - - - - - never - - - - - - - never - - - - - - - never - - - - - - - never - - - - - - - never - - - - - - - never - - - - - - - never - - - - - - - - - 7.0 - - - 1.5 - - - -1 - - - -1 - - - - - - - - - - - - - - - 0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + AmbientAI + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + 1.0 + + + + + + + + Never + + + + + + + Never + + + + + + + Never + + + + + + + Never + + + + + + + Never + + + + + + + Never + + + + + + + Never + + + + + + + Never + + + + + + + + + 7.0 + + + 1.5 + + + -1 + + + -1 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/AreaAttributes.xml b/templates/mp2/Script/AreaAttributes.xml index 1410cf46..6f0173ed 100644 --- a/templates/mp2/Script/AreaAttributes.xml +++ b/templates/mp2/Script/AreaAttributes.xml @@ -1,61 +1,68 @@ - - AreaAttributes - - - - - never - - - - - false - Show the skybox. If no Skybox Model is specified, it will show the World's default skybox. - - - false - Enable Dark World damage and switch to the Dark World map. - - - 0x00000000 - - - - - - - - - - - - - 1.0 - - - 1.0 - - - - 0 - - - - - - - - - - - - - - script/common/AreaAttributes.TXTR - - 0.5 - enabled - enabled - - + + + AreaAttributes + + + + + Never + + + + + Show the skybox. If no Skybox Model is specified, it will show the World's default skybox. + false + + + Enable Dark World damage and switch to the Dark World map. + false + + + 0x0 + + + + + + + + + + + + 0 + + + 1.0 + + + 1.0 + + + + CMDL + + + + 0x0 + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/AreaDamage.xml b/templates/mp2/Script/AreaDamage.xml index 751aefc0..d7c99f84 100644 --- a/templates/mp2/Script/AreaDamage.xml +++ b/templates/mp2/Script/AreaDamage.xml @@ -1,29 +1,24 @@ - - AreaDamage - - - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + AreaDamage + + + + + 1.0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/AtomicAlpha.xml b/templates/mp2/Script/AtomicAlpha.xml index e4e522d7..deac900c 100644 --- a/templates/mp2/Script/AtomicAlpha.xml +++ b/templates/mp2/Script/AtomicAlpha.xml @@ -1,102 +1,106 @@ - - AtomicAlpha - - AtomicAlpha.rel - - - - - - - 25.0 - - - 720.0 - - - 5.0 - - - 5.0 - - - 90.0 - - - 4.0 - - - 20.0 - - - - - 0x00000009 - - - 10.0 - - - 5.0 - - - - - 1.0 - - - 0.5 - - - 1.5 - - - 0.0 - - - 1 - - - - - - - - - 3.0 - - - 2.0 - - - 1.5 - - - false - - - true - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0xC75F9516 - - enabled - enabled - - + + + AtomicAlpha.rel + + + AtomicAlpha + + + + + + 25.0 + + + 720.0 + + + 5.0 + + + 5.0 + + + 90.0 + + + 4.0 + + + 20.0 + + + + + 0x9 + + + 10.0 + + + 5.0 + + + + + 1.0 + + + 0.5 + + + 1.5 + + + 0.0 + + + 1 + + + + + + + WPSC + + + + + CMDL + + + + + 3.0 + + + 2.0 + + + 1.5 + + + false + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp2/Script/AtomicBeta.xml b/templates/mp2/Script/AtomicBeta.xml index 080ed6f8..8c66123b 100644 --- a/templates/mp2/Script/AtomicBeta.xml +++ b/templates/mp2/Script/AtomicBeta.xml @@ -1,115 +1,124 @@ - - AtomicBeta - - AtomicBeta.rel - - - - - - - 25.0 - - - 720.0 - - - 5.0 - - - 5.0 - - - 90.0 - - - 4.0 - - - 20.0 - - - - - 0x0000000B - - - 10.0 - - - 5.0 - - - - - 1.0 - - - 0.5 - - - 1.5 - - - 0.0 - - - - - - - - - - 1.0 - - - 0.1 - - - 3.0 - - - - 1.5 - - - 5.0 - - - 1.0 - - - -1 - - - -1 - - - -1 - - - 1.0 - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + AtomicBeta.rel + + + AtomicBeta + + + + + + 25.0 + + + 720.0 + + + 5.0 + + + 5.0 + + + 90.0 + + + 4.0 + + + 20.0 + + + + + 0xB + + + 10.0 + + + 5.0 + + + + + 1.0 + + + 0.5 + + + 1.5 + + + 0.0 + + + + + + + ELSC + WPSC + + + + + WPSC + + + + + + PART + + + + 1.0 + + + 0.1 + + + 3.0 + + + + 1.5 + + + 5.0 + + + 1.0 + + + 0 + + + 0 + + + 0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/BacteriaSwarm.xml b/templates/mp2/Script/BacteriaSwarm.xml index e0b50cc4..34dc2609 100644 --- a/templates/mp2/Script/BacteriaSwarm.xml +++ b/templates/mp2/Script/BacteriaSwarm.xml @@ -1,109 +1,126 @@ - - BacteriaSwarm - - BacteriaSwarm.rel - - - - - - - true - - - - 1.0 - - - 1.0 - - - 0.1 - - - 0.5 - - - 0.2 - - - 0.01 - - - 0.01 - - - 180.0 - - - 1440.0 - - - - 1.0, 1.0, 1.0, 1.0 - - - 1.0, 0.0, 0.0, 1.0 - - - 0.5 - - - - - 0.5 - - - 0.5 - - - 0.5 - - - 0.5 - - - 0.5 - - - 0.5 - - - 0.0 - - - 100.0 - - - 20 - - - 127 - - - - false - - - - - - - - - - - - - - - 0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - volume - - - + + + BacteriaSwarm.rel + + + BacteriaSwarm + + + + + + true + + + + 1.0 + + + 1.0 + + + 0.1 + + + 0.5 + + + 0.2 + + + 0.0099999998 + + + 0.0099999998 + + + 180.0 + + + 1440.0 + + + + PART + + + + + 1.0 + 1.0 + 1.0 + + + + + 1.0 + 0.0 + 0.0 + + + + 0.5 + + + 0 + + + 0 + + + 0.5 + + + 0.5 + + + 0.5 + + + 0.5 + + + 0.5 + + + 0.5 + + + 0.0 + + + 100.0 + + + 20 + + + 127 + + + + CMDL + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + ScaleVolume + BoxShape + diff --git a/templates/mp2/Script/BallTrigger.xml b/templates/mp2/Script/BallTrigger.xml index 4a1fc02c..d1ef3456 100644 --- a/templates/mp2/Script/BallTrigger.xml +++ b/templates/mp2/Script/BallTrigger.xml @@ -1,55 +1,56 @@ - - BallTrigger - - - - - - - 2.0, 2.0, 2.0 - - - - - - - - 20.0 - - - 60.0 - - - 20.0 - - - 1.0, 0.0, 0.0 - - - false - - - - Trilogy - - 1.0 - never - - - - - - - - - - - - - - enabled - volume - - - + + + BallTrigger + + + + + + + + 2.0 + 2.0 + 2.0 + + + + + + + + + 20.0 + + + 60.0 + + + 20.0 + + + + 1.0 + 0.0 + 0.0 + + + + false + + + Never + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + BoxShape + diff --git a/templates/mp2/Script/Blogg.xml b/templates/mp2/Script/Blogg.xml index 0f67ed21..6b1ce651 100644 --- a/templates/mp2/Script/Blogg.xml +++ b/templates/mp2/Script/Blogg.xml @@ -1,202 +1,202 @@ - - Blogg - - Blogg.rel - - - - - - - 1 - - - - - - 30.0 - - - 30.0 - - - 2.0 - - - 2.0 - - - 1 - - - - - - 0x0000000B - - - 5.0 - - - 2.0 - - - - - 1.0 - - - 1.0 - - - 45.0 - - - - 2.0 - - - 10.0 - - - 10.0 - - - 10.0 - - - 900.0 - - - 10.0 - - - 0.5 - - - 0.5 - - - 0.75 - - - 1.0 - - - 0.3 - - - 1.0 - - - 10.0 - - - 20.0 - - - 5.0 - - - 5.0 - - - 2.0 - - - 0.2 - - - -1 - - - - - false - - - 4.0 - - - 4.0 - - - - - 1 - - - 1 - - - 0.5 - - - 0.5 - - - 0.5 - - - - - - - 1 - - - 1 - - - 0.5 - - - 0.5 - - - 0.5 - - - - - - - 1 - - - 1 - - - 0.5 - - - 0.5 - - - 0.5 - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0xE61748ED:0xAD54DA11 - - enabled - enabled - - + + + Blogg.rel + + + Blogg + + + + + + 1 + + + + + + 30.0 + + + 30.0 + + + 2.0 + + + 2.0 + + + 1 + + + + WPSC + + + + + + 0xB + + + 5.0 + + + 2.0 + + + + + 1.0 + + + 1.0 + + + 45.0 + + + + 2.0 + + + 10.0 + + + 10.0 + + + 10.0 + + + 900.0 + + + 10.0 + + + 0.5 + + + 0.5 + + + 0.75 + + + 1.0 + + + 0.30000001 + + + 1.0 + + + 10.0 + + + 20.0 + + + 5.0 + + + 5.0 + + + 2.0 + + + 0.2 + + + -1 + + + + + false + + + 4.0 + + + 4.0 + + + + + 1 + + + 1 + + + 0.5 + + + 0.5 + + + 0.5 + + + + + + + 1 + + + 1 + + + 0.5 + + + 0.5 + + + 0.5 + + + + + + + 1 + + + 1 + + + 0.5 + + + 0.5 + + + 0.5 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp2/Script/Brizgee.xml b/templates/mp2/Script/Brizgee.xml index eccd5c49..dee1db67 100644 --- a/templates/mp2/Script/Brizgee.xml +++ b/templates/mp2/Script/Brizgee.xml @@ -1,67 +1,77 @@ - - Brizgee - - WallCrawler.rel - Parasite.rel - - - - - - - 2.5 - - - 360.0 - - - 720.0 - - - 120.0 - - - 40.0 - - - 0.2 - - - - - - 2.0 - - - - 1.5 - - - - 2.0 - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + WallCrawler.rel + Parasite.rel + + + Brizgee + + + + + + 2.5 + + + 360.0 + + + 720.0 + + + 120.0 + + + 40.0 + + + 0.2 + + + + CMDL + + + + + CSKR + + + + + 2.0 + + + + 1.5 + + + + 2.0 + + + 0 + + + 0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/Camera.xml b/templates/mp2/Script/Camera.xml index 6d9974dc..a070813c 100644 --- a/templates/mp2/Script/Camera.xml +++ b/templates/mp2/Script/Camera.xml @@ -1,45 +1,41 @@ - - Camera - - - - - false - - - - - 10.0 - - - 168 - - - 0 - - - - - - - - - - - - - - - - - - - - - script/common/Camera.CMDL - - enabled - enabled - - + + + Camera + + + + + false + + + + + 10.0 + + + 168 + + + 0 + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/mp2/Script/CameraBlurKeyframe.xml b/templates/mp2/Script/CameraBlurKeyframe.xml index 3f0d5739..2a61f13d 100644 --- a/templates/mp2/Script/CameraBlurKeyframe.xml +++ b/templates/mp2/Script/CameraBlurKeyframe.xml @@ -1,39 +1,35 @@ - - CameraBlurKeyframe - - - - 0 - - - 0.0 - - - 0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - script/common/CameraBlurKeyframe.TXTR - - 0.5 - enabled - enabled - - + + + CameraBlurKeyframe + + + + 0 + + + 0.0 + + + 0 + + + 0.0 + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/CameraFilterKeyframe.xml b/templates/mp2/Script/CameraFilterKeyframe.xml index 3894d9c4..f344b72b 100644 --- a/templates/mp2/Script/CameraFilterKeyframe.xml +++ b/templates/mp2/Script/CameraFilterKeyframe.xml @@ -1,59 +1,63 @@ - - CameraFilterKeyframe - - - - 0 - - - 0x00000000 - - - - - - - - - - - - - - - - 0 - - - 0 - - - 1.0, 1.0, 1.0, 1.0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - - script/common/CameraFilterKeyframe.TXTR - - 0.5 - enabled - enabled - - + + + CameraFilterKeyframe + + + + 0 + + + 0x0 + + + + + + + + + + + + + + + + 0 + + + 0 + + + + 1.0 + 1.0 + 1.0 + + + + 0.0 + + + 0.0 + + + + TXTR + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/CameraHint.xml b/templates/mp2/Script/CameraHint.xml index 1f2c2788..4bec47db 100644 --- a/templates/mp2/Script/CameraHint.xml +++ b/templates/mp2/Script/CameraHint.xml @@ -1,104 +1,55 @@ - - CameraHint - - - - 50 - - - 0.0 - - - - - 0 - - - - - 286 - - - - - - - - false - - - 0.0, 1.0, 1.0 - - - - - 1.0, 1.0, 1.0 - - - - - false - - - 55.0 - - - - - - - - - false - - - 120.0 - - - - - - - false - - - 2.7 - - - - - 2.0 - - - 1.0 - - - 1.0 - - - - - - 1 - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + CameraHint + + + + 50 + + + 0.0 + + + + 286 + + + + + + + + 1.0 + 1.0 + 1.0 + + + + + + + + + 2.0 + + + 1.0 + + + 1.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/CameraPitch.xml b/templates/mp2/Script/CameraPitch.xml index 56ef0b6c..c4efd4e1 100644 --- a/templates/mp2/Script/CameraPitch.xml +++ b/templates/mp2/Script/CameraPitch.xml @@ -1,28 +1,23 @@ - - CameraPitch - - - - - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + CameraPitch + + + + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/CameraShaker.xml b/templates/mp2/Script/CameraShaker.xml index 16c4f59d..87b16baf 100644 --- a/templates/mp2/Script/CameraShaker.xml +++ b/templates/mp2/Script/CameraShaker.xml @@ -1,25 +1,21 @@ - - CameraShaker - - - - - - - - - - - - - - - - script/common/CameraShaker.TXTR - - 0.5 - enabled - enabled - - + + + CameraShaker + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/CameraWaypoint.xml b/templates/mp2/Script/CameraWaypoint.xml index aa36a9ff..a5096af9 100644 --- a/templates/mp2/Script/CameraWaypoint.xml +++ b/templates/mp2/Script/CameraWaypoint.xml @@ -1,23 +1,19 @@ - - CameraWaypoint - - - - - - - - - - - - - - - script/common/CameraWaypoint.CMDL - - enabled - enabled - - + + + CameraWaypoint + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/mp2/Script/CannonBall.xml b/templates/mp2/Script/CannonBall.xml index 7b649023..b8f585d8 100644 --- a/templates/mp2/Script/CannonBall.xml +++ b/templates/mp2/Script/CannonBall.xml @@ -1,26 +1,25 @@ - - CannonBall - - ScriptCannonBall.rel - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ScriptCannonBall.rel + + + CannonBall + + + + + PART + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/ChozoGhost.xml b/templates/mp2/Script/ChozoGhost.xml index 62a9df11..4f08c4a2 100644 --- a/templates/mp2/Script/ChozoGhost.xml +++ b/templates/mp2/Script/ChozoGhost.xml @@ -1,198 +1,214 @@ - - ChozoGhost - - ChozoGhost.rel - - - - - - - 720.0 - - - 25.0 - - - 8.0 - - - 70.0 - - - 70.0 - - - - - 0x00000009 - - - 5.0 - - - 1.0 - - - - - - - 300.0 - - - 10.0 - - - - - 4.5 - - - 1 - - - - - - 20.0 - - - 2.5 - - - 1.0 - - - 2.0 - - - - - - 10.0 - - - - - - - - 5.0 - - - - - - - 20.0 - - - 60.0 - - - 20.0 - - - 2.0 - - - 1 - - - - - - - 20.0 - - - 10.0 - - - 60.0 - - - 10.0 - - - 2.0 - - - 20.0 - - - 3 - - - - - - - 100.0 - - - 2.0 - - - 50.0 - - - 2 - - - - - - 1.5 - - - - - 0 - - - 8.0 - - - 0 - - - 1.5 - - - - - 20.0 - - - 45.0 - - - 40 - - - 40 - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + ChozoGhost.rel + + + ChozoGhost + + + + + + 720.0 + + + 25.0 + + + 8.0 + + + 70.0 + + + 70.0 + + + + + 0x9 + + + 5.0 + + + 1.0 + + + + + + + 300.0 + + + 10.0 + + + + + 4.5 + + + 1 + + + + + + 20.0 + + + 2.5 + + + 1.0 + + + 2.0 + + + + WPSC + + + + + + 10.0 + + + + + + WPSC + + + + + + 5.0 + + + + + + + 20.0 + + + 60.0 + + + 20.0 + + + 2.0 + + + 1 + + + + + + + 20.0 + + + 10.0 + + + 60.0 + + + 10.0 + + + 2.0 + + + 20.0 + + + 3 + + + + + + + 100.0 + + + 2.0 + + + 50.0 + + + 2 + + + + + 0 + + + 1.5 + + + 0 + + + 0 + + + 0 + + + 8.0 + + + 0 + + + 1.5 + + + + PART + + + + 0 + + + 20.0 + + + 45.0 + + + 40 + + + 40 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/Coin.xml b/templates/mp2/Script/Coin.xml index 6051f155..3241d87b 100644 --- a/templates/mp2/Script/Coin.xml +++ b/templates/mp2/Script/Coin.xml @@ -1,154 +1,195 @@ - - Coin - - ScriptCoin.rel - - - - - - false - - - - - 180.0 - - - 5.0 - - - 15.0 - - - 1.0 - - - 1.2 - - - 2.0 - - - 3.0 - - - 0.0 - - - 10.0 - - - 80.0 - - - 1.0, 1.0, 1.0, 1.0 - - - 1.0, 1.0, 1.0, 0.0 - - - 80.0 - - - 1.0, 1.0, 1.0 - - - 0.375 - - - 25.0 - - - 0.0, 0.0, 0.0 - - - - - - -1 - - - 1 - - - 1.0 - - - 1.0 - - - 1.0, 1.0, 1.0 - - - false - - - false - - - 0 - - - - 1.0, 1.0, 1.0 - - - false - - - false - - - 0 - - - - 1.0, 1.0, 1.0 - - - 0 - - - true - - - false - - - false - - - false - - - false - - - true - - - 1.0 - - - - - - - - - - - - - - - 0xC27FFA8F - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + ScriptCoin.rel + + + Coin + + + + + false + + + + + 180.0 + + + 5.0 + + + 15.0 + + + 1.0 + + + 1.2 + + + 2.0 + + + 3.0 + + + 0.0 + + + 10.0 + + + 80.0 + + + + 1.0 + 1.0 + 1.0 + + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + 80.0 + + + + 1.0 + 1.0 + 1.0 + + + + 0.375 + + + 25.0 + + + + 0.0 + 0.0 + 0.0 + + + + + CMDL + + + + + + PART + + + + -1 + + + 1 + + + 1.0 + + + 1.0 + + + + 1.0 + 1.0 + 1.0 + + + + false + + + false + + + 0 + + + + PART + + + + + 1.0 + 1.0 + 1.0 + + + + false + + + false + + + 0 + + + + PART + + + + + 1.0 + 1.0 + 1.0 + + + + 0 + + + true + + + false + + + false + + + false + + + false + + + true + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/ColorModulate.xml b/templates/mp2/Script/ColorModulate.xml index d65baf40..9a9fafe9 100644 --- a/templates/mp2/Script/ColorModulate.xml +++ b/templates/mp2/Script/ColorModulate.xml @@ -1,70 +1,75 @@ - - ColorModulate - - - - 1.0, 1.0, 1.0, 0.0 - - - 1.0, 1.0, 1.0, 1.0 - - - 0 - - - 1.0 - - - 1.0 - - - false - - - false - - - true - - - true - - - false - - - false - - - true - - - false - - - false - - - false - - - - - - - - - - - - - - - script/common/ColorModulate.TXTR - - 0.5 - enabled - enabled - - + + + ColorModulate + + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + + 1.0 + 1.0 + 1.0 + + + + 0 + + + 1.0 + + + 1.0 + + + false + + + false + + + true + + + true + + + false + + + false + + + true + + + false + + + false + + + false + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/CommandoPirate.xml b/templates/mp2/Script/CommandoPirate.xml index 96075d7d..159dd174 100644 --- a/templates/mp2/Script/CommandoPirate.xml +++ b/templates/mp2/Script/CommandoPirate.xml @@ -1,252 +1,155 @@ - - CommandoPirate - - PirateRagDoll.rel - CommandoPirate.rel - - - - - - - 360.0 - - - 90.0 - - - 1.0 - - - 0.5 - - - - - 0x0000000B - - - 10.0 - - - 10.0 - - - - - 3.0 - - - - - 150.0 - - - - - 0.8 - - - 3.0 - - - 0.3 - - - 0.2 - - - 1 - - - - - - - 0 - - - 10.0 - - - 50.0 - - - 30.0 - - - 80.0 - - - - - - -1 - - - -1 - - - - - 0x0000000B - - - 10.0 - - - 5.0 - - - - - - - - 0x0000000B - - - 5.0 - - - - - - 20.0 - - - - - 10.0 - - - 0.25 - - - 80.0 - - - 15.0 - - - 50.0 - - - - - 0x0000000B - - - 50.0 - - - 10.0 - - - 10.0 - - - - - - - - 25.0 - - - 0.4 - - - 20.0 - - - 50.0 - - - 0 - - - 8.0 - - - - - - - - - - - 0x0000000B - - - 10.0 - - - 5.0 - - - - - - 15.0 - - - 30.0 - - - 40.0 - - - - - 50.0 - - - 1.5 - - - 50.0 - - - 4.0 - - - 1.0 - - - - - - - - - - 0.1 - - - 0.05 - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0xE61748ED:0xAD54DA11 - - enabled - enabled - - + + + PirateRagDoll.rel + CommandoPirate.rel + + + CommandoPirate + + + + + + 360.0 + + + 90.0 + + + 1.0 + + + 0.5 + + + + + 0xB + + + 10.0 + + + 10.0 + + + + + 3.0 + + + + + 150.0 + + + + + 0.80000001 + + + 3.0 + + + 0.30000001 + + + 0.2 + + + 1 + + + + + + + 0 + + + 10.0 + + + 50.0 + + + 30.0 + + + 80.0 + + + 0 + + + 0 + + + 0 + + + -1 + + + -1 + + + + + 0xB + + + 10.0 + + + 5.0 + + + + + + WPSC + + + + + + 0xB + + + 5.0 + + + + + 0 + + + 20.0 + + + + + 0.1 + + + 0.050000001 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp2/Script/ConditionalRelay.xml b/templates/mp2/Script/ConditionalRelay.xml index b0c540cd..a4ca39ad 100644 --- a/templates/mp2/Script/ConditionalRelay.xml +++ b/templates/mp2/Script/ConditionalRelay.xml @@ -1,52 +1,48 @@ - - ConditionalRelay - - - - false - - - 7680 - - - - - - 0x00000000 - - - - - - - 0x00000000 - - - - - - - 0x00000000 - - - - - - - - - - - - - - - - script/common/ConditionalRelay.TXTR - - 0.5 - enabled - enabled - - + + + ConditionalRelay + + + + false + + + 7680 + + + + + + 0x0 + + + + + + + 0x0 + + + + + + + 0x0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/ControlHint.xml b/templates/mp2/Script/ControlHint.xml index 66026197..117bf82b 100644 --- a/templates/mp2/Script/ControlHint.xml +++ b/templates/mp2/Script/ControlHint.xml @@ -1,131 +1,126 @@ - - ControlHint - - - - 10 - - - 0.0 - - - 0 - - - 0 - - - 0.0 - - - 0.0 - - - 0 - - - - - - - 0 - - - - - - - - - - - 0 - - - - - - - - - - - 0 - - - - - - - - - - - 0 - - - - - - - - - - - 0 - - - - - - - - - - - 0 - - - - - - - - - - - 0 - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ControlHint + + + + 10 + + + 0.0 + + + 0 + + + 0 + + + 0.0 + + + 0.0 + + + 0 + + + + + + + 0 + + + + + + + + + + + 0 + + + + + + + + + + + 0 + + + + + + + + + + + 0 + + + + + + + + + + + 0 + + + + + + + + + + + 0 + + + + + + + + + + + 0 + + + + + + + + + + + 0 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/ControllerAction.xml b/templates/mp2/Script/ControllerAction.xml index 6b15876e..bf8a3c3f 100644 --- a/templates/mp2/Script/ControllerAction.xml +++ b/templates/mp2/Script/ControllerAction.xml @@ -1,32 +1,27 @@ - - ControllerAction - - - - - - 1 - - - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ControllerAction + + + + + + 1 + + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/Counter.xml b/templates/mp2/Script/Counter.xml index b3c1c70d..330f612c 100644 --- a/templates/mp2/Script/Counter.xml +++ b/templates/mp2/Script/Counter.xml @@ -1,36 +1,32 @@ - - Counter - - - - 10 - - - 10 - - - false - - - false - - - - - - - - - - - - - - script/common/Counter.TXTR - - 0.5 - enabled - enabled - - + + + Counter + + + + 10 + + + 10 + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/CoverPoint.xml b/templates/mp2/Script/CoverPoint.xml index 059f09e2..c9a407e4 100644 --- a/templates/mp2/Script/CoverPoint.xml +++ b/templates/mp2/Script/CoverPoint.xml @@ -1,37 +1,32 @@ - - CoverPoint - - - - 1 - - - true - - - 180.0 - - - 90.0 - - - 10.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + CoverPoint + + + + 1 + + + true + + + 180.0 + + + 90.0 + + + 10.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/Crystallite.xml b/templates/mp2/Script/Crystallite.xml index 872ec2a0..2f95c516 100644 --- a/templates/mp2/Script/Crystallite.xml +++ b/templates/mp2/Script/Crystallite.xml @@ -1,53 +1,49 @@ - - Crystallite - - WallCrawler.rel - Parasite.rel - - - - - - - 2.5 - - - 360.0 - - - 720.0 - - - 120.0 - - - 40.0 - - - 0.2 - - - 1.5 - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + WallCrawler.rel + Parasite.rel + + + Crystallite + + + + + + 2.5 + + + 360.0 + + + 720.0 + + + 120.0 + + + 40.0 + + + 0.2 + + + 1.5 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/DamageActor.xml b/templates/mp2/Script/DamageActor.xml index 55a4adb9..280237ae 100644 --- a/templates/mp2/Script/DamageActor.xml +++ b/templates/mp2/Script/DamageActor.xml @@ -1,23 +1,18 @@ - - DamageActor - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + DamageActor + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/DamageableTrigger.xml b/templates/mp2/Script/DamageableTrigger.xml index 8cb30641..2cdc811c 100644 --- a/templates/mp2/Script/DamageableTrigger.xml +++ b/templates/mp2/Script/DamageableTrigger.xml @@ -1,36 +1,33 @@ - - DamageableTrigger - - - - - - false - - - false - - - false - - - - - - - - - - - - - - - script/common/DamageableTrigger.TXTR - - enabled - volume - - - + + + DamageableTrigger + + + + + + false + + + false + + + false + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + ScaleVolume + AxisAlignedBoxShape + diff --git a/templates/mp2/Script/DamageableTriggerOrientated.xml b/templates/mp2/Script/DamageableTriggerOrientated.xml index 53e8851d..1f3ea9e8 100644 --- a/templates/mp2/Script/DamageableTriggerOrientated.xml +++ b/templates/mp2/Script/DamageableTriggerOrientated.xml @@ -1,34 +1,30 @@ - - DamageableTriggerOrientated - - - - - - false - - - false - - - false - - - - - - - - - - - - - - - enabled - volume - - - + + + DamageableTriggerOrientated + + + + + + false + + + false + + + false + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + BoxShape + diff --git a/templates/mp2/Script/DarkCommando.xml b/templates/mp2/Script/DarkCommando.xml index f1bb5d24..ae056dfd 100644 --- a/templates/mp2/Script/DarkCommando.xml +++ b/templates/mp2/Script/DarkCommando.xml @@ -1,192 +1,48 @@ - - DarkCommando - - PirateRagDoll.rel - DarkCommando.rel - - - - - - - 360.0 - - - 0.0 - - - - - 150.0 - - - - - 1 - - - - - - - - 12.5 - - - 12.5 - - - 25.0 - - - 50.0 - - - - - 0x0000000B - - - 20.0 - - - 10.0 - - - - - - - - - 2.0 - - - 35.0 - - - 100.0 - - - - - 0x0000000B - - - 20.0 - - - 10.0 - - - - - - - - 25.0 - - - 0.4 - - - 20.0 - - - 50.0 - - - 0 - - - 8.0 - - - - - - - - - 2.0 - - - 10.0 - - - 35.0 - - - - - 0x0000000B - - - 40.0 - - - 10.0 - - - - - - - - - 0x0000000B - - - 0.08333 - - - - - - - - - - 25.0 - - - 40.0 - - - 25.0 - - - 20.0 - - - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + PirateRagDoll.rel + DarkCommando.rel + + + DarkCommando + + + + + + 360.0 + + + 0.0 + + + + + 150.0 + + + + + 1 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/DarkSamus.xml b/templates/mp2/Script/DarkSamus.xml index 12bba473..129168ce 100644 --- a/templates/mp2/Script/DarkSamus.xml +++ b/templates/mp2/Script/DarkSamus.xml @@ -1,148 +1,260 @@ - - DarkSamus - - DarkSamus.rel - - - - - - - 32.0 - - - 0.5 - - - 1.0 - - - 1 - - - - - - -1.0 - - - -1.0 - - - - - false - - - - 100.0 - - - - - - - 40.0 - - - 500.0 - - - - - - - 0.0 - - - 300.0 - - - - - 1 - - - 3 - - - - - - - - 10.0 - - - 4.0 - - - - - - -1 - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - 0x0000000B - - - 10.0 - - - 5.0 - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0xF148F728 - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0x072DF331 - - enabled - enabled - - + + + DarkSamus.rel + + + DarkSamus + + + + + + 32.0 + + + 0.5 + + + 1.0 + + + 1 + + + + + + -1.0 + + + -1.0 + + + 0 + + + 0 + + + false + + + + TXTR + + + + 100.0 + + + + + PART + + + + + PART + + + + + 40.0 + + + 500.0 + + + + PART + + + + + WPSC + + + + + WPSC + + + + + 0.0 + + + 300.0 + + + + WPSC + + + + + 1 + + + 3 + + + + WPSC + + + + + + WPSC + + + + + + TXTR + + + + 10.0 + + + 4.0 + + + + PART + + + + + + CRSC + + + + -1 + + + -1 + + + + CMDL + + + + + CSKR + + + + + + + PART + + + + + SWHC + + + + + SWHC + + + + 0 + + + 0 + + + + PART + + + + + + PART + + + + 0 + + + + PART + + + + + PART + + + + 0 + + + + + PART + + + + + WPSC + + + + + WPSC + + + + + + + 0xB + + + 10.0 + + + 5.0 + + + + + + PART + + + + + + SCAN + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + diff --git a/templates/mp2/Script/DarkSamusBattleStage.xml b/templates/mp2/Script/DarkSamusBattleStage.xml index 858c1fe6..2e9a78f2 100644 --- a/templates/mp2/Script/DarkSamusBattleStage.xml +++ b/templates/mp2/Script/DarkSamusBattleStage.xml @@ -1,156 +1,27 @@ - - DarkSamusBattleStage - - DarkSamusBattleStage.rel - - - - - - never - - - - - - - -1.0 - - - 2.5 - - - 4.0 - - - 2.5 - - - 4.0 - - - 20.0 - - - 1.5 - - - 3.0 - - - 0.0 - - - - - 50.0 - - - 100.0 - - - 100.0 - - - - - false - - - false - - - false - - - false - - - false - - - false - - - 0.0 - - - 0.0 - - - true - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - false - - - true - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - false - - - 0.0 - - - 0.0 - - - false - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + DarkSamusBattleStage.rel + + + DarkSamusBattleStage + + + + + Never + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/DarkTrooper.xml b/templates/mp2/Script/DarkTrooper.xml index f93f2ad7..0a6adb2d 100644 --- a/templates/mp2/Script/DarkTrooper.xml +++ b/templates/mp2/Script/DarkTrooper.xml @@ -1,83 +1,93 @@ - - DarkTrooper - - PirateRagDoll.rel - DarkTrooper.rel - - - - - - - 100.0 - - - 0.5 - - - 1.6 - - - 1.0 - - - 1 - - - - - - - false - - - false - - - 0.0 - - - 5.0 - - - - 1.0 - - - 5.0 - - - 18.0 - - - - - - false - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0xE61748ED:0xAD54DA11 - - enabled - enabled - - + + + PirateRagDoll.rel + DarkTrooper.rel + + + DarkTrooper + + + + + + 100.0 + + + 0.5 + + + 1.6 + + + 1.0 + + + 1 + + + + + + + false + + + false + + + 0.0 + + + 5.0 + + + + 1.0 + + + 5.0 + + + 18.0 + + + + + WPSC + + + + 0 + + + false + + + + WPSC + + + + + + SCAN + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp2/Script/Debris.xml b/templates/mp2/Script/Debris.xml index cd23689e..58b38624 100644 --- a/templates/mp2/Script/Debris.xml +++ b/templates/mp2/Script/Debris.xml @@ -1,68 +1,85 @@ - - Debris - - - - - false - - - - - 20.0 - - - 20.0, 20.0, 25.0 - - - 1.0, 0.0, 0.0, 0.0 - - - 12.0 - - - 0.375 - - - 1.0 - - - 0 - - - true - - - - - - 1.0, 1.0, 1.0 - - - true - - - false - - - - - - - - - - - - - - - 0xC27FFA8F - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Debris + + + + + false + + + + + 20.0 + + + + 20.0 + 20.0 + 25.0 + + + + + 1.0 + 0.0 + 0.0 + 0.0 + + + + 12.0 + + + 0.375 + + + 1.0 + + + 0 + + + true + + + + CMDL + + + + + + PART + + + + + 1.0 + 1.0 + 1.0 + + + + true + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/DebrisExtended.xml b/templates/mp2/Script/DebrisExtended.xml index 68d3e61a..51a62455 100644 --- a/templates/mp2/Script/DebrisExtended.xml +++ b/templates/mp2/Script/DebrisExtended.xml @@ -1,155 +1,202 @@ - - DebrisExtended - - - - - false - - - - - 180.0 - - - 0.0, 0.0, 1.0 - - - 5.0 - - - 15.0 - - - 1.0 - - - 1.2 - - - 2.0 - - - 3.0 - - - 0.0 - - - 10.0 - - - 80.0 - - - 1.0, 1.0, 1.0, 1.0 - - - 1.0, 1.0, 1.0, 0.0 - - - 80.0 - - - 1.0, 1.0, 1.0 - - - 0.375 - - - 25.0 - - - 0.0, 0.0, 0.0 - - - - - - - 1 - - - 1.0 - - - 1.0 - - - 1.0, 1.0, 1.0 - - - false - - - false - - - 0 - - - - 1.0, 1.0, 1.0 - - - false - - - false - - - 0 - - - - 1.0, 1.0, 1.0 - - - 0 - - - true - - - false - - - false - - - false - - - false - - - true - - - false - - - 1.0 - - - - - - - - - - - - - - - 0xC27FFA8F - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + DebrisExtended + + + + + false + + + + + 180.0 + + + + 0.0 + 0.0 + 1.0 + + + + 5.0 + + + 15.0 + + + 1.0 + + + 1.2 + + + 2.0 + + + 3.0 + + + 0.0 + + + 10.0 + + + 80.0 + + + + 1.0 + 1.0 + 1.0 + + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + 80.0 + + + + 1.0 + 1.0 + 1.0 + + + + 0.375 + + + 25.0 + + + + 0.0 + 0.0 + 0.0 + + + + + CMDL + + + + + + PART + + + + 0 + + + 1 + + + 1.0 + + + 1.0 + + + + 1.0 + 1.0 + 1.0 + + + + false + + + false + + + 0x0 + + + + PART + + + + + 1.0 + 1.0 + 1.0 + + + + false + + + false + + + 0x0 + + + + PART + + + + + 1.0 + 1.0 + 1.0 + + + + 0x0 + + + true + + + false + + + false + + + false + + + false + + + true + + + false + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/DestructibleBarrier.xml b/templates/mp2/Script/DestructibleBarrier.xml index 513acece..1ee8a280 100644 --- a/templates/mp2/Script/DestructibleBarrier.xml +++ b/templates/mp2/Script/DestructibleBarrier.xml @@ -1,92 +1,92 @@ - - DestructibleBarrier - - DestructibleBarrier.rel - - - - - 2 - - - 5 - - - 1 - - - 1.5, 0.2, 1.0 - - - - - - - - - - 4 - - - - 4 - - - - 1 - - - - 1 - - - -1 - - - -1 - - - -1 - - - -1 - - - -1 - - - 50.0 - - - 10.0 - - - 10.0 - - - false - - - - - - - - - - - - - - - - - - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + DestructibleBarrier.rel + + + DestructibleBarrier + + + + 2 + + + 5 + + + 1 + + + + 1.5 + 0.2 + 1.0 + + + + + + + + + + + 4 + + + + 4 + + + + 1 + + + + 1 + + + -1 + + + -1 + + + -1 + + + -1 + + + -1 + + + 50.0 + + + 10.0 + + + 10.0 + + + false + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp2/Script/DigitalGuardian.xml b/templates/mp2/Script/DigitalGuardian.xml index c02a52f7..db07a973 100644 --- a/templates/mp2/Script/DigitalGuardian.xml +++ b/templates/mp2/Script/DigitalGuardian.xml @@ -1,195 +1,70 @@ - - DigitalGuardian - - DigitalGuardian.rel - - - - - - - 360.0 - - - 0.0 - - - - - 150.0 - - - - - 2 - - - - - - - - - 10.0 - - - 17.0 - - - 5.0 - - - - - 0x0000000B - - - 50.0 - - - 10.0 - - - - - 75.0 - - - - - - - - - - - 5.0 - - - 50.0 - - - 30.0 - - - 20.0 - - - 20.0 - - - - - 0x0000000B - - - 50.0 - - - 10.0 - - - - - -5734 - - - 8191 - - - 100.0 - - - - - - 100.0 - - - - - - - 2.0 - - - 5.0 - - - 10.0 - - - 0.7 - - - 0.7 - - - 0.7 - - - 1.0 - - - - - - - - - 500.0 - - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0xC55918CC:0xBB06DD83 - 0xC55918CC:0xC0A86488 - 0xC55918CC:0x8DDD85CA - 0xC55918CC:0x5EF8B288 - 0xC55918CC:0x5796A143 - - - - - - - - - - - - - - - - - - - - enabled - enabled - - + + + DigitalGuardian.rel + + + DigitalGuardian + + + + + + 360.0 + + + 0.0 + + + + + 150.0 + + + + + 2 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/mp2/Script/DigitalGuardianHead.xml b/templates/mp2/Script/DigitalGuardianHead.xml index 687c36e2..497c5ece 100644 --- a/templates/mp2/Script/DigitalGuardianHead.xml +++ b/templates/mp2/Script/DigitalGuardianHead.xml @@ -1,224 +1,52 @@ - - DigitalGuardianHead - - DigitalGuardian.rel - - - - - - - 360.0 - - - 0.0 - - - - - 150.0 - - - - - 2 - - - - - - - - - - - - 60.0 - - - 20.0 - - - 100.0 - - - 5.0 - - - 10.0 - - - 22.5 - - - 15.0 - - - - 5.0 - - - - - - - - 100.0 - - - - - - - - - - - - 30.0 - - - - - - - - - - 0x0000000B - - - 20.0 - - - 10.0 - - - - - - - - 0x0000000B - - - 20.0 - - - 10.0 - - - - - 6.0 - - - 1500 - - - - - - 500.0 - - - 4.0 - - - 1.0 - - - 20.0 - - - 0.25 - - - 2.0 - - - 0.498039, 0.0, 0.0, 0.498039 - - - 0.698039, 0.0, 0.0, 0.498039 - - - - - - - - 0x0000000B - - - 20.0 - - - 10.0 - - - - - - - - 0x0000000B - - - 20.0 - - - 10.0 - - - - - - 15.0 - - - 2.0 - - - 0.5 - - - 0.15 - - - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0x0F4D73B7:0x07D8CC4F - 0x0F4D73B7:0x2FA93722 - - - - - enabled - enabled - - + + + DigitalGuardian.rel + + + DigitalGuardianHead + + + + + + 360.0 + + + 0.0 + + + + + 150.0 + + + + + 2 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + + diff --git a/templates/mp2/Script/DistanceFog.xml b/templates/mp2/Script/DistanceFog.xml index 6312a0f6..16bce36c 100644 --- a/templates/mp2/Script/DistanceFog.xml +++ b/templates/mp2/Script/DistanceFog.xml @@ -1,44 +1,45 @@ - - DistanceFog - - - - - false - - - - - 0 - - - 0.0, 0.0, 0.0, 0.0 - - - - 0.0 - - - - false - - - - - - - - - - - - - - script/common/DistanceFog.TXTR - - 0.5 - enabled - enabled - - + + + DistanceFog + + + + + false + + + + + 0 + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + 0.0 + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/Dock.xml b/templates/mp2/Script/Dock.xml index 4d26acd8..02ba459c 100644 --- a/templates/mp2/Script/Dock.xml +++ b/templates/mp2/Script/Dock.xml @@ -1,39 +1,36 @@ - - Dock - - - - 0 - - - 0 - - - false - - - true - - - true - - - - - - - - - - - - - - script/common/Dock.TXTR - - enabled - volume - - - + + + Dock + + + + 0 + + + 0 + + + false + + + true + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + ScaleVolume + BoxShape + diff --git a/templates/mp2/Script/Door.xml b/templates/mp2/Script/Door.xml index 2be3b43c..d229216b 100644 --- a/templates/mp2/Script/Door.xml +++ b/templates/mp2/Script/Door.xml @@ -1,75 +1,99 @@ - - Door - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - - - - - - 0.0, 1.0, 1.0, 1.0 - - - - - 0.0, 0.0, 0.0 - - - true - - - false - - - 0.5 - - - 0.5 - - - 0.5 - - - 0.5 - - - 0.5 - - - false - - - false - - - - - - - - - - - - - - - - 0xE25FB08C - 0xB20CC271 - 0xAE5B2114 - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Door + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + + + + CMDL + + + + + CMDL + + + + + 0.0 + 1.0 + 1.0 + + + + + TXTR + + + + + + 0.0 + 0.0 + 0.0 + + + + true + + + false + + + 0.5 + + + 0.5 + + + 0.5 + + + 0.5 + + + 0.5 + + + false + + + false + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + diff --git a/templates/mp2/Script/DynamicLight.xml b/templates/mp2/Script/DynamicLight.xml index 10e54cb7..5d67020b 100644 --- a/templates/mp2/Script/DynamicLight.xml +++ b/templates/mp2/Script/DynamicLight.xml @@ -1,93 +1,35 @@ - - DynamicLight - - - - 2 - - - 6 - - - 1.0, 1.0, 1.0, 1.0 - - - - - - 0.0 - - - false - - - - - - - 0 - - - - 0.0 - - - false - - - - - - - - 0.0 - - - false - - - - - - - false - - - - - 10.0 - - - - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - - false - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + DynamicLight + + + + 2 + + + 6 + + + + 1.0 + 1.0 + 1.0 + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/EMPulse.xml b/templates/mp2/Script/EMPulse.xml index 9c0be873..aaa92e34 100644 --- a/templates/mp2/Script/EMPulse.xml +++ b/templates/mp2/Script/EMPulse.xml @@ -1,50 +1,49 @@ - - EMPulse - - - - - false - - - - - 0.1 - - - 34.0 - - - 1.333 - - - 1.0 - - - 3.0 - - - 0.4 - - - 0.8 - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + EMPulse + + + + + false + + + + + 0.1 + + + 34.0 + + + 1.3329999 + + + 1.0 + + + 3.0 + + + 0.40000001 + + + 0.80000001 + + + + PART + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/Effect.xml b/templates/mp2/Script/Effect.xml index a7101648..bb512f0d 100644 --- a/templates/mp2/Script/Effect.xml +++ b/templates/mp2/Script/Effect.xml @@ -1,90 +1,94 @@ - - Effect - - - - - false - - - false - - - false - - - 5.0 - - - 0.5 - - - 0.2 - - - 0.1 - - - false - - - 20.0 - - - 30.0 - - - 0.0 - - - true - - - true - - - true - - - false - - - false - - - 0 - - - - false - - - - - 10.0 - - - false - - - false - - - - - - - - - - - - - - script/common/Effect.TXTR - - enabled - enabled - - + + + Effect + + + + + PART + ELSC + SRSC + SPSC + SWHC + + + + false + + + false + + + false + + + 5.0 + + + 0.5 + + + 0.2 + + + 0.1 + + + false + + + 20.0 + + + 30.0 + + + 0.0 + + + true + + + true + + + true + + + false + + + false + + + 0 + + + + false + + + + + 10.0 + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/mp2/Script/ElitePirate.xml b/templates/mp2/Script/ElitePirate.xml index 93ac41bd..a0ba8358 100644 --- a/templates/mp2/Script/ElitePirate.xml +++ b/templates/mp2/Script/ElitePirate.xml @@ -1,149 +1,183 @@ - - ElitePirate - - ElitePirate.rel - - - - - - - never - - - never - - - 3.5 - - - 2.0 - - - 2 - - - - - - - 9.0 - - - 9.0 - - - 35.0 - - - 15.0 - - - 80.0 - - - 50.0 - - - 50.0 - - - - - - - - - - - 8.0 - - - 3.0 - - - - - 1.0 - - - 1.0 - - - 1.0 - - - 2.0 - - - - - - 0x0000000B - - - 10.0 - - - 5.0 - - - - - 2 - - - 4 - - - 0.1 - - - 3.0 - - - 1.0 - - - 50.0 - - - -1 - - - -1 - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0xB92B481D - 0x7E6E0D38 - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0x00AE9C61 - 0x62C744CD:0xC0BA9E18 - 0x62C744CD:0x6B1FBC3A - 0xE61748ED:0xAD54DA11 - - enabled - enabled - - + + + ElitePirate.rel + + + ElitePirate + + + + + + Never + + + Never + + + 3.5 + + + 2.0 + + + 2 + + + + + + + 9.0 + + + 9.0 + + + 35.0 + + + 15.0 + + + 80.0 + + + 50.0 + + + 50.0 + + + + CMDL + + + + + CSKR + + + + + PART + + + + 0 + + + + PART + + + + + PART + + + + 0 + + + + PART + + + + 8.0 + + + 3.0 + + + + + 1.0 + + + 1.0 + + + 1.0 + + + 2.0 + + + + WPSC + + + + + + 0xB + + + 10.0 + + + 5.0 + + + + + 2 + + + 4 + + + 0.1 + + + 3.0 + + + 1.0 + + + 50.0 + + + -1 + + + -1 + + + + + + + ELSC + + + + 0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + + + diff --git a/templates/mp2/Script/EmperorIngStage1.xml b/templates/mp2/Script/EmperorIngStage1.xml index f0da7f30..96493d66 100644 --- a/templates/mp2/Script/EmperorIngStage1.xml +++ b/templates/mp2/Script/EmperorIngStage1.xml @@ -1,162 +1,35 @@ - - EmperorIngStage1 - - EmperorIngStage1.rel - - - - - - - 2 - - - - - - - - - - - - - - - 0.0 - - - - - - - - - - - - - - - - - - - - - - - -1 - - - -1 - - - - - - - - - 0.0 - - - 0 - - - - - - - - - - - 500.0 - - - 4.0 - - - 1.0 - - - 20.0 - - - 0.25 - - - 2.0 - - - 0.498039, 0.498039, 0.498039, 0.498039 - - - 0.6, 0.6, 0.0, 0.498039 - - - - - - - - - 0.0 - - - 0.0 - - - 0.0 - - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - -1 - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x4A1E493B:0x85F36473:0xF10B6EF6 - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + EmperorIngStage1.rel + + + EmperorIngStage1 + + + + + + 2 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp2/Script/EmperorIngStage2Tentacle.xml b/templates/mp2/Script/EmperorIngStage2Tentacle.xml index 4d20f66d..7e0d73d6 100644 --- a/templates/mp2/Script/EmperorIngStage2Tentacle.xml +++ b/templates/mp2/Script/EmperorIngStage2Tentacle.xml @@ -1,47 +1,34 @@ - - EmperorIngStage2Tentacle - - EmperorIngStage2Tentacle.rel - - - - - - - 2 - - - - - - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + EmperorIngStage2Tentacle.rel + + + EmperorIngStage2Tentacle + + + + + + 2 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/EmperorIngStage3.xml b/templates/mp2/Script/EmperorIngStage3.xml index 09cf5c2f..fbf4e5a3 100644 --- a/templates/mp2/Script/EmperorIngStage3.xml +++ b/templates/mp2/Script/EmperorIngStage3.xml @@ -1,118 +1,34 @@ - - EmperorIngStage3 - - EmperorIngStage3.rel - - - - - - - 2 - - - - - - - - 0.0 - - - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - - - - - - - - - 0x0000000B - - - 20.0 - - - 10.0 - - - - - - - 500.0 - - - 4.0 - - - 1.0 - - - 20.0 - - - 0.25 - - - 2.0 - - - 0.498039, 0.498039, 0.498039, 0.498039 - - - 0.6, 0.6, 0.0, 0.498039 - - - - - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + EmperorIngStage3.rel + + + EmperorIngStage3 + + + + + + 2 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/EnvFxDensityController.xml b/templates/mp2/Script/EnvFxDensityController.xml index 9bc9d147..47ee0513 100644 --- a/templates/mp2/Script/EnvFxDensityController.xml +++ b/templates/mp2/Script/EnvFxDensityController.xml @@ -1,28 +1,23 @@ - - EnvFxDensityController - - - - 0.5 - - - 500 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + EnvFxDensityController + + + + 0.5 + + + 500 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/EyeBall.xml b/templates/mp2/Script/EyeBall.xml index a47b7157..24ca2b04 100644 --- a/templates/mp2/Script/EyeBall.xml +++ b/templates/mp2/Script/EyeBall.xml @@ -1,71 +1,97 @@ - - EyeBall - - EyeBall.rel - - - - - - - 3.0 - - - 3.0 - - - - - - - - - 1.0, 1.0, 1.0, 1.0 - - - 0.0, 1.0, 0.0, 1.0 - - - -1 - - - -1 - - - -1 - - - -1 - - - - false - - - 50.0 - - - 0.2 - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + EyeBall.rel + + + EyeBall + + + + + + 3.0 + + + 3.0 + + + + WPSC + + + + + + PART + + + + + PART + + + + + TXTR + + + + + TXTR + + + + + 1.0 + 1.0 + 1.0 + + + + + 0.0 + 1.0 + 0.0 + + + + -1 + + + -1 + + + -1 + + + -1 + + + 0 + + + false + + + 50.0 + + + 0.2 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/FishCloud.xml b/templates/mp2/Script/FishCloud.xml index d45ba70f..ec4818ee 100644 --- a/templates/mp2/Script/FishCloud.xml +++ b/templates/mp2/Script/FishCloud.xml @@ -1,116 +1,131 @@ - - FishCloud - - FishCloud.rel - - - - - true - - - - - 20.0 - - - 3.0 - - - 2.0 - - - 0.4 - - - 0.9 - - - 1.0 - - - 1.0 - - - 0.4 - - - 0.2 - - - 0.0 - - - 0.0 - - - 0.0 - - - 30.0 - - - 0.1 - - - 0.1 - - - 0.5 - - - 3 - - - 1.0, 1.0, 1.0, 1.0 - - - false - - - 0.0 - - - - 0 - - - - 0 - - - - 0 - - - - 0 - - - - true - - - true - - - - - - - - - - - - - - 0xE25FB08C - 0x7990A3B6 - - enabled - volume - - - + + + FishCloud.rel + + + FishCloud + + + + true + + + + CMDL + + + + + 20.0 + + + 3.0 + + + 2.0 + + + 0.40000001 + + + 0.89999998 + + + 1.0 + + + 1.0 + + + 0.40000001 + + + 0.2 + + + 0.0 + + + 0.0 + + + 0.0 + + + 30.0 + + + 0.1 + + + 0.1 + + + 0.5 + + + 3 + + + + 1.0 + 1.0 + 1.0 + + + + false + + + 0.0 + + + + PART + + + + 0 + + + + PART + + + + 0 + + + + 0 + + + + 0 + + + 0 + + + true + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + + ScaleVolume + BoxShape + diff --git a/templates/mp2/Script/FishCloudModifier.xml b/templates/mp2/Script/FishCloudModifier.xml index 88f988eb..b52660da 100644 --- a/templates/mp2/Script/FishCloudModifier.xml +++ b/templates/mp2/Script/FishCloudModifier.xml @@ -1,40 +1,35 @@ - - FishCloudModifier - - FishCloud.rel - - - - - true - - - false - - - false - - - 8.0 - - - 0.4 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + FishCloud.rel + + + FishCloudModifier + + + + true + + + false + + + false + + + 8.0 + + + 0.40000001 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/FlyerSwarm.xml b/templates/mp2/Script/FlyerSwarm.xml index 0ccb7f19..7c3478d5 100644 --- a/templates/mp2/Script/FlyerSwarm.xml +++ b/templates/mp2/Script/FlyerSwarm.xml @@ -1,55 +1,52 @@ - - FlyerSwarm - - SwarmBasics.rel - FlyerSwarm.rel - - - - - - - true - - - - 1.0 - - - 1.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - - 0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - volume - - - + + + SwarmBasics.rel + FlyerSwarm.rel + + + FlyerSwarm + + + + + + true + + + + 1.0 + + + 1.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + ScaleVolume + BoxShape + diff --git a/templates/mp2/Script/FlyingPirate.xml b/templates/mp2/Script/FlyingPirate.xml index 5ea9a4a2..5d009c2f 100644 --- a/templates/mp2/Script/FlyingPirate.xml +++ b/templates/mp2/Script/FlyingPirate.xml @@ -1,192 +1,226 @@ - - FlyingPirate - - FlyingPirate.rel - - - - - - - 360.0 - - - 90.0 - - - 15.0 - - - 40.0 - - - 1.0 - - - 0.5 - - - - - 0x00000009 - - - 10.0 - - - 10.0 - - - - - 3.0 - - - - - 300.0 - - - 5.0 - - - - - 6.0 - - - 0.3 - - - - - - 20.0 - - - 20.0 - - - 0 - - - - - - 0x00000009 - - - 5.0 - - - - - - - - - 0x00000009 - - - 10.0 - - - 5.0 - - - - - - 0.8 - - - 4.0 - - - - - - 0x00000009 - - - 20.0 - - - 10.0 - - - 10.0 - - - - - 20.0 - - - 10.0 - - - 10.0 - - - 1000.0 - - - - - 25.0 - - - 0.1 - - - 0.05 - - - - - - - - 25.0 - - - 25.0 - - - 8.0 - - - 2.25 - - - 3.0 - - - -0.1 - - - -0.23 - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + FlyingPirate.rel + + + FlyingPirate + + + + + + 360.0 + + + 90.0 + + + 15.0 + + + 40.0 + + + 1.0 + + + 0.5 + + + + + 0x9 + + + 10.0 + + + 10.0 + + + + + 3.0 + + + + + 300.0 + + + 5.0 + + + + + 6.0 + + + 0.30000001 + + + + + + 20.0 + + + 20.0 + + + 0 + + + + WPSC + + + + + + 0x9 + + + 5.0 + + + + + 0 + + + + WPSC + + + + + + 0x9 + + + 10.0 + + + 5.0 + + + + + + WPSC + + + + 0.80000001 + + + 4.0 + + + + PART + + + + + + 0x9 + + + 20.0 + + + 10.0 + + + 10.0 + + + + + 20.0 + + + 10.0 + + + 10.0 + + + 1000.0 + + + 0 + + + 0 + + + 25.0 + + + 0.1 + + + 0.050000001 + + + + PART + + + + + PART + + + + + PART + + + + 0 + + + 0 + + + 25.0 + + + 25.0 + + + 8.0 + + + 2.25 + + + 3.0 + + + -0.1 + + + -0.23 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/FogOverlay.xml b/templates/mp2/Script/FogOverlay.xml index 9d3d7c49..3d5287d3 100644 --- a/templates/mp2/Script/FogOverlay.xml +++ b/templates/mp2/Script/FogOverlay.xml @@ -1,70 +1,74 @@ - - FogOverlay - - FogOverlay.rel - - - - - 1.0 - - - 1.0 - - - 1.0 - - - false - - - 1.0, 1.0, 1.0, 0.0 - - - 0.5 - - - 0.2 - - - 0.1 - - - 0.1 - - - 1.0 - - - 1.0 - - - 0.0, 0.0, 0.0 - - - 0.1 - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + FogOverlay.rel + + + FogOverlay + + + + 1.0 + + + 1.0 + + + 1.0 + + + false + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + 0.5 + + + 0.2 + + + 0.1 + + + 0.1 + + + 1.0 + + + 1.0 + + + + 0.0 + 0.0 + 0.0 + + + + 0.1 + + + 1.0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/FogVolume.xml b/templates/mp2/Script/FogVolume.xml index 36b312d0..34bbe487 100644 --- a/templates/mp2/Script/FogVolume.xml +++ b/templates/mp2/Script/FogVolume.xml @@ -1,41 +1,45 @@ - - FogVolume - - - - - - - 2.0, 2.0, 2.0 - - - - - - - 0.0 - - - 1.0 - - - 1.0, 1.0, 1.0, 1.0 - - - - - - - - - - - - - - enabled - volume - - - + + + FogVolume + + + + + + + + 2.0 + 2.0 + 2.0 + + + + + + + + 0.0 + + + 1.0 + + + + 1.0 + 1.0 + 1.0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + BoxShape + diff --git a/templates/mp2/Script/ForgottenObject.xml b/templates/mp2/Script/ForgottenObject.xml index 489f5422..c01577ca 100644 --- a/templates/mp2/Script/ForgottenObject.xml +++ b/templates/mp2/Script/ForgottenObject.xml @@ -1,25 +1,20 @@ - - ForgottenObject - - ForgottenObject.rel - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ForgottenObject.rel + + + ForgottenObject + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/FrontEndDataNetwork.xml b/templates/mp2/Script/FrontEndDataNetwork.xml index 7f5a11ee..154d501e 100644 --- a/templates/mp2/Script/FrontEndDataNetwork.xml +++ b/templates/mp2/Script/FrontEndDataNetwork.xml @@ -1,87 +1,113 @@ - - FrontEndDataNetwork - - ScriptFrontEndDataNetwork.rel - - - - - false - - - false - - - true - - - true - - - false - - - false - - - true - - - false - - - 8.0 - - - - - - 1.0, 1.0, 1.0, 1.0 - - - 0.498039, 0.498039, 0.498039, 0.74902 - - - 0.8, 0.8, 0.8, 1.0 - - - 0.247059, 0.247059, 0.247059, 1.0 - - - - - 0.75 - - - - 0.75 - - - - 0.75 - - - - 0.75 - - - 127 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ScriptFrontEndDataNetwork.rel + + + FrontEndDataNetwork + + + + false + + + false + + + true + + + true + + + false + + + false + + + true + + + false + + + 8.0 + + + + TXTR + + + + + TXTR + + + + + TXTR + + + + + 1.0 + 1.0 + 1.0 + + + + + 0.49803901 + 0.49803901 + 0.49803901 + 0.74901998 + + + + + 0.80000001 + 0.80000001 + 0.80000001 + + + + + 0.247059 + 0.247059 + 0.247059 + + + + 0 + + + + 0.75 + + + + 0.75 + + + + 0.75 + + + + 0.75 + + + 127 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/Generator.xml b/templates/mp2/Script/Generator.xml index 92fc6952..73a19b3d 100644 --- a/templates/mp2/Script/Generator.xml +++ b/templates/mp2/Script/Generator.xml @@ -1,45 +1,45 @@ - - Generator - - - - 1 - - - false - - - false - - - false - - - 0.0, 0.0, 0.0 - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - script/common/Generator.TXTR - - 0.5 - enabled - enabled - - + + + Generator + + + + 1 + + + false + + + false + + + false + + + + 0.0 + 0.0 + 0.0 + + + + 1.0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/Glowbug.xml b/templates/mp2/Script/Glowbug.xml index 0f5946a0..2f539dbe 100644 --- a/templates/mp2/Script/Glowbug.xml +++ b/templates/mp2/Script/Glowbug.xml @@ -1,52 +1,81 @@ - - Glowbug - - Glowbug.rel - - - - - - - - - - - - 1.0 - - - 1.0 - - - 0.0, 0.0, 0.0 - - - - - - false - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0xA9482EB1 - - enabled - enabled - - + + + Glowbug.rel + + + Glowbug + + + + + + + PART + + + + + PART + + + + + PART + ELSC + + + + + PART + + + + + PART + + + + 1.0 + + + 1.0 + + + + 0.0 + 0.0 + 0.0 + + + + 0 + + + 0 + + + + CMDL + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp2/Script/GrapplePoint.xml b/templates/mp2/Script/GrapplePoint.xml index c5964b43..c8c2185a 100644 --- a/templates/mp2/Script/GrapplePoint.xml +++ b/templates/mp2/Script/GrapplePoint.xml @@ -1,25 +1,21 @@ - - GrapplePoint - - - - - - - - - - - - - - - - script/common/GrapplePoint.TXTR - - 0.5 - enabled - enabled - - + + + GrapplePoint + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/Grenchler.xml b/templates/mp2/Script/Grenchler.xml index f6e591b8..52ad6d23 100644 --- a/templates/mp2/Script/Grenchler.xml +++ b/templates/mp2/Script/Grenchler.xml @@ -1,229 +1,301 @@ - - Grenchler - - Grenchler.rel - - - - - - - never - - - never - - - never - - - never - - - 100.0 - - - never - - - never - - - - - 150.0 - - - - - 1.6 - - - 2.5 - - - 1.0 - - - 1 - - - - - - 50.0 - - - false - - - false - - - - - - - - - - - - - - 4.5 - - - -1.0 - - - 8.0 - - - 40.0 - - - 2.0 - - - 8.0 - - - 2.0 - - - 3.0 - - - 6.0 - - - - - 0x0000000B - - - 5.0 - - - - - 9.0 - - - 25.0 - - - 1.0 - - - 1.5 - - - - - - 0x0000000B - - - 5.0 - - - - - 45.0 - - - - 0.5 - - - 8.0 - - - 1.0 - - - 1.5 - - - 20.0 - - - - - - 0x0000000B - - - 5.0 - - - - - - - - - - - - - - - 4 - - - 20.0 - - - 20.0 - - - 10.0 - - - - - - 0x0000000B - - - 5.0 - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0xA18F626B - 0x0ABEF809 - 0x9B193AE8 - 0xC24CF580 - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0x4F3A4566 - 0x72258FE7 - 0xE61748ED:0xAD54DA11 - - enabled - enabled - - + + + Grenchler.rel + + + Grenchler + + + + + + Never + + + Never + + + Never + + + Never + + + 100.0 + + + Never + + + Never + + + + + 150.0 + + + + + 1.6 + + + 2.5 + + + 1.0 + + + 1 + + + + + + 50.0 + + + false + + + false + + + + + + + CMDL + + + + + CSKR + + + + + + + CMDL + + + + + CSKR + + + + 0 + + + 0 + + + 4.5 + + + -1.0 + + + 8.0 + + + 40.0 + + + 2.0 + + + 8.0 + + + 2.0 + + + 3.0 + + + 6.0 + + + + + 0xB + + + 5.0 + + + + + 9.0 + + + 25.0 + + + 1.0 + + + 1.5 + + + + ELSC + + + + + + 0xB + + + 5.0 + + + + + 45.0 + + + + 0.5 + + + 8.0 + + + 1.0 + + + 1.5 + + + 20.0 + + + + PART + + + + + + 0xB + + + 5.0 + + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + + + WPSC + + + + 4 + + + 20.0 + + + 20.0 + + + 10.0 + + + + PART + + + + + + 0xB + + + 5.0 + + + + + + PART + + + + + + PART + + + + + SCAN + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + + + + diff --git a/templates/mp2/Script/GuiMenu.xml b/templates/mp2/Script/GuiMenu.xml index 0c8b5cc0..31e94852 100644 --- a/templates/mp2/Script/GuiMenu.xml +++ b/templates/mp2/Script/GuiMenu.xml @@ -1,41 +1,36 @@ - - GuiMenu - - ScriptGui.rel - - - - - - false - - - - - - 0 - - - true - - - -1 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ScriptGui.rel + + + GuiMenu + + + + + false + + + + + + 0 + + + true + + + -1 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/GuiPlayerJoinManager.xml b/templates/mp2/Script/GuiPlayerJoinManager.xml index 499e7db5..80541421 100644 --- a/templates/mp2/Script/GuiPlayerJoinManager.xml +++ b/templates/mp2/Script/GuiPlayerJoinManager.xml @@ -1,31 +1,26 @@ - - GuiPlayerJoinManager - - ScriptGui.rel - - - - - - false - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ScriptGui.rel + + + GuiPlayerJoinManager + + + + + false + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/GuiScreen.xml b/templates/mp2/Script/GuiScreen.xml index 1b165883..68f96861 100644 --- a/templates/mp2/Script/GuiScreen.xml +++ b/templates/mp2/Script/GuiScreen.xml @@ -1,29 +1,28 @@ - - GuiScreen - - ScriptGui.rel - - - - - 0 - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ScriptGui.rel + + + GuiScreen + + + + 0 + + + + STRG + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/GuiSlider.xml b/templates/mp2/Script/GuiSlider.xml index 69ea0947..b210d8f7 100644 --- a/templates/mp2/Script/GuiSlider.xml +++ b/templates/mp2/Script/GuiSlider.xml @@ -1,48 +1,45 @@ - - GuiSlider - - ScriptGui.rel - - - - - - false - - - - - - 0.0 - - - 255.0 - - - 1.0 - - - 1.0 - - - - 127 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ScriptGui.rel + + + GuiSlider + + + + + false + + + + + + 0.0 + + + 255.0 + + + 1.0 + + + 1.0 + + + 0 + + + 127 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/GuiWidget.xml b/templates/mp2/Script/GuiWidget.xml index 2e450628..86af869d 100644 --- a/templates/mp2/Script/GuiWidget.xml +++ b/templates/mp2/Script/GuiWidget.xml @@ -1,36 +1,31 @@ - - GuiWidget - - ScriptGui.rel - - - - - - false - - - - - - 1 - never - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ScriptGui.rel + + + GuiWidget + + + + + false + + + + + + Never + 1 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/GunTurretBase.xml b/templates/mp2/Script/GunTurretBase.xml index ddfc56bd..49f587a2 100644 --- a/templates/mp2/Script/GunTurretBase.xml +++ b/templates/mp2/Script/GunTurretBase.xml @@ -1,143 +1,173 @@ - - GunTurretBase - - GunTurret.rel - - - - - - - 0x0000000B - - - 5.0 - - - - - 2.0 - - - 180.0 - - - 180.0 - - - 2.0 - - - 2.0 - - - 1.0 - - - 1.0 - - - 1 - - - 1 - - - 85.0 - - - -45.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 1.0 - - - 1.0 - - - 1.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - false - - - false - - - false - - - false - - - - - -1 - - - - - - - - - - - - - - - - 100.0 - - - 0.0 - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + GunTurret.rel + + + GunTurretBase + + + + + + 0xB + + + 5.0 + + + + + 2.0 + + + 180.0 + + + 180.0 + + + 2.0 + + + 2.0 + + + 1.0 + + + 1.0 + + + 1 + + + 1 + + + 85.0 + + + -45.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 1.0 + + + 1.0 + + + 1.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + false + + + false + + + false + + + false + + + + CRSC + + + + + WPSC + + + + -1 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 100.0 + + + 0.0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/GunTurretTop.xml b/templates/mp2/Script/GunTurretTop.xml index feed412e..8270764d 100644 --- a/templates/mp2/Script/GunTurretTop.xml +++ b/templates/mp2/Script/GunTurretTop.xml @@ -1,50 +1,63 @@ - - GunTurretTop - - GunTurret.rel - - - - - 0.5 - - - 0.5 - - - - - -1 - - - -1 - - - 1.0, 1.0, 1.0, 0.0 - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + GunTurret.rel + + + GunTurretTop + + + + 0.5 + + + 0.5 + + + + PART + + + + + PART + + + + -1 + + + -1 + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + 0 + + + 0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/HUDHint.xml b/templates/mp2/Script/HUDHint.xml index a9fb4140..f8de714a 100644 --- a/templates/mp2/Script/HUDHint.xml +++ b/templates/mp2/Script/HUDHint.xml @@ -1,41 +1,40 @@ - - HUDHint - - - - - 15.0 - - - 16.0 - - - 1.0 - - - 0.0 - - - 0 - - - 15 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + HUDHint + + + + + TXTR + + + + 15.0 + + + 16.0 + + + 1.0 + + + 0.0 + + + 0 + + + 15 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/HUDMemo.xml b/templates/mp2/Script/HUDMemo.xml index df9f58d1..59e7e6c9 100644 --- a/templates/mp2/Script/HUDMemo.xml +++ b/templates/mp2/Script/HUDMemo.xml @@ -1,52 +1,52 @@ - - HUDMemo - - - - 3.0 - - - true - - - true - - - true - - - true - - - true - - - true - - - false - - - 0 - - - - - - - - - - - - - - - script/common/HUDMemo.TXTR - - 0.5 - enabled - enabled - - + + + HUDMemo + + + + 3.0 + + + true + + + true + + + true + + + true + + + true + + + true + + + false + + + 0 + + + + STRG + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/Ing.xml b/templates/mp2/Script/Ing.xml index e446bbcf..09727fd0 100644 --- a/templates/mp2/Script/Ing.xml +++ b/templates/mp2/Script/Ing.xml @@ -1,256 +1,340 @@ - - Ing - - GeomBlobV2.rel - Ing.rel - - - - - - - 360.0 - - - 0.0 - - - - - 150.0 - - - - - 1 - - - - - - 0 - - - - 50.0 - - - 15.0 - - - 7.0 - - - 25.0 - - - 25.0 - - - 360.0 - - - - - - - - - - - - - - - 0.35 - - - - 15.0 - - - 1.5 - - - 1.5 - - - - - - - - 15.0 - - - 1.5 - - - 2.0 - - - 25.0 - - - 10.0 - - - - - 0x0000000B - - - 20.0 - - - 10.0 - - - - - - - 0x0000000B - - - 20.0 - - - 5.0 - - - - - 20.0 - - - 5.0 - - - - 25.0 - - - 2.0 - - - 20.0 - - - 40.0 - - - - - 70.0 - - - 40.0 - - - 100.0 - - - - - - - 0x0000000B - - - 20.0 - - - 10.0 - - - - - - - 500.0 - - - 4.0 - - - 1.0 - - - 20.0 - - - 0.25 - - - 2.0 - - - 0.498039, 0.498039, 0.498039, 0.498039 - - - 0.6, 0.6, 0.0, 0.498039 - - - - - 30.0 - - - - - 0x0000000B - - - 10.0 - - - 1.0 - - - - - 30.0 - - - - - 10.0 - - - 20.0 - - - 10.0 - - - 1.0, 1.0, 1.0, 1.0 - - - 5.0 - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + GeomBlobV2.rel + Ing.rel + + + Ing + + + + + + 360.0 + + + 0.0 + + + + + 150.0 + + + + + 1 + + + + + + 0 + + + + CMDL + + + + 50.0 + + + 15.0 + + + 7.0 + + + 25.0 + + + 25.0 + + + 360.0 + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + PART + + + + + SRSC + + + + + PART + + + + 0.34999999 + + + + PART + + + + 15.0 + + + 1.5 + + + 1.5 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 15.0 + + + 1.5 + + + 2.0 + + + 25.0 + + + 10.0 + + + + + 0xB + + + 20.0 + + + 10.0 + + + + + + + 0xB + + + 20.0 + + + 5.0 + + + + + 20.0 + + + 5.0 + + + + PART + + + + 25.0 + + + 2.0 + + + 20.0 + + + 40.0 + + + 0 + + + 0 + + + 70.0 + + + 40.0 + + + 100.0 + + + + PART + + + + 0 + + + + + 0xB + + + 20.0 + + + 10.0 + + + + + + + 500.0 + + + 4.0 + + + 1.0 + + + 20.0 + + + 0.25 + + + 2.0 + + + + 0.49803901 + 0.49803901 + 0.49803901 + 0.49803901 + + + + + 0.60000002 + 0.60000002 + 0.0 + 0.49803901 + + + + + + 30.0 + + + + + 0xB + + + 10.0 + + + 1.0 + + + + + 30.0 + + + 0 + + + 0 + + + 10.0 + + + 20.0 + + + 10.0 + + + + 1.0 + 1.0 + 1.0 + + + + 5.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/IngBlobSwarm.xml b/templates/mp2/Script/IngBlobSwarm.xml index 593910f5..f6932876 100644 --- a/templates/mp2/Script/IngBlobSwarm.xml +++ b/templates/mp2/Script/IngBlobSwarm.xml @@ -1,59 +1,62 @@ - - IngBlobSwarm - - SwarmBasics.rel - IngBlobSwarm.rel - - - - - - - true - - - - - -1 - - - 30.0 - - - 1.0 - - - 1.0 - - - 2.0 - - - 0.5 - - - 0.0, 0.0, 0.0 - - - - - - - - - - - - - - - 0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - volume - - - + + + SwarmBasics.rel + IngBlobSwarm.rel + + + IngBlobSwarm + + + + + + true + + + + 0 + + + -1 + + + 30.0 + + + 1.0 + + + 1.0 + + + 2.0 + + + 0.5 + + + + 0.0 + 0.0 + 0.0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + ScaleVolume + BoxShape + diff --git a/templates/mp2/Script/IngBoostBallGuardian.xml b/templates/mp2/Script/IngBoostBallGuardian.xml index c3123ddb..0cfb0753 100644 --- a/templates/mp2/Script/IngBoostBallGuardian.xml +++ b/templates/mp2/Script/IngBoostBallGuardian.xml @@ -1,471 +1,51 @@ - - IngBoostBallGuardian - - GeomBlobV2.rel - Ing.rel - IngBoostBallGuardian.rel - - - - - - - 360.0 - - - 0.0 - - - - - 150.0 - - - - - 1 - - - - - - - - 0 - - - 50.0 - - - 15.0 - - - 7.0 - - - 25.0 - - - 25.0 - - - 360.0 - - - - - - - - - - - - - - - 0.35 - - - - 15.0 - - - 1.5 - - - 1.5 - - - - - - - - 15.0 - - - 1.5 - - - 2.0 - - - 25.0 - - - 10.0 - - - - - 0x0000000B - - - 20.0 - - - 10.0 - - - - - - - 0x0000000B - - - 20.0 - - - 5.0 - - - - - 20.0 - - - 5.0 - - - - 25.0 - - - 2.0 - - - 20.0 - - - 40.0 - - - - - 70.0 - - - 40.0 - - - 100.0 - - - - - - - 0x0000000B - - - 20.0 - - - 10.0 - - - - - - - 500.0 - - - 4.0 - - - 1.0 - - - 20.0 - - - 0.25 - - - 2.0 - - - 0.498039, 0.498039, 0.498039, 0.498039 - - - 0.6, 0.6, 0.0, 0.498039 - - - - - 1.0, 1.0, 1.0, 1.0 - - - 5.0 - - - - - - - - 1.8, 1.8, 1.8 - - - 150.0 - - - 0.5 - - - - - - 0x00000007 - - - 30.0 - - - 1.5 - - - 4.0 - - - - - - - 0x00000007 - - - 30.0 - - - 1.5 - - - 6.0 - - - - - 10.0 - - - 3.0 - - - - - - - - - - - - - - 2 - - - 3 - - - 80.0 - - - 0.2 - - - - - 0x0000000B - - - 20.0 - - - 10.0 - - - - - - - 0x0000000B - - - 10.0 - - - 5.0 - - - - - - - - - - 15.0 - - - 0.5 - - - 90.0 - - - 10.0 - - - 2.0 - - - 5.0 - - - 3 - - - 3 - - - 1 - - - 5 - - - 6 - - - 10 - - - 1.0 - - - 1.0 - - - - - - - 15.0 - - - 0.5 - - - 90.0 - - - 10.0 - - - 2.0 - - - 5.0 - - - 3 - - - 3 - - - 1 - - - 5 - - - 6 - - - 10 - - - 1.0 - - - 1.0 - - - - - - - 15.0 - - - 0.5 - - - 90.0 - - - 10.0 - - - 2.0 - - - 5.0 - - - 3 - - - 3 - - - 1 - - - 5 - - - 6 - - - 10 - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0x78656D1E:0x18381479 - - enabled - enabled - - + + + GeomBlobV2.rel + Ing.rel + IngBoostBallGuardian.rel + + + IngBoostBallGuardian + + + + + + 360.0 + + + 0.0 + + + + + 150.0 + + + + + 1 + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp2/Script/IngPuddle.xml b/templates/mp2/Script/IngPuddle.xml index bd306e86..9480e4e2 100644 --- a/templates/mp2/Script/IngPuddle.xml +++ b/templates/mp2/Script/IngPuddle.xml @@ -1,56 +1,28 @@ - - IngPuddle - - GeomBlobV2.rel - Ing.rel - IngPuddle.rel - - - - - - - - - - - 2.0 - - - - - 20.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + GeomBlobV2.rel + Ing.rel + IngPuddle.rel + + + IngPuddle + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp2/Script/IngSnatchingSwarm.xml b/templates/mp2/Script/IngSnatchingSwarm.xml index 77428ac2..5436ef63 100644 --- a/templates/mp2/Script/IngSnatchingSwarm.xml +++ b/templates/mp2/Script/IngSnatchingSwarm.xml @@ -1,91 +1,110 @@ - - IngSnatchingSwarm - - IngSnatchingSwarm.rel - - - - - - - 0.5 - - - - 0.35 - - - 15.0 - - - 25.0 - - - 10.0 - - - 2000.0 - - - false - - - false - - - 0.5 - - - 4.0 - - - 10.0 - - - 3.0 - - - 2.0 - - - 5.0 - - - - - - 0x0000000B - - - 20.0 - - - 10.0 - - - - - - - - 50.0 - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + IngSnatchingSwarm.rel + + + IngSnatchingSwarm + + + + + AFSM + FSM2 + + + + + PART + SRSC + + + + 0.5 + + + + PART + + + + 0.34999999 + + + 15.0 + + + 25.0 + + + 10.0 + + + 2000.0 + + + false + + + false + + + 0.5 + + + 4.0 + + + 10.0 + + + 3.0 + + + 2.0 + + + 5.0 + + + + PART + + + + + + 0xB + + + 20.0 + + + 10.0 + + + + + 0 + + + 0 + + + 0 + + + 50.0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/IngSpaceJumpGuardian.xml b/templates/mp2/Script/IngSpaceJumpGuardian.xml index 20bdc8ae..2d1e2312 100644 --- a/templates/mp2/Script/IngSpaceJumpGuardian.xml +++ b/templates/mp2/Script/IngSpaceJumpGuardian.xml @@ -1,112 +1,49 @@ - - IngSpaceJumpGuardian - - GeomBlobV2.rel - Ing.rel - IngSpaceJumpGuardian.rel - - - - - - - 360.0 - - - 0.0 - - - - - 150.0 - - - - - 1 - - - - - - - - - - - - - - 1.0, 1.0, 1.0, 1.0 - - - 5.0 - - - - - - - 0x0000000B - - - 20.0 - - - 10.0 - - - - - - - 500.0 - - - 4.0 - - - 1.0 - - - 20.0 - - - 0.25 - - - 2.0 - - - 0.498039, 0.498039, 0.498039, 0.498039 - - - 0.6, 0.6, 0.0, 0.498039 - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + GeomBlobV2.rel + Ing.rel + IngSpaceJumpGuardian.rel + + + IngSpaceJumpGuardian + + + + + + 360.0 + + + 0.0 + + + + + 150.0 + + + + + 1 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/IngSpiderballGuardian.xml b/templates/mp2/Script/IngSpiderballGuardian.xml index ac6576e1..22459860 100644 --- a/templates/mp2/Script/IngSpiderballGuardian.xml +++ b/templates/mp2/Script/IngSpiderballGuardian.xml @@ -1,85 +1,47 @@ - - IngSpiderballGuardian - - IngSpiderballGuardian.rel - - - - - - - 360.0 - - - 0.0 - - - - - 150.0 - - - - - 1 - - - - - - - - - - - - - - 2.0 - - - - - 0x0000000B - - - 40.0 - - - 10.0 - - - - - 20.0 - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + IngSpiderballGuardian.rel + + + IngSpiderballGuardian + + + + + + 360.0 + + + 0.0 + + + + + 150.0 + + + + + 1 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/Kralee.xml b/templates/mp2/Script/Kralee.xml index 1d336c27..bdba590e 100644 --- a/templates/mp2/Script/Kralee.xml +++ b/templates/mp2/Script/Kralee.xml @@ -1,156 +1,162 @@ - - Kralee - - WallCrawler.rel - Kralee.rel - - - - - 0 - - - - - 25.0 - - - 3.0 - - - 720.0 - - - 5.0 - - - 5.0 - - - 90.0 - - - 4.0 - - - 20.0 - - - - - 0x00000009 - - - 10.0 - - - 5.0 - - - - - 3.0 - - - 0.2 - - - 5.0 - - - 0.0 - - - - - - 2.5 - - - 2.5 - - - 360.0 - - - 180.0 - - - 120.0 - - - 0.4 - - - 1.0 - - - 0.02 - - - 1.0 - - - 1.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 2.5 - - - 10.0 - - - 10.0 - - - 1.0 - - - 50.0 - - - - - - -1 - - - false - - - false - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + WallCrawler.rel + Kralee.rel + + + Kralee + + + + 0x0 + + + + + 25.0 + + + 3.0 + + + 720.0 + + + 5.0 + + + 5.0 + + + 90.0 + + + 4.0 + + + 20.0 + + + + + 0x9 + + + 10.0 + + + 5.0 + + + + + 3.0 + + + 0.2 + + + 5.0 + + + 0.0 + + + + + + 2.5 + + + 2.5 + + + 360.0 + + + 180.0 + + + 120.0 + + + 0.40000001 + + + 1.0 + + + 0.02 + + + 1.0 + + + 1.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 2.5 + + + 10.0 + + + 10.0 + + + 1.0 + + + 50.0 + + + + PART + + + + + PART + + + + 0 + + + -1 + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/Krocuss.xml b/templates/mp2/Script/Krocuss.xml index 1c6137bd..569243a8 100644 --- a/templates/mp2/Script/Krocuss.xml +++ b/templates/mp2/Script/Krocuss.xml @@ -1,142 +1,150 @@ - - Krocuss - - WallCrawler.rel - Krocuss.rel - - - - - 0 - - - - - 25.0 - - - 3.0 - - - 720.0 - - - 5.0 - - - 5.0 - - - 90.0 - - - 4.0 - - - 20.0 - - - - - 0x00000009 - - - 10.0 - - - 5.0 - - - - - 3.0 - - - 0.2 - - - 5.0 - - - 0.0 - - - - - - 2.5 - - - 2.5 - - - 360.0 - - - 180.0 - - - 120.0 - - - 0.4 - - - 1.0 - - - 0.02 - - - 1.0 - - - false - - - 1.0 - - - 1.0 - - - 1.0 - - - 1.0 - - - 1.0 - - - - 1.0, 0.0, 0.0, 1.0 - - - - - - 50.0 - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + WallCrawler.rel + Krocuss.rel + + + Krocuss + + + + 0 + + + + + 25.0 + + + 3.0 + + + 720.0 + + + 5.0 + + + 5.0 + + + 90.0 + + + 4.0 + + + 20.0 + + + + + 0x9 + + + 10.0 + + + 5.0 + + + + + 3.0 + + + 0.2 + + + 5.0 + + + 0.0 + + + + + + 2.5 + + + 2.5 + + + 360.0 + + + 180.0 + + + 120.0 + + + 0.40000001 + + + 1.0 + + + 0.02 + + + 1.0 + + + false + + + 1.0 + + + 1.0 + + + 1.0 + + + 1.0 + + + 1.0 + + + + + 1.0 + 0.0 + 0.0 + + + + + DPSC + + + + 0 + + + 0 + + + 50.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/Lumite.xml b/templates/mp2/Script/Lumite.xml index bbe60918..0d24da8b 100644 --- a/templates/mp2/Script/Lumite.xml +++ b/templates/mp2/Script/Lumite.xml @@ -1,93 +1,109 @@ - - Lumite - - Lumite.rel - - - - - - - 100.0 - - - 0.1 - - - 0.1 - - - 1.0 - - - 1 - - - - - - 8.0 - - - 30.0 - - - - - - 0x0000000B - - - 5.0 - - - - - 8.0 - - - 30.0 - - - - - - 0x0000000B - - - 5.0 - - - - - - - 5.0 - - - 45.0 - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Lumite.rel + + + Lumite + + + + + + 100.0 + + + 0.1 + + + 0.1 + + + 1.0 + + + 1 + + + + + + 8.0 + + + 30.0 + + + + WPSC + + + + + + 0xB + + + 5.0 + + + + + 8.0 + + + 30.0 + + + + WPSC + + + + + + 0xB + + + 5.0 + + + + + + PART + + + + + PART + + + + 5.0 + + + 45.0 + + + 0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/MediumIng.xml b/templates/mp2/Script/MediumIng.xml index d4b68d25..42708423 100644 --- a/templates/mp2/Script/MediumIng.xml +++ b/templates/mp2/Script/MediumIng.xml @@ -1,120 +1,126 @@ - - MediumIng - - GeomBlobV2.rel - MediumIng.rel - - - - - - - 360.0 - - - - - 150.0 - - - - - 1 - - - - - 0 - - - - 50.0 - - - 4.0 - - - 10.0 - - - 20.0 - - - - 10.0 - - - - 10.0 - - - - 2.0 - - - 15.0 - - - 30.0 - - - 5.0 - - - 40.0 - - - 1.0 - - - 0.5 - - - - - - - - 25.0 - - - 25.0 - - - 1.0, 1.0, 1.0, 1.0 - - - 2.0 - - - - - - - 50.0 - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7A9F8249 - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0x38CF133B:0xC0BA9E18 - 0x38CF133B:0x6B1FBC3A - - enabled - enabled - - + + + GeomBlobV2.rel + MediumIng.rel + + + MediumIng + + + + + + 360.0 + + + + + 150.0 + + + + + 1 + + + + + 0 + + + + 50.0 + + + 4.0 + + + 10.0 + + + 20.0 + + + + 10.0 + + + + 10.0 + + + + 2.0 + + + 15.0 + + + 30.0 + + + 5.0 + + + 40.0 + + + 1.0 + + + 0.5 + + + + + + + + 25.0 + + + 25.0 + + + + 1.0 + 1.0 + 1.0 + + + + 2.0 + + + + + + PART + + + + 0 + + + 50.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + diff --git a/templates/mp2/Script/MemoryRelay.xml b/templates/mp2/Script/MemoryRelay.xml index 41e88c79..8b1402e3 100644 --- a/templates/mp2/Script/MemoryRelay.xml +++ b/templates/mp2/Script/MemoryRelay.xml @@ -1,30 +1,26 @@ - - MemoryRelay - - - - false - - - false - - - - - - - - - - - - - - script/common/MemoryRelay.TXTR - - 0.5 - enabled - enabled - - + + + MemoryRelay + + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/Metaree.xml b/templates/mp2/Script/Metaree.xml index cafbf32a..5f997490 100644 --- a/templates/mp2/Script/Metaree.xml +++ b/templates/mp2/Script/Metaree.xml @@ -1,95 +1,95 @@ - - Metaree - - Metaree.rel - - - - - - - 10.0 - - - 30.0 - - - - - 0x0000000B - - - 2.5 - - - 4.0 - - - - - - - 2.0 - - - - - 0.0 - - - - - - - - 0x0000000B - - - 5.0 - - - 5.0 - - - - - 3.0 - - - 0.0, 0.0, 0.0 - - - 5.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Metaree.rel + + + Metaree + + + + + + 10.0 + + + 30.0 + + + + + 0xB + + + 2.5 + + + 4.0 + + + + + + + 2.0 + + + + + 0.0 + + + + + + + + 0xB + + + 5.0 + + + 5.0 + + + + + 3.0 + + + + 0.0 + 0.0 + 0.0 + + + + 5.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/MetareeSwarm.xml b/templates/mp2/Script/MetareeSwarm.xml index 910f96d0..48c42cde 100644 --- a/templates/mp2/Script/MetareeSwarm.xml +++ b/templates/mp2/Script/MetareeSwarm.xml @@ -1,52 +1,49 @@ - - MetareeSwarm - - SwarmBasics.rel - MetareeSwarm.rel - - - - - - - true - - - - -1 - - - -1 - - - 30.0 - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - - 0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - volume - - - + + + SwarmBasics.rel + MetareeSwarm.rel + + + MetareeSwarm + + + + + + true + + + + -1 + + + -1 + + + 30.0 + + + 1.0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + ScaleVolume + BoxShape + diff --git a/templates/mp2/Script/MetroidAlpha.xml b/templates/mp2/Script/MetroidAlpha.xml index 8054ffb9..05c063d3 100644 --- a/templates/mp2/Script/MetroidAlpha.xml +++ b/templates/mp2/Script/MetroidAlpha.xml @@ -1,114 +1,114 @@ - - MetroidAlpha - - Metroid.rel - - - - - - - 180.0 - - - 60.0 - - - 10.0 - - - 6.0 - - - 5.0 - - - - - 5.0 - - - 3.0 - - - - - - - 1.0 - - - - - 1 - - - - - - - - - 5.0 - - - 40.0 - - - 1.0 - - - 0.5 - - - 10.0 - - - 10.0 - - - 0.5 - - - - 1.75 - - - 50.0 - - - 100.0 - - - 5.0 - - - 0.5 - - - 0 - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0xE61748ED:0xAD54DA11 - - enabled - enabled - - + + + Metroid.rel + + + MetroidAlpha + + + + + + 180.0 + + + 60.0 + + + 10.0 + + + 6.0 + + + 5.0 + + + + + 5.0 + + + 3.0 + + + + + + + 1.0 + + + + + 1 + + + + + + + + + 5.0 + + + 40.0 + + + 1.0 + + + 0.5 + + + 10.0 + + + 10.0 + + + 0.5 + + + + PART + + + + 1.75 + + + 50.0 + + + 100.0 + + + 5.0 + + + 0.5 + + + 0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp2/Script/Midi.xml b/templates/mp2/Script/Midi.xml index 7f3cb23c..66d0ccc0 100644 --- a/templates/mp2/Script/Midi.xml +++ b/templates/mp2/Script/Midi.xml @@ -1,32 +1,31 @@ - - Midi - - - - - 0.0 - - - 0.0 - - - 127 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Midi + + + + + CSNG + + + + 0.0 + + + 0.0 + + + 127 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/MinorIng.xml b/templates/mp2/Script/MinorIng.xml index dff36e92..fb8b9375 100644 --- a/templates/mp2/Script/MinorIng.xml +++ b/templates/mp2/Script/MinorIng.xml @@ -1,213 +1,102 @@ - - MinorIng - - GeomBlobV2.rel - MinorIng.rel - - - - - - - 4.5 - - - 30.0 - - - 3.0 - - - 4.0 - - - - - - - - 0x0000000B - - - 5.0 - - - 3.0 - - - - - - 20.0 - - - 90.0 - - - 2.0 - - - 7.0 - - - 7.0 - - - 50.0 - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - - - - - 0x0000000B - - - 10.0 - - - 4.5 - - - 4.0 - - - - - 5.0 - - - 10.0 - - - 15.0 - - - 7.0 - - - 25.0 - - - 2.0 - - - 360.0 - - - - - - - - - - - - 100.0 - - - 0.2 - - - - - - - - - - - 0x00000009 - - - 5.0 - - - 1.0 - - - - - - - - 4.0 - - - 0.5 - - - 15.0 - - - 20.0 - - - 5 - - - - - 30.0 - - - 2.0 - - - 0 - - - 3 - - - 40.0 - - - true - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + GeomBlobV2.rel + MinorIng.rel + + + MinorIng + + + + + + 4.5 + + + 30.0 + + + 3.0 + + + 4.0 + + + + + + + + 0xB + + + 5.0 + + + 3.0 + + + + + + WPSC + + + + 20.0 + + + 90.0 + + + 2.0 + + + 7.0 + + + 7.0 + + + 50.0 + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/MysteryFlyer.xml b/templates/mp2/Script/MysteryFlyer.xml index d031574d..4aa72361 100644 --- a/templates/mp2/Script/MysteryFlyer.xml +++ b/templates/mp2/Script/MysteryFlyer.xml @@ -1,58 +1,28 @@ - - MysteryFlyer - - MysteryFlyer.rel - - - - - - - - - - - - 0x0000000B - - - 5.0 - - - - - 10.0 - - - 2.0 - - - 5.0 - - - true - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + MysteryFlyer.rel + + + MysteryFlyer + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/OctapedeSegment.xml b/templates/mp2/Script/OctapedeSegment.xml index 875eee04..e3a62354 100644 --- a/templates/mp2/Script/OctapedeSegment.xml +++ b/templates/mp2/Script/OctapedeSegment.xml @@ -1,184 +1,194 @@ - - OctapedeSegment - - WallCrawler.rel - OctapedeSegment.rel - - - - - 0 - - - - - 25.0 - - - 3.0 - - - 720.0 - - - 5.0 - - - 5.0 - - - 90.0 - - - 4.0 - - - 20.0 - - - - - 0x00000009 - - - 10.0 - - - 5.0 - - - - - 3.0 - - - 0.2 - - - 5.0 - - - 0.0 - - - - - - 2.5 - - - 2.5 - - - 360.0 - - - 180.0 - - - 120.0 - - - 0.4 - - - 1.0 - - - 0.02 - - - 1.0 - - - 50.0 - - - false - - - 0.0 - - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 1.0 - - - 2.0 - - - 1 - - - 1 - - - 0.75 - - - - - 0x00000009 - - - 5.0 - - - 2.0 - - - - - - - - - - 0.0 - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + WallCrawler.rel + OctapedeSegment.rel + + + OctapedeSegment + + + + 0 + + + + + 25.0 + + + 3.0 + + + 720.0 + + + 5.0 + + + 5.0 + + + 90.0 + + + 4.0 + + + 20.0 + + + + + 0x9 + + + 10.0 + + + 5.0 + + + + + 3.0 + + + 0.2 + + + 5.0 + + + 0.0 + + + + + + 2.5 + + + 2.5 + + + 360.0 + + + 180.0 + + + 120.0 + + + 0.40000001 + + + 1.0 + + + 0.02 + + + 1.0 + + + 50.0 + + + false + + + 0.0 + + + + ELSC + + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 1.0 + + + 2.0 + + + 1 + + + 1 + + + 0.75 + + + + + 0x9 + + + 5.0 + + + 2.0 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/Parasite.xml b/templates/mp2/Script/Parasite.xml index ea1131e6..89e818b9 100644 --- a/templates/mp2/Script/Parasite.xml +++ b/templates/mp2/Script/Parasite.xml @@ -1,141 +1,137 @@ - - Parasite - - WallCrawler.rel - Parasite.rel - - - - - 0 - - - - - 25.0 - - - 3.0 - - - 720.0 - - - 5.0 - - - 5.0 - - - 90.0 - - - 4.0 - - - 20.0 - - - - - 0x00000009 - - - 10.0 - - - 5.0 - - - - - 3.0 - - - 0.2 - - - 5.0 - - - 0.0 - - - - - - 10.0 - - - 2.5 - - - 360.0 - - - 180.0 - - - 120.0 - - - 0.2 - - - 0.4 - - - 6.0 - - - 2.6 - - - 1.0 - - - 0.8 - - - 0.7 - - - 0.9 - - - 0.2 - - - 1.3 - - - 0.2 - - - 40.0 - - - false - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + WallCrawler.rel + Parasite.rel + + + Parasite + + + + 0 + + + + + 25.0 + + + 3.0 + + + 720.0 + + + 5.0 + + + 5.0 + + + 90.0 + + + 4.0 + + + 20.0 + + + + + 0x9 + + + 10.0 + + + 5.0 + + + + + 3.0 + + + 0.2 + + + 5.0 + + + 0.0 + + + + + + 10.0 + + + 2.5 + + + 360.0 + + + 180.0 + + + 120.0 + + + 0.2 + + + 0.40000001 + + + 6.0 + + + 2.5999999 + + + 1.0 + + + 0.80000001 + + + 0.69999999 + + + 0.89999998 + + + 0.2 + + + 1.3 + + + 0.2 + + + 40.0 + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/PathCamera.xml b/templates/mp2/Script/PathCamera.xml index fb458969..e3314122 100644 --- a/templates/mp2/Script/PathCamera.xml +++ b/templates/mp2/Script/PathCamera.xml @@ -1,54 +1,49 @@ - - PathCamera - - - - 32 - - - 0 - - - - - - - - - - false - - - 4.0 - - - 10.0 - - - 3.0 - - - 0 - - - 120.0 - - - - - - - - - - - - - - - - enabled - enabled - - + + + PathCamera + + + + 32 + + + 0 + + + + + + + + + + false + + + 4.0 + + + 10.0 + + + 3.0 + + + 0 + + + 120.0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/mp2/Script/PathMeshCtrl.xml b/templates/mp2/Script/PathMeshCtrl.xml index f1137906..dd5b96b7 100644 --- a/templates/mp2/Script/PathMeshCtrl.xml +++ b/templates/mp2/Script/PathMeshCtrl.xml @@ -1,28 +1,23 @@ - - PathMeshCtrl - - - - 0 - - - 1 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + PathMeshCtrl + + + + 0 + + + 1 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/Pickup.xml b/templates/mp2/Script/Pickup.xml index f8d63408..e1b753a3 100644 --- a/templates/mp2/Script/Pickup.xml +++ b/templates/mp2/Script/Pickup.xml @@ -1,92 +1,106 @@ - - Pickup - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - 0x00000000 - - - 1 - - - 0 - - - 1 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - 0.0 - - - - false - - - true - - - false - - - 0.0 - - - 0.0 - - - 20.0 - - - false - - - false - - - 0.0, 0.0, 0.0 - - - - - - - - - - - - - - - 0xE25FB08C - 0xC27FFA8F - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Pickup + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + 1 + + + 0 + + + 1 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + CMDL + + + + + + + 0.0 + + + + PART + + + + false + + + true + + + false + + + 0.0 + + + 0.0 + + + 20.0 + + + false + + + false + + + + 0.0 + 0.0 + 0.0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp2/Script/PickupGenerator.xml b/templates/mp2/Script/PickupGenerator.xml index 258ffd56..4e0e2bed 100644 --- a/templates/mp2/Script/PickupGenerator.xml +++ b/templates/mp2/Script/PickupGenerator.xml @@ -1,31 +1,35 @@ - - PickupGenerator - - - - 0.0, 0.0, 0.0 - - - false - - - - - - - - - - - - - - - script/common/PickupGenerator.TXTR - - 0.5 - enabled - enabled - - + + + PickupGenerator + + + + + 0.0 + 0.0 + 0.0 + + + + false + + + + RULE + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/PillBug.xml b/templates/mp2/Script/PillBug.xml index 4bae0b5d..8165a3f0 100644 --- a/templates/mp2/Script/PillBug.xml +++ b/templates/mp2/Script/PillBug.xml @@ -1,76 +1,72 @@ - - PillBug - - WallCrawler.rel - PillBug.rel - - - - - - - 0 - - - 120.0 - - - 0.2 - - - 1.5 - - - 200.0 - - - - - 0.35 - - - 0.5 - - - 0.5 - - - 0.02 - - - 0.3 - - - 0.6 - - - 1.5 - - - 0.6 - - - 1.5 - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + WallCrawler.rel + PillBug.rel + + + PillBug + + + + + + 0 + + + 120.0 + + + 0.2 + + + 1.5 + + + 200.0 + + + + + 0.34999999 + + + 0.5 + + + 0.5 + + + 0.02 + + + 0.30000001 + + + 0.60000002 + + + 1.5 + + + 0.60000002 + + + 1.5 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/PlantScarabSwarm.xml b/templates/mp2/Script/PlantScarabSwarm.xml index 86ff0c04..7caba1cb 100644 --- a/templates/mp2/Script/PlantScarabSwarm.xml +++ b/templates/mp2/Script/PlantScarabSwarm.xml @@ -1,86 +1,103 @@ - - PlantScarabSwarm - - SwarmBasics.rel - PlantScarabSwarm.rel - - - - - - - true - - - - -1 - - - -1 - - - 30.0 - - - 1.0 - - - 1.0 - - - 1.0 - - - 1.0 - - - 0.5 - - - 3 - - - - 0.5 - - - - - - - - 0.0 - - - 100.0 - - - - 0.0 - - - 100.0 - - - - - - - - - - - - - - - 0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - volume - - - + + + SwarmBasics.rel + PlantScarabSwarm.rel + + + PlantScarabSwarm + + + + + + true + + + + -1 + + + -1 + + + 30.0 + + + 1.0 + + + 1.0 + + + 1.0 + + + 1.0 + + + 0.5 + + + 3 + + + + 0.5 + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + 0 + + + 0.0 + + + 100.0 + + + 0 + + + 0.0 + + + 100.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + ScaleVolume + BoxShape + diff --git a/templates/mp2/Script/Platform.xml b/templates/mp2/Script/Platform.xml index 52f4fbc1..2c45c9f0 100644 --- a/templates/mp2/Script/Platform.xml +++ b/templates/mp2/Script/Platform.xml @@ -1,79 +1,78 @@ - - Platform - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - - - - - - - 1.0 - - - 200 - - - 20 - - - false - - - false - - - - - - - 10.0 - - - 0.0 - - - 288 - - - - - - - - 0.0, 0.15, 0.0 - - - 0.0 - - - - - - - - - - - - - - - 0xE25FB08C - 0xC27FFA8F - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0x0FC966DC - - enabled - enabled - - + + + Platform + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + CMDL + + + + + + + DCLN + + + + + + 1.0 + + + 200 + + + 20 + + + false + + + false + + + + + 0.0 + 0.15000001 + 0.0 + + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + diff --git a/templates/mp2/Script/PlayerActor.xml b/templates/mp2/Script/PlayerActor.xml index 3a534ca6..6060913f 100644 --- a/templates/mp2/Script/PlayerActor.xml +++ b/templates/mp2/Script/PlayerActor.xml @@ -1,61 +1,65 @@ - - PlayerActor - - ScriptPlayerActor.rel - - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - 1.0 - - - 0.0 - - - - - - - - true - - - true - - - true - - - 4 - - - 0 - - - - - - - - - - - - - - - 0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + ScriptPlayerActor.rel + + + PlayerActor + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + 1.0 + + + 0.0 + + + + + + + + true + + + true + + + true + + + 4 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/PlayerController.xml b/templates/mp2/Script/PlayerController.xml index d16edd2b..f241349e 100644 --- a/templates/mp2/Script/PlayerController.xml +++ b/templates/mp2/Script/PlayerController.xml @@ -1,71 +1,83 @@ - - PlayerController - - ScriptPlayerProxy.rel - - - - - - - - 2.0, 2.0, 2.0 - - - - - - - 0 - - - - - - 0 - - - 0.0, 0.0, 1.5 - - - 0 - - - 0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0, 0.0, 0.0 - - - - - - - - - - - - - - - - 0xE25FB08C - 0xC27FFA8F - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + ScriptPlayerProxy.rel + + + PlayerController + + + + + + + + 2.0 + 2.0 + 2.0 + + + + + + + + 0 + + + + CMDL + + + + + + 0 + + + + 0.0 + 0.0 + 1.5 + + + + 0 + + + 0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + 0.0 + 0.0 + 0.0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp2/Script/PlayerHint.xml b/templates/mp2/Script/PlayerHint.xml index 994a0711..3c3ad9ce 100644 --- a/templates/mp2/Script/PlayerHint.xml +++ b/templates/mp2/Script/PlayerHint.xml @@ -1,60 +1,55 @@ - - PlayerHint - - - - 10 - - - 0.0 - - - 1.0 - - - 0x00000001 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + PlayerHint + + + + 10 + + + 0.0 + + + 1.0 + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/PlayerStateChange.xml b/templates/mp2/Script/PlayerStateChange.xml index e8e2a98e..82b06d17 100644 --- a/templates/mp2/Script/PlayerStateChange.xml +++ b/templates/mp2/Script/PlayerStateChange.xml @@ -1,37 +1,32 @@ - - PlayerStateChange - - - - 0 - - - 1 - - - 1 - - - 0 - - - 0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + PlayerStateChange + + + + 0 + + + 1 + + + 1 + + + 0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/PlayerTurret.xml b/templates/mp2/Script/PlayerTurret.xml index 9dbd1fea..5cafdb2a 100644 --- a/templates/mp2/Script/PlayerTurret.xml +++ b/templates/mp2/Script/PlayerTurret.xml @@ -1,60 +1,73 @@ - - PlayerTurret - - ScriptPlayerTurret.rel - - - - - 1 - - - 90.0 - - - 90.0 - - - 90.0 - - - 0.0 - - - 30.0 - - - 30.0 - - - 30.0 - - - 1.0 - - - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ScriptPlayerTurret.rel + + + PlayerTurret + + + + 1 + + + 90.0 + + + 90.0 + + + 90.0 + + + 0.0 + + + 30.0 + + + 30.0 + + + 30.0 + + + 1.0 + + + + + WPSC + + + + + WPSC + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/PointOfInterest.xml b/templates/mp2/Script/PointOfInterest.xml index b6784088..b95b2e28 100644 --- a/templates/mp2/Script/PointOfInterest.xml +++ b/templates/mp2/Script/PointOfInterest.xml @@ -1,32 +1,28 @@ - - PointOfInterest - - - - - 1.5 - - - false - If enabled, Samus will turn to look at the POI while scanning it. - - - - - - - - - - - - - - script/common/PointOfInterest.TXTR - - 0.5 - enabled - enabled - - + + + PointOfInterest + + + + + 1.5 + + + If enabled, Samus will turn to look at the POI while scanning it. + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/PortalTransition.xml b/templates/mp2/Script/PortalTransition.xml index 67121f01..7557e419 100644 --- a/templates/mp2/Script/PortalTransition.xml +++ b/templates/mp2/Script/PortalTransition.xml @@ -1,41 +1,55 @@ - - PortalTransition - - - - - 1.0, 1.0, 1.0 - - - 127 - - - 64 - - - - - - - - 0 - - - - - - - - - - - - - - 0xE25FB08C - - enabled - enabled - - + + + PortalTransition + + + + + + 1.0 + 1.0 + 1.0 + + + + 127 + + + 64 + + + + AGSC + + + + + AGSC + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/mp2/Script/PuddleSpore.xml b/templates/mp2/Script/PuddleSpore.xml index ff42f4f2..3ce07eb3 100644 --- a/templates/mp2/Script/PuddleSpore.xml +++ b/templates/mp2/Script/PuddleSpore.xml @@ -1,91 +1,89 @@ - - PuddleSpore - - PuddleSpore.rel - - - - - 0 - - - - - 35.0 - - - 3.0 - - - 180.0 - - - 0.0 - - - - - 1000000.0 - - - - - 2.5 - - - 3.0 - - - 1 - - - - - - true - - - 3.0 - - - 3.0 - - - 7.0 - - - 30.0 - - - 5.0 - - - 30.0 - - - 0.0 - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + PuddleSpore.rel + + + PuddleSpore + + + + 0 + + + + + 35.0 + + + 3.0 + + + 180.0 + + + 0.0 + + + + + 1000000.0 + + + + + 2.5 + + + 3.0 + + + 1 + + + + + + true + + + 3.0 + + + 3.0 + + + 7.0 + + + 30.0 + + + 5.0 + + + 30.0 + + + 0.0 + + + 0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/Puffer.xml b/templates/mp2/Script/Puffer.xml index d1d055e7..d3a2abeb 100644 --- a/templates/mp2/Script/Puffer.xml +++ b/templates/mp2/Script/Puffer.xml @@ -1,100 +1,106 @@ - - Puffer - - Puffer.rel - - - - - - - 25.0 - - - 720.0 - - - 5.0 - - - 5.0 - - - 90.0 - - - 4.0 - - - 20.0 - - - - - 0x00000009 - - - 10.0 - - - 5.0 - - - - - 1.0 - - - 0.5 - - - 1.5 - - - 0.0 - - - - - - 3.0 - - - - - - 0.5 - - - true - - - false - - - false - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Puffer.rel + + + Puffer + + + + + + 25.0 + + + 720.0 + + + 5.0 + + + 5.0 + + + 90.0 + + + 4.0 + + + 20.0 + + + + + 0x9 + + + 10.0 + + + 5.0 + + + + + 1.0 + + + 0.5 + + + 1.5 + + + 0.0 + + + + + + 3.0 + + + + PART + + + + + + TXTR + + + + 0.5 + + + true + + + false + + + false + + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/RadialDamage.xml b/templates/mp2/Script/RadialDamage.xml index 7900bb6e..14788eda 100644 --- a/templates/mp2/Script/RadialDamage.xml +++ b/templates/mp2/Script/RadialDamage.xml @@ -1,37 +1,33 @@ - - RadialDamage - - - - - 15.0 - - - false - - - false - - - false - - - - - - - - - - - - - - script/common/RadialDamage.TXTR - - 0.5 - enabled - enabled - - + + + RadialDamage + + + + + 15.0 + + + false + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/RandomRelay.xml b/templates/mp2/Script/RandomRelay.xml index 39496a7e..7aa61906 100644 --- a/templates/mp2/Script/RandomRelay.xml +++ b/templates/mp2/Script/RandomRelay.xml @@ -1,36 +1,32 @@ - - RandomRelay - - - - 1 - - - 0 - - - false - - - false - - - - - - - - - - - - - - script/common/RandomRelay.TXTR - - 0.5 - enabled - enabled - - + + + RandomRelay + + + + 1 + + + 0 + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/Relay.xml b/templates/mp2/Script/Relay.xml index dd23d686..1ecf82eb 100644 --- a/templates/mp2/Script/Relay.xml +++ b/templates/mp2/Script/Relay.xml @@ -1,27 +1,23 @@ - - Relay - - - - false - - - - - - - - - - - - - - script/common/Relay.TXTR - - 0.5 - enabled - enabled - - + + + Relay + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/Repulsor.xml b/templates/mp2/Script/Repulsor.xml index 3f3e3e14..61f804bf 100644 --- a/templates/mp2/Script/Repulsor.xml +++ b/templates/mp2/Script/Repulsor.xml @@ -1,34 +1,29 @@ - - Repulsor - - - - 0 - - - 1.0 - - - -1.0 - - - 0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Repulsor + + + + 0 + + + 1.0 + + + -1.0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/Rezbit.xml b/templates/mp2/Script/Rezbit.xml index 770bd604..d7965119 100644 --- a/templates/mp2/Script/Rezbit.xml +++ b/templates/mp2/Script/Rezbit.xml @@ -1,217 +1,48 @@ - - Rezbit - - Rezbit.rel - - - - - - - 360.0 - - - 0.0 - - - - - 150.0 - - - - - 1 - - - - - - - - 20.0 - - - 20.0 - - - 10.0 - - - - - 3.0 - - - 2.0 - - - 3.0 - - - 1.0 - - - - - - - - 12.0 - - - 1.2 - - - - 2.0 - - - 100.0 - - - 2.0 - - - 100.0 - - - 4.0 - - - 50.0 - - - 50.0 - - - 20.0 - - - 40.0 - - - - - 0x0000000B - - - 20.0 - - - 5.0 - - - - - - 4.0 - - - 2.0 - - - 0.5 - - - - 0.0 - - - 30.0 - - - 6.0 - - - - - 0x0000000B - - - 20.0 - - - 5.0 - - - - - -1 - - - - - 20.0 - - - 40.0 - - - - - 0x0000000B - - - 20.0 - - - 5.0 - - - - - - - - 500.0 - - - 4.0 - - - 1.0 - - - 20.0 - - - 0.25 - - - 2.0 - - - 0.498039, 0.498039, 0.498039, 0.498039 - - - 0.6, 0.6, 0.0, 0.498039 - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0x8716D656:0xC80BB6E4 - - enabled - enabled - - + + + Rezbit.rel + + + Rezbit + + + + + + 360.0 + + + 0.0 + + + + + 150.0 + + + + + 1 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp2/Script/RiftPortal.xml b/templates/mp2/Script/RiftPortal.xml index 7173e810..d0acf1dd 100644 --- a/templates/mp2/Script/RiftPortal.xml +++ b/templates/mp2/Script/RiftPortal.xml @@ -1,54 +1,66 @@ - - RiftPortal - - ScriptRiftPortal.rel - - - - - - - - - - - - - false - - - 0 - - - 10.0 - - - 30.0 - - - 5.0 - - - - - - - - - - - - - - 0xE25FB08C - 0x5CB18EB4 - 0xE845FA67 - 0xC27FFA8F - 0x90C42387 - 0xF284D838 - - enabled - enabled - - + + + ScriptRiftPortal.rel + + + RiftPortal + + + + + CMDL + + + + + + CMDL + + + + + + CMDL + + + + + + CMDL + + + + + false + + + 0 + + + 10.0 + + + 30.0 + + + 5.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + + + + + + diff --git a/templates/mp2/Script/Ripper.xml b/templates/mp2/Script/Ripper.xml index f7141211..c0913990 100644 --- a/templates/mp2/Script/Ripper.xml +++ b/templates/mp2/Script/Ripper.xml @@ -1,41 +1,37 @@ - - Ripper - - Ripper.rel - - - - - 0 - - - - - 10.0 - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Ripper.rel + + + Ripper + + + + 0 + + + + + 10.0 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/Ripple.xml b/templates/mp2/Script/Ripple.xml index d25bdad2..817a56a3 100644 --- a/templates/mp2/Script/Ripple.xml +++ b/templates/mp2/Script/Ripple.xml @@ -1,25 +1,20 @@ - - Ripple - - - - -0.1 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Ripple + + + + -0.1 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/RoomAcoustics.xml b/templates/mp2/Script/RoomAcoustics.xml index 2a5b7ca7..72d2e206 100644 --- a/templates/mp2/Script/RoomAcoustics.xml +++ b/templates/mp2/Script/RoomAcoustics.xml @@ -1,181 +1,176 @@ - - RoomAcoustics - - - - 117 - - - 1 - - - false - - - false - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - false - - - 0.0 - - - 0.0 - - - 0.0 - - - false - - - false - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - false - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 32000 - - - 0 - - - false - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - false - - - 0 - - - 0.0 - - - 0 - - - 1.0 - - - false - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 200.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RoomAcoustics + + + + 117 + + + 0x1 + + + false + + + false + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + false + + + 0.0 + + + 0.0 + + + 0.0 + + + false + + + false + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + false + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 32000 + + + 0 + + + false + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + false + + + 0 + + + 0.0 + + + 0 + + + 1.0 + + + false + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 200.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/RsfAudio.xml b/templates/mp2/Script/RsfAudio.xml index cc216af3..169416f4 100644 --- a/templates/mp2/Script/RsfAudio.xml +++ b/templates/mp2/Script/RsfAudio.xml @@ -1,41 +1,36 @@ - - RsfAudio - - ScriptRsfAudio.rel - - - - - - 0 - - - 0 - - - 0.25 - - - 0.25 - - - 127 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ScriptRsfAudio.rel + + + RsfAudio + + + + + 0 + + + 0 + + + 0.25 + + + 0.25 + + + 127 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/RubiksPuzzle.xml b/templates/mp2/Script/RubiksPuzzle.xml index 142268f3..b83c8562 100644 --- a/templates/mp2/Script/RubiksPuzzle.xml +++ b/templates/mp2/Script/RubiksPuzzle.xml @@ -1,33 +1,21 @@ - - RubiksPuzzle - - RubiksPuzzle.rel - - - - - - - 90.0 - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RubiksPuzzle.rel + + + RubiksPuzzle + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/RumbleEffect.xml b/templates/mp2/Script/RumbleEffect.xml index ec927e2f..6d794643 100644 --- a/templates/mp2/Script/RumbleEffect.xml +++ b/templates/mp2/Script/RumbleEffect.xml @@ -1,31 +1,26 @@ - - RumbleEffect - - - - 20.0 - - - 0 - - - 0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RumbleEffect + + + + 20.0 + + + 0x0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/SafeZone.xml b/templates/mp2/Script/SafeZone.xml index 9e03672a..6ae778e7 100644 --- a/templates/mp2/Script/SafeZone.xml +++ b/templates/mp2/Script/SafeZone.xml @@ -1,229 +1,266 @@ - - SafeZone - - ScriptSafeZone.rel - - - - - - false - - - false - - - 0.15 - - - 0.15 - - - 0.0 - - - 0.0 - - - - true - - - 300 - - - false - - - - - - 0.04 - - - 0.0 - - - 4.0 - - - 2.0 - - - 10.0 - - - 12.0 - - - 1.0, 0.737255, 0.392157, 1.0 - - - - - - - 0.04 - - - 0.0 - - - 4.0 - - - 2.0 - - - 10.0 - - - 12.0 - - - 1.0, 0.0, 0.0, 1.0 - - - - - - - 0x00000014 - - - - - - - 0x00000012 - - - - - 3.0 - - - 2.0 - - - 0.25 - - - 1.0 - - - 0.5 - - - - 0 - - - false - - - false - - - 0.0, 0.0, 0.0 - - - 0.737255, 1.0, 1.0, 0.247059 - - - 0.2 - - - - - false - - - 1 - - - 0.737255, 1.0, 1.0, 1.0 - - - - - 0.0 - - - 750.0 - - - - - 5.0 - - - - - 5000.0 - - - 5000.0 - - - - - - - - - false - - - 1 - - - 0.0, 0.098039, 0.0, 0.0 - - - - - 0.0 - - - 1000.0 - - - - - 5.0 - - - - - 5000.0 - - - 5000.0 - - - - - - - - - - - - - - - - - - - enabled - volume - - - - - - + + + ScriptSafeZone.rel + + + SafeZone + + + + + false + + + false + + + 0.15000001 + + + 0.15000001 + + + 0.0 + + + 0.0 + + + + PART + + + + true + + + 300 + + + false + + + + + + 0.039999999 + + + 0.0 + + + 4.0 + + + 2.0 + + + 10.0 + + + 12.0 + + + + 1.0 + 0.73725498 + 0.39215699 + + + + + + + + 0.039999999 + + + 0.0 + + + 4.0 + + + 2.0 + + + 10.0 + + + 12.0 + + + + 1.0 + 0.0 + 0.0 + + + + + + + + 0x14 + + + + + + + 0x12 + + + + + 3.0 + + + 2.0 + + + 0.25 + + + 1.0 + + + 0.5 + + + 0 + + + 0 + + + false + + + false + + + + 0.0 + 0.0 + 0.0 + + + + + 0.73725498 + 1.0 + 1.0 + 0.247059 + + + + 0.2 + + + + + false + + + 1 + + + + 0.73725498 + 1.0 + 1.0 + + + + + + 0.0 + + + 750.0 + + + + + 5.0 + + + + + 5000.0 + + + 5000.0 + + + + + + + + + false + + + 1 + + + + 0.0 + 0.098039001 + 0.0 + 0.0 + + + + + + 0.0 + + + 1000.0 + + + + + 5.0 + + + + + 5000.0 + + + 5000.0 + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + ConditionalShape + 0xD5869B0B + + + 0 + EllipsoidShape + + + 1 + CylinderShape + 2.0 + + + diff --git a/templates/mp2/Script/SafeZoneCrystal.xml b/templates/mp2/Script/SafeZoneCrystal.xml index 9c6d7857..dbecf1c6 100644 --- a/templates/mp2/Script/SafeZoneCrystal.xml +++ b/templates/mp2/Script/SafeZoneCrystal.xml @@ -1,82 +1,146 @@ - - SafeZoneCrystal - - ScriptSafeZone.rel - - - - - - - - - - 0 - - - false - - - - - - - - - - - - 5.0 - - - 5.0 - - - 5.0 - - - 5.0 - - - 3.0 - - - 1.0 - - - 5.0 - - - - 1.0, 1.0, 1.0 - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - - - - - - - - - - - - - 0xD29C031D:0xC0BA9E18 - 0xD29C031D:0x6B1FBC3A - 0x71EFFFC4 - 0xF1F3D90F - 0x1E864B83 - - enabled - enabled - - + + + ScriptSafeZone.rel + + + SafeZoneCrystal + + + + + + SCAN + + + + + SCAN + + + + + SCAN + + + + + SCAN + + + + 0 + + + false + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + 5.0 + + + 5.0 + + + 5.0 + + + 5.0 + + + 3.0 + + + 1.0 + + + 5.0 + + + + PART + + + + + 1.0 + 1.0 + 1.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + + + + + diff --git a/templates/mp2/Script/SandBoss.xml b/templates/mp2/Script/SandBoss.xml index e630e228..d6c4e4de 100644 --- a/templates/mp2/Script/SandBoss.xml +++ b/templates/mp2/Script/SandBoss.xml @@ -1,251 +1,78 @@ - - SandBoss - - SandBoss.rel - - - - - - - 60.0 - - - 12.0 - - - 37.0 - - - - - 150.0 - - - - - 2 - - - - - - - - - 0 - - - - - - - - 0x0000000B - - - 20.0 - - - 10.0 - - - - - - - 0x0000000B - - - 20.0 - - - 10.0 - - - - - 4.0 - - - 1.0 - - - - - - 0x00000001 - - - 20.0 - - - 10.0 - - - - - 90.0 - - - 10.0 - - - 100.0 - - - 7.0 - - - 30.0 - - - 5.0 - - - - - - 1.5 - - - 2.5 - - - 3.0 - - - 150.0 - - - - - - - - 0x0000000B - - - 20.0 - - - 13.0 - - - 10.0 - - - - - - - - - - - - - - 500.0 - - - 1.0 - - - 4.0 - - - 1.0 - - - 20.0 - - - 0.25 - - - 2.0 - - - 0.498039, 0.498039, 0.498039, 0.498039 - - - 0.6, 0.6, 0.0, 0.498039 - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0x91E88D81:0xE47262F5 - 0x91E88D81:0xA9BAC3FE - 0x91E88D81:0x8B452A19:0x07D8CC4F - 0x91E88D81:0x8B452A19:0xAE30AE06 - 0x91E88D81:0x8B452A19:0x656C7DA3 - 0x91E88D81:0x8B452A19:0x78694D1B - 0x91E88D81:0x8B452A19:0xB3359EBE - 0x91E88D81:0x8B452A19:0x35A1EC10 - 0x91E88D81:0x8B452A19:0xFEFD3FB5 - 0x91E88D81:0x8B452A19:0x37E99C23 - 0x91E88D81:0x0CF8C54C:0x07D8CC4F - 0x91E88D81:0x0CF8C54C:0xAE30AE06 - 0x91E88D81:0x0CF8C54C:0x656C7DA3 - 0x91E88D81:0x0CF8C54C:0x78694D1B - 0x91E88D81:0x0CF8C54C:0xB3359EBE - 0x91E88D81:0x0CF8C54C:0x35A1EC10 - 0x91E88D81:0x0CF8C54C:0xFEFD3FB5 - 0x91E88D81:0x0CF8C54C:0x37E99C23 - 0x91E88D81:0xBBD84681 - - - - follow - - - follow - - - follow - - - follow - - - follow - - - follow - - - follow - - - enabled - enabled - - + + + SandBoss.rel + + + SandBoss + + + + + + 60.0 + + + 12.0 + + + 37.0 + + + + + 150.0 + + + + + 2 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/mp2/Script/Sandworm.xml b/templates/mp2/Script/Sandworm.xml index a0ba437e..69a6a823 100644 --- a/templates/mp2/Script/Sandworm.xml +++ b/templates/mp2/Script/Sandworm.xml @@ -1,202 +1,238 @@ - - Sandworm - - Sandworm.rel - - - - - 0 - - - - - 32.0 - - - never - - - never - - - never - - - never - - - 0.5 - - - 1.0 - - - 2 - - - - - - 1.0 - - - - - - - - - 9.0 - - - 25.0 - - - - 60.0 - - - 25.0 - - - 30.0 - - - - - - 0x0000000B - - - 5.0 - - - - - 50.0 - - - 50.0 - - - 50.0 - - - 50.0 - - - 30.0 - - - 15.0 - - - - - 0x0000000B - - - 5.0 - - - - - - - 0x0000000B - - - 5.0 - - - - - 25.0 - - - 2.0 - - - 5.0 - - - 6.0 - - - 20.0 - - - false - - - - - - - - - - 0x0000000B - - - 5.0 - - - - - 0.0 - - - - - 50.0 - - - 10.0 - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0x66E34A08 - 0x5F3F29E3 - 0xE61748ED:0xAD54DA11 - - - - follow - - - follow - - - follow - - - follow - - - enabled - enabled - - + + + Sandworm.rel + + + Sandworm + + + + 0 + + + + + 32.0 + + + Never + + + Never + + + Never + + + Never + + + 0.5 + + + 1.0 + + + 2 + + + + + + 1.0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + CMDL + + + + + CMDL + + + + 9.0 + + + 25.0 + + + + PART + + + + 60.0 + + + 25.0 + + + 30.0 + + + + WPSC + + + + + + 0xB + + + 5.0 + + + + + 50.0 + + + 50.0 + + + 50.0 + + + 50.0 + + + 30.0 + + + 15.0 + + + + + 0xB + + + 5.0 + + + + + + + 0xB + + + 5.0 + + + + + 25.0 + + + 2.0 + + + 5.0 + + + 6.0 + + + 20.0 + + + false + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + + 0xB + + + 5.0 + + + + + 0.0 + + + 0 + + + 0 + + + 50.0 + + + 10.0 + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + + + + + + diff --git a/templates/mp2/Script/ScriptLayerController.xml b/templates/mp2/Script/ScriptLayerController.xml index b76b2953..441cc700 100644 --- a/templates/mp2/Script/ScriptLayerController.xml +++ b/templates/mp2/Script/ScriptLayerController.xml @@ -1,26 +1,21 @@ - - ScriptLayerController - - - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ScriptLayerController + + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/SequenceTimer.xml b/templates/mp2/Script/SequenceTimer.xml index bc8c4368..8f24ab2c 100644 --- a/templates/mp2/Script/SequenceTimer.xml +++ b/templates/mp2/Script/SequenceTimer.xml @@ -1,60 +1,41 @@ - - SequenceTimer - - - - Connection - - - 0 - - - - - 0.0 - - - - - false - - - - - 0.0 - - - 0.0 - - - 0.0 - - - false - - - false - - - false - - - - - - - - - - - - - - script/common/SequenceTimer.TXTR - - 0.5 - enabled - enabled - - + + + SequenceTimer + + + + + + + 0.0 + + + 0.0 + + + 0.0 + + + false + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/ShadowProjector.xml b/templates/mp2/Script/ShadowProjector.xml index cb61e07b..19309085 100644 --- a/templates/mp2/Script/ShadowProjector.xml +++ b/templates/mp2/Script/ShadowProjector.xml @@ -1,43 +1,42 @@ - - ShadowProjector - - - - 1.0 - - - 0.0, 0.0, 0.0 - - - 100.0 - - - 0.5 - - - 1.0 - - - false - - - 128 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ShadowProjector + + + + 1.0 + + + + 0.0 + 0.0 + 0.0 + + + + 100.0 + + + 0.5 + + + 1.0 + + + false + + + 128 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/Shredder.xml b/templates/mp2/Script/Shredder.xml index 8249f442..a40e7b35 100644 --- a/templates/mp2/Script/Shredder.xml +++ b/templates/mp2/Script/Shredder.xml @@ -1,81 +1,34 @@ - - Shredder - - Shredder.rel - - - - - - - 1 - - - - - - - - 10 - - - - 4.0 - - - 4.0 - - - 4.0 - - - 4.0 - - - 5.0 - - - 14.0 - - - 16.0 - - - 20.0 - - - 40.0 - - - 100.0 - - - false - - - 0.0 - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Shredder.rel + + + Shredder + + + + + + 1 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/Shrieker.xml b/templates/mp2/Script/Shrieker.xml index b160c183..80a4b591 100644 --- a/templates/mp2/Script/Shrieker.xml +++ b/templates/mp2/Script/Shrieker.xml @@ -1,150 +1,164 @@ - - Shrieker - - Shrieker.rel - - - - - - - 4.5 - - - 30.0 - - - 3.0 - - - 4.0 - - - 1 - - - - - - - 0.1 - - - - - 0x0000000B - - - 10.0 - - - 4.5 - - - 4.0 - - - - - - - - 0x0000000B - - - 5.0 - - - 3.0 - - - - - - 50 - - - 100 - - - - - 0x0000000B - - - 10.0 - - - 4.5 - - - 4.0 - - - - - - 1.0 - - - 0.1 - - - 4.0 - - - 0.0 - - - 0.0, 0.0, -1.5 - - - 15.0 - - - 1.0 - - - - 3.0 - - - 20.0 - - - 5.0 - - - 15.0 - - - 10.0 - - - 5.0 - - - 0.5 - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Shrieker.rel + + + Shrieker + + + + + + 4.5 + + + 30.0 + + + 3.0 + + + 4.0 + + + 1 + + + + + + + 0.1 + + + + + 0xB + + + 10.0 + + + 4.5 + + + 4.0 + + + + + + PART + + + + + + 0xB + + + 5.0 + + + 3.0 + + + + + + WPSC + + + + 50 + + + 100 + + + + + 0xB + + + 10.0 + + + 4.5 + + + 4.0 + + + + + + PART + + + + 1.0 + + + 0.1 + + + 4.0 + + + 0.0 + + + + 0.0 + 0.0 + -1.5 + + + + 15.0 + + + 1.0 + + + 0 + + + 3.0 + + + 20.0 + + + 5.0 + + + 15.0 + + + 10.0 + + + 5.0 + + + 0.5 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/Silhouette.xml b/templates/mp2/Script/Silhouette.xml index b80675b6..47896359 100644 --- a/templates/mp2/Script/Silhouette.xml +++ b/templates/mp2/Script/Silhouette.xml @@ -1,47 +1,51 @@ - - Silhouette - - - - - - - 2.0, 2.0, 2.0 - - - - - false - - - - - 0.5 - - - 0.298039, 0.6, 1.0, 0.498039 - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Silhouette + + + + + + + + 2.0 + 2.0 + 2.0 + + + + + + false + + + + + 0.5 + + + + 0.29803899 + 0.60000002 + 1.0 + 0.49803901 + + + + 1.0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/SkyRipple.xml b/templates/mp2/Script/SkyRipple.xml index 2b40ccbf..bf35fbaf 100644 --- a/templates/mp2/Script/SkyRipple.xml +++ b/templates/mp2/Script/SkyRipple.xml @@ -1,25 +1,20 @@ - - SkyRipple - - SkyRipple.rel - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + SkyRipple.rel + + + SkyRipple + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/SnakeWeedSwarm.xml b/templates/mp2/Script/SnakeWeedSwarm.xml index cb2f9743..942d9d8f 100644 --- a/templates/mp2/Script/SnakeWeedSwarm.xml +++ b/templates/mp2/Script/SnakeWeedSwarm.xml @@ -1,87 +1,90 @@ - - SnakeWeedSwarm - - SnakeWeedSwarm.rel - - - - - - - 1.0 - - - 1.0 - - - 0.5 - - - 4.0 - - - 1.0 - - - 2.0 - - - 0.2 - - - 2.5 - - - 1.5 - - - 3.0 - - - 5.0 - - - 1.0 - - - 1.0 - - - 0.0 - - - - - 0x00000009 - - - - - 0.0 - - - - - - - - - - - - - - - - - - 0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - volume - - - + + + SnakeWeedSwarm.rel + + + SnakeWeedSwarm + + + + + + 1.0 + + + 1.0 + + + 0.5 + + + 4.0 + + + 1.0 + + + 2.0 + + + 0.2 + + + 2.5 + + + 1.5 + + + 3.0 + + + 5.0 + + + 1.0 + + + 1.0 + + + 0.0 + + + + + 0x9 + + + + + 0.0 + + + 0 + + + 0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + ScaleVolume + BoxShape + diff --git a/templates/mp2/Script/Sound.xml b/templates/mp2/Script/Sound.xml index f4e7e0ba..cf64640b 100644 --- a/templates/mp2/Script/Sound.xml +++ b/templates/mp2/Script/Sound.xml @@ -1,89 +1,78 @@ - - Sound - - - - - 50.0 - - - 0.2 - - - 0.0 - - - 20 - - - 127 - - - 127 - - - - - 0.0 - - - 0.0 - - - - - false - - - false - - - false - - - false - - - false - - - true - - - false - - - false - - - false - - - false - - - 0 - - - 0 - - - - - - - - - - - - - - script/common/Sound.TXTR - - 0.5 - enabled - enabled - - + + + Sound + + + + 0 + + + 50.0 + + + 0.2 + + + 0.0 + + + 20 + + + 127 + + + 127 + + + + false + + + false + + + false + + + false + + + false + + + true + + + false + + + false + + + false + + + false + + + 0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/SoundModifier.xml b/templates/mp2/Script/SoundModifier.xml index 5eb57cf0..662ecf39 100644 --- a/templates/mp2/Script/SoundModifier.xml +++ b/templates/mp2/Script/SoundModifier.xml @@ -1,37 +1,33 @@ - - SoundModifier - - - - 5.0 - - - false - - - false - - - - - - - - - - - - - - - - - - script/common/SoundModifier.TXTR - - 0.5 - enabled - enabled - - + + + SoundModifier + + + + 5.0 + + + false + + + false + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/SpacePirate.xml b/templates/mp2/Script/SpacePirate.xml index 7080abc1..a6d58ca9 100644 --- a/templates/mp2/Script/SpacePirate.xml +++ b/templates/mp2/Script/SpacePirate.xml @@ -1,252 +1,212 @@ - - SpacePirate - - PirateRagDoll.rel - SpacePirate.rel - - - - - - - 360.0 - - - 90.0 - - - 4.0 - - - 1.0 - - - 0.5 - - - - - 0x0000000B - - - 10.0 - - - 10.0 - - - - - 3.0 - - - - - 150.0 - - - - - 0.8 - - - 3.0 - - - 0.3 - - - 0.2 - - - 1 - - - - - - - 10.0 - - - 50.0 - - - 20.0 - - - 20.0 - - - 10.0 - - - 20.0 - - - 0 - - - false - - - - - - 0x0000000B - - - 5.0 - - - - - - - - 0x0000000B - - - 10.0 - - - 5.0 - - - - - 10.0 - - - - - - 0x0000000B - - - 10.0 - - - - - 80.0 - - - - 0.1 - - - 0.05 - - - 0.1 - - - 0.05 - - - -1 - - - 1.0 - - - 0 - - - 0.1 - - - 0.75 - - - 5.0 - - - 10.0 - - - - - 0.2 - - - 10.0 - - - - - 0 - - - - 3 - - - 15.0 - - - 50.0 - - - - - 0x0000000B - - - 40.0 - - - 8.0 - - - 10.0 - - - - - - - - 25.0 - - - 0.4 - - - 20.0 - - - 50.0 - - - 2 - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0xE61748ED:0xAD54DA11 - 0xDC89CC3C:0xA79BB82E - - enabled - enabled - - + + + PirateRagDoll.rel + SpacePirate.rel + + + SpacePirate + + + + + + 360.0 + + + 90.0 + + + 4.0 + + + 1.0 + + + 0.5 + + + + + 0xB + + + 10.0 + + + 10.0 + + + + + 3.0 + + + + + 150.0 + + + + + 0.80000001 + + + 3.0 + + + 0.30000001 + + + 0.2 + + + 1 + + + + + + + 10.0 + + + 50.0 + + + 20.0 + + + 20.0 + + + 10.0 + + + 20.0 + + + 0 + + + false + + + + WPSC + + + + + + 0xB + + + 5.0 + + + + + 0 + + + + + 0xB + + + 10.0 + + + 5.0 + + + + + 10.0 + + + + WPSC + + + + + + 0xB + + + 10.0 + + + + + 80.0 + + + 0 + + + 0.1 + + + 0.050000001 + + + 0.1 + + + 0.050000001 + + + -1 + + + 1.0 + + + 0 + + + 0.1 + + + 0.75 + + + 5.0 + + + 10.0 + + + 0 + + + 0 + + + 0.2 + + + 10.0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + diff --git a/templates/mp2/Script/SpankWeed.xml b/templates/mp2/Script/SpankWeed.xml index 978f2fe8..20eb4bc0 100644 --- a/templates/mp2/Script/SpankWeed.xml +++ b/templates/mp2/Script/SpankWeed.xml @@ -1,72 +1,68 @@ - - SpankWeed - - SpankWeed.rel - - - - - - - - - 0x00000009 - - - 20.0 - - - 1.0 - - - - - 1.0 - - - - - 1000000.0 - - - - - - - - true - - - 60.0 - - - 30.0 - - - 15.0 - - - 5.0 - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + SpankWeed.rel + + + SpankWeed + + + + + + + + 0x9 + + + 20.0 + + + 1.0 + + + + + 1.0 + + + + + 1000000.0 + + + + + + + + true + + + 60.0 + + + 30.0 + + + 15.0 + + + 5.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/SpawnPoint.xml b/templates/mp2/Script/SpawnPoint.xml index 5ccd434b..6eecc65e 100644 --- a/templates/mp2/Script/SpawnPoint.xml +++ b/templates/mp2/Script/SpawnPoint.xml @@ -1,30 +1,25 @@ - - SpawnPoint - - - - true - - - false - - - - - - - - - - - - - - - - 0.5559 - enabled - enabled - - + + + SpawnPoint + + + + true + + + false + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.55589998 + diff --git a/templates/mp2/Script/SpecialFunction.xml b/templates/mp2/Script/SpecialFunction.xml index dc5dc251..86739e7a 100644 --- a/templates/mp2/Script/SpecialFunction.xml +++ b/templates/mp2/Script/SpecialFunction.xml @@ -1,130 +1,130 @@ - - SpecialFunction - - - - - false - - - - - 0x00000000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0 - - - 0 - - - 0x00000000 - - - - - - - - - - - - - - - - - script/common/SpecialFunction.TXTR - - 0.5 - enabled - enabled - - + + + SpecialFunction + + + + + false + + + + + 0x0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0 + + + 0 + + + + 0 + + + 0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/SpiderBallAttractionSurface.xml b/templates/mp2/Script/SpiderBallAttractionSurface.xml index 7a1aa962..8f4f2e64 100644 --- a/templates/mp2/Script/SpiderBallAttractionSurface.xml +++ b/templates/mp2/Script/SpiderBallAttractionSurface.xml @@ -1,24 +1,21 @@ - - SpiderBallAttractionSurface - - - - - - - - - - - - - - - script/common/SpiderBallAttractionSurface.TXTR - - enabled - volume - - - + + + SpiderBallAttractionSurface + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + ScaleVolume + BoxShape + diff --git a/templates/mp2/Script/SpiderBallWaypoint.xml b/templates/mp2/Script/SpiderBallWaypoint.xml index 30a748fe..00341cab 100644 --- a/templates/mp2/Script/SpiderBallWaypoint.xml +++ b/templates/mp2/Script/SpiderBallWaypoint.xml @@ -1,26 +1,22 @@ - - SpiderBallWaypoint - - - - 0 - - - - - - - - - - - - - - script/common/SpiderBallWaypoint.CMDL - - enabled - enabled - - + + + SpiderBallWaypoint + + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/mp2/Script/SpindleCamera.xml b/templates/mp2/Script/SpindleCamera.xml index 1fa251ad..8e8bb409 100644 --- a/templates/mp2/Script/SpindleCamera.xml +++ b/templates/mp2/Script/SpindleCamera.xml @@ -1,49 +1,44 @@ - - SpindleCamera - - - - 6400 - - - - - - - - - - - - - - - - - - - - false - - - - - false - - - - - - - - - - - - - - enabled - enabled - - + + + SpindleCamera + + + + 6400 + + + + + + + + + + + + + + + + + + + + false + + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/mp2/Script/Spinner.xml b/templates/mp2/Script/Spinner.xml index 3abec7e4..fc58a453 100644 --- a/templates/mp2/Script/Spinner.xml +++ b/templates/mp2/Script/Spinner.xml @@ -1,49 +1,50 @@ - - Spinner - - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - false - - - false - - - false - - - true - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Spinner + + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + false + + + false + + + false + + + true + + + 0 + + + 0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/Splinter.xml b/templates/mp2/Script/Splinter.xml index 12e22676..75ff36d6 100644 --- a/templates/mp2/Script/Splinter.xml +++ b/templates/mp2/Script/Splinter.xml @@ -1,112 +1,120 @@ - - Splinter - - Splinter.rel - - - - - - - 32.0 - - - 7.0 - - - 17.0 - - - 0.5 - - - 1.0 - - - - - - 0.0 - - - 5.0 - - - 18.0 - - - 1.0 - - - 3.0 - - - 1 - - - 2 - - - - - 0x0000000B - - - 5.0 - - - - - 0 - - - - - - - - false - - - - - - 0x0000000B - - - 5.0 - - - - - - 2.5 - - - 5.0 - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x6D752EFC - 0x0D6AB7B5 - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0xE61748ED:0xAD54DA11 - - enabled - enabled - - + + + Splinter.rel + + + Splinter + + + + + + 32.0 + + + 7.0 + + + 17.0 + + + 0.5 + + + 1.0 + + + + + + 0.0 + + + 5.0 + + + 18.0 + + + 1.0 + + + 3.0 + + + 1 + + + 2 + + + + + 0xB + + + 5.0 + + + + + 0 + + + + + + PART + + + + + + false + + + + WPSC + + + + + + 0xB + + + 5.0 + + + + + + PART + + + + 2.5 + + + 5.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + diff --git a/templates/mp2/Script/SplitterCommandModule.xml b/templates/mp2/Script/SplitterCommandModule.xml index 4dc421e3..e6b47696 100644 --- a/templates/mp2/Script/SplitterCommandModule.xml +++ b/templates/mp2/Script/SplitterCommandModule.xml @@ -1,191 +1,51 @@ - - SplitterCommandModule - - Splitter.rel - - - - - - - 60.0 - - - 12.0 - - - 37.0 - - - - - 150.0 - - - - - 2 - - - - - - - - 10 - - - 20.0 - - - 720.0 - - - 20.0 - - - 4.0 - - - 10.0 - - - 20.0 - - - 3 - - - - - - 0x0000000B - - - 10.0 - - - - - 1 - - - 3 - - - 100.0 - - - 10.0 - - - 100.0 - - - 45.0 - - - - - 0x0000000B - - - 10.0 - - - - - - - 500.0 - - - 4.0 - - - 1.0 - - - 20.0 - - - 0.25 - - - 2.0 - - - 0.498039, 0.498039, 0.498039, 0.498039 - - - 0.6, 0.6, 0.0, 0.498039 - - - - - - - 20.0 - - - 0.247059, 0.0, 0.0, 0.0 - - - 0.498039, 0.098039, 0.098039, 0.0 - - - 0.34902, 0.0, 0.0, 0.0 - - - 0.14902, 0.0, 0.0, 0.0 - - - 10.0 - - - 5.0 - - - 4.0 - - - - - - - - - -1 - - - -1 - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0x560CF813:0xE61748ED:0xAD54DA11 - - enabled - enabled - - + + + Splitter.rel + + + SplitterCommandModule + + + + + + 60.0 + + + 12.0 + + + 37.0 + + + + + 150.0 + + + + + 2 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp2/Script/SplitterMainChassis.xml b/templates/mp2/Script/SplitterMainChassis.xml index b0744617..7b540c9d 100644 --- a/templates/mp2/Script/SplitterMainChassis.xml +++ b/templates/mp2/Script/SplitterMainChassis.xml @@ -1,153 +1,51 @@ - - SplitterMainChassis - - Splitter.rel - - - - - - - 60.0 - - - 12.0 - - - 37.0 - - - - - 150.0 - - - - - 2 - - - - - - - - 124 - - - 2.0 - - - 2.5 - - - 6.0 - - - - - 0x0000000B - - - 20.0 - - - 5.0 - - - - - 3.0 - - - 100.0 - - - 40.0 - - - 3.0 - - - 6.0 - - - 30.0 - - - 60.0 - - - 20.0 - - - 20.0 - - - 60.0 - - - 20.0 - - - 6.0 - - - 6.0 - - - 1.5 - - - 10.0 - - - 30.0 - - - 4 - - - 30.0 - - - - - 0x0000000B - - - 20.0 - - - 5.0 - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0x15E03A2F:0xE61748ED:0xAD54DA11 - - enabled - enabled - - + + + Splitter.rel + + + SplitterMainChassis + + + + + + 60.0 + + + 12.0 + + + 37.0 + + + + + 150.0 + + + + + 2 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp2/Script/SporbBase.xml b/templates/mp2/Script/SporbBase.xml index 3683d867..271b2078 100644 --- a/templates/mp2/Script/SporbBase.xml +++ b/templates/mp2/Script/SporbBase.xml @@ -1,165 +1,193 @@ - - SporbBase - - Sporb.rel - - - - - - - 2.0 - - - 2.0 - - - 1.0 - - - 1.0 - - - 1 - - - 1 - - - 0.0 - - - 0.0, 0.0, 0.0 - - - - 0.1 - - - -10.0 - - - -100.0 - - - 50.0 - - - 0.0 - - - 2.0 - - - 2.0 - - - 2.0 - - - 40.0 - - - 0.0 - - - 5.0 - - - 10.0 - - - 5.0 - - - 20.0 - - - false - - - - - - 0x0000000B - - - 5.0 - - - 2.0 - - - - - 20.0 - - - 1.0 - - - 1.0 - - - 1.0 - - - 5.0 - - - -1 - - - 20.0 - - - 0.0 - - - 1.0 - - - 0.4 - - - 5.0 - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Sporb.rel + + + SporbBase + + + + + + 2.0 + + + 2.0 + + + 1.0 + + + 1.0 + + + 1 + + + 1 + + + 0.0 + + + + 0.0 + 0.0 + 0.0 + + + + + PART + + + + 0.1 + + + -10.0 + + + -100.0 + + + 50.0 + + + 0.0 + + + 2.0 + + + 2.0 + + + 2.0 + + + 40.0 + + + 0.0 + + + 5.0 + + + 10.0 + + + 5.0 + + + 20.0 + + + false + + + + WPSC + + + + + + 0xB + + + 5.0 + + + 2.0 + + + + + 20.0 + + + 1.0 + + + 1.0 + + + 1.0 + + + 5.0 + + + -1 + + + 20.0 + + + 0.0 + + + 1.0 + + + 0.40000001 + + + 5.0 + + + 0 + + + -1 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/SporbNeedle.xml b/templates/mp2/Script/SporbNeedle.xml index 6d56b834..cb47c72c 100644 --- a/templates/mp2/Script/SporbNeedle.xml +++ b/templates/mp2/Script/SporbNeedle.xml @@ -1,60 +1,78 @@ - - SporbNeedle - - Sporb.rel - - - - - - - 60.0 - - - 1.0 - - - - - 0x00000009 - - - 5.0 - - - 2.0 - - - - - 1.5 - - - - - - - - - - - - - - - - - - - - - - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0xC27FFA8F - - enabled - enabled - - + + + Sporb.rel + + + SporbNeedle + + + + + + CMDL + + + + 60.0 + + + 1.0 + + + + + 0x9 + + + 5.0 + + + 2.0 + + + + + 1.5 + + + + PART + + + + + PART + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/SporbProjectile.xml b/templates/mp2/Script/SporbProjectile.xml index 87334dd6..348e0b4b 100644 --- a/templates/mp2/Script/SporbProjectile.xml +++ b/templates/mp2/Script/SporbProjectile.xml @@ -1,33 +1,37 @@ - - SporbProjectile - - Sporb.rel - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Sporb.rel + + + SporbProjectile + + + + + + + PART + + + + + PART + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/SporbTop.xml b/templates/mp2/Script/SporbTop.xml index 029e6d75..4db3310b 100644 --- a/templates/mp2/Script/SporbTop.xml +++ b/templates/mp2/Script/SporbTop.xml @@ -1,31 +1,27 @@ - - SporbTop - - Sporb.rel - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Sporb.rel + + + SporbTop + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/Steam.xml b/templates/mp2/Script/Steam.xml index 2cbb25c8..fc8b56f8 100644 --- a/templates/mp2/Script/Steam.xml +++ b/templates/mp2/Script/Steam.xml @@ -1,39 +1,39 @@ - - Steam - - - - - - 0.35 - - - 1.0 - - - 2.0 - - - 0.0 - - - false - - - - - - - - - - - - - - enabled - volume - - - + + + Steam + + + + + + TXTR + + + + 0.34999999 + + + 1.0 + + + 2.0 + + + 0.0 + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + BoxShape + diff --git a/templates/mp2/Script/StoneToad.xml b/templates/mp2/Script/StoneToad.xml index 1c541e00..0b1532ca 100644 --- a/templates/mp2/Script/StoneToad.xml +++ b/templates/mp2/Script/StoneToad.xml @@ -1,37 +1,33 @@ - - StoneToad - - StoneToad.rel - - - - - - - 1 - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + StoneToad.rel + + + StoneToad + + + + + + 1 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/StreamedAudio.xml b/templates/mp2/Script/StreamedAudio.xml index 81a380de..04eaccc3 100644 --- a/templates/mp2/Script/StreamedAudio.xml +++ b/templates/mp2/Script/StreamedAudio.xml @@ -1,43 +1,39 @@ - - StreamedAudio - - - - - false - - - 0.25 - - - 0.25 - - - 127 - - - 0 - - - true - - - - - - - - - - - - - - script/common/StreamedAudio.TXTR - - 0.5 - enabled - enabled - - + + + StreamedAudio + + + + + false + + + 0.25 + + + 0.25 + + + 127 + + + 0x0 + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/StreamedMovie.xml b/templates/mp2/Script/StreamedMovie.xml index 86c41416..41a7c882 100644 --- a/templates/mp2/Script/StreamedMovie.xml +++ b/templates/mp2/Script/StreamedMovie.xml @@ -1,49 +1,45 @@ - - StreamedMovie - - ScriptStreamedMovie.rel - - - - - - false - - - true - - - 0 - - - 127 - - - 0 - - - 0.05 - - - 1.0 - - - - - - - - - - - - - - script/common/StreamedMovie.TXTR - - 0.5 - enabled - enabled - - + + + ScriptStreamedMovie.rel + + + StreamedMovie + + + + + false + + + true + + + 0 + + + 127 + + + 0 + + + 0.050000001 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/Subtitle.xml b/templates/mp2/Script/Subtitle.xml index ea9c7b38..f2ff2b3f 100644 --- a/templates/mp2/Script/Subtitle.xml +++ b/templates/mp2/Script/Subtitle.xml @@ -1,67 +1,57 @@ - - Subtitle - - - - - 0 - - - 0 - - - - Trilogy - - - - 640 - - - 448 - - - 1 - - - - - - Trilogy - - 0 - - - - Trilogy - - 100 - - - - 0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Subtitle + + + + + 0 + + + 0 + + + + + 640 + + + 448 + + + 1 + + + + + 0 + + + 100 + + + + STRG + + + + 0 + + + 0.0 + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/SurfaceCamera.xml b/templates/mp2/Script/SurfaceCamera.xml index 135afe42..51be47b0 100644 --- a/templates/mp2/Script/SurfaceCamera.xml +++ b/templates/mp2/Script/SurfaceCamera.xml @@ -1,41 +1,40 @@ - - SurfaceCamera - - - - 2 - - - 1 - - - - 0.0, 0.0, 0.0 - - - - false - - - - false - - - - - - - - - - - - - - - - enabled - enabled - - + + + SurfaceCamera + + + + 2 + + + 1 + + + + + 0.0 + 0.0 + 0.0 + + + + + false + + + + false + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/mp2/Script/SwampBossStage1.xml b/templates/mp2/Script/SwampBossStage1.xml index ec9e38a0..ac27d5e6 100644 --- a/templates/mp2/Script/SwampBossStage1.xml +++ b/templates/mp2/Script/SwampBossStage1.xml @@ -1,129 +1,54 @@ - - SwampBossStage1 - - SwampBossStage1.rel - - - - - - - never - - - never - - - never - - - never - - - never - - - never - - - 2 - - - - - - - - - 3.0 - - - 6.0 - - - - - - - - - - 50.0 - - - 5.0 - - - 15.0 - - - 180.0 - - - 100.0 - - - - 2.0 - - - - - - 0x0000000B - - - 5.0 - - - - - - - 2.0 - - - - - - - - - - - - 10.0 - - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0xB01A28D5:0xD8AB76F0 - 0xB01A28D5:0x145DEBEA - - enabled - enabled - - + + + SwampBossStage1.rel + + + SwampBossStage1 + + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + 2 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + diff --git a/templates/mp2/Script/SwampBossStage2.xml b/templates/mp2/Script/SwampBossStage2.xml index 51594530..2d3a256b 100644 --- a/templates/mp2/Script/SwampBossStage2.xml +++ b/templates/mp2/Script/SwampBossStage2.xml @@ -1,253 +1,92 @@ - - SwampBossStage2 - - SwampBossStage2.rel - - - - - - - 25.0 - - - 720.0 - - - 5.0 - - - 5.0 - - - 90.0 - - - 4.0 - - - 20.0 - - - - - 0x00000009 - - - 10.0 - - - 5.0 - - - - - 1.0 - - - 0.5 - - - 1.5 - - - 0.0 - - - 2 - - - - - - - - - 10.0 - - - - - - - 1.0 - - - - - - - 30.0 - - - 2 - - - - - - 0x0000000B - - - 5.0 - - - - - - - 2.0 - - - - - 0x0000000B - - - 0.5 - - - - - 10.0 - - - 0.2 - - - - 100.0 - - - 2.0 - - - 100.0 - - - 100.0 - - - 30.0 - - - 30.0 - - - 40.0 - - - 50.0 - - - 50.0 - - - - 2.0 - - - 0.4 - - - - - - - - - 20.0 - - - 180.0 - - - - 5.0 - - - 0.0, 1.0, 5.0 - - - - - - - - 0x0000000B - - - 0.5 - - - - - 0.1 - - - 5.0 - - - 30.0 - - - - - - - 15.0 - - - - 0.8 - - - - - 4.0 - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0xE61748ED:0xAD54DA11 - 0xB31B771D:0x11A273CB - 0xB31B771D:0x8A3331DD - 0xB31B771D:0x26439458 - 0xB31B771D:0xBDD2D64E - - - - follow - - - follow - - - follow - - - follow - - - enabled - enabled - - + + + SwampBossStage2.rel + + + SwampBossStage2 + + + + + + 25.0 + + + 720.0 + + + 5.0 + + + 5.0 + + + 90.0 + + + 4.0 + + + 20.0 + + + + + 0x9 + + + 10.0 + + + 5.0 + + + + + 1.0 + + + 0.5 + + + 1.5 + + + 0.0 + + + 2 + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + + + + + + + + diff --git a/templates/mp2/Script/Switch.xml b/templates/mp2/Script/Switch.xml index aa0218e4..95ee9f36 100644 --- a/templates/mp2/Script/Switch.xml +++ b/templates/mp2/Script/Switch.xml @@ -1,28 +1,23 @@ - - Switch - - - - false - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Switch + + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/TargetingPoint.xml b/templates/mp2/Script/TargetingPoint.xml index d2b3e6f4..aee849c3 100644 --- a/templates/mp2/Script/TargetingPoint.xml +++ b/templates/mp2/Script/TargetingPoint.xml @@ -1,28 +1,23 @@ - - TargetingPoint - - - - - false - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + TargetingPoint + + + + + false + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/TeamAI.xml b/templates/mp2/Script/TeamAI.xml index f2f8e5d7..d7907597 100644 --- a/templates/mp2/Script/TeamAI.xml +++ b/templates/mp2/Script/TeamAI.xml @@ -1,49 +1,44 @@ - - TeamAI - - - - 20 - - - 2 - - - 2 - - - 30 - - - 1 - - - 1 - - - 0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + TeamAI + + + + 20 + + + 2 + + + 2 + + + 30 + + + 1 + + + 1 + + + 0 + + + 0.0 + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/TextPane.xml b/templates/mp2/Script/TextPane.xml index 81ebb06b..0fdcab40 100644 --- a/templates/mp2/Script/TextPane.xml +++ b/templates/mp2/Script/TextPane.xml @@ -1,69 +1,69 @@ - - TextPane - - - - - - - 80 - - - 10 - - - - - - Trilogy - - - - 80 - - - 10 - - - - - 0.0, 0.0, 0.0 - - - - - 1 - - - 0.25 - - - 0.25 - - - true - - - true - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + TextPane + + + + + + + 80 + + + 10 + + + + + + + 80 + + + 10 + + + + + + 0.0 + 0.0 + 0.0 + + + + + STRG + + + + + 1 + + + 0.25 + + + 0.25 + + + true + + + true + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/TimeKeyframe.xml b/templates/mp2/Script/TimeKeyframe.xml index 43121e91..5e6cf88a 100644 --- a/templates/mp2/Script/TimeKeyframe.xml +++ b/templates/mp2/Script/TimeKeyframe.xml @@ -1,25 +1,20 @@ - - TimeKeyframe - - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + TimeKeyframe + + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/Timer.xml b/templates/mp2/Script/Timer.xml index 94bc450e..c903521d 100644 --- a/templates/mp2/Script/Timer.xml +++ b/templates/mp2/Script/Timer.xml @@ -1,39 +1,35 @@ - - Timer - - - - 5.0 - - - 0.0 - A random value between this number and 0 will be added to the timer's start time. - - - false - If enabled, when the timer reaches 0, it will reset back to its start time. If Auto-Start is also enabled, it will begin ticking again. - - - false - If enabled, the timer will start ticking automatically on load. Otherwise, it will need to be started with a script message. - - - - - - - - - - - - - - script/common/Timer.TXTR - - 0.5 - enabled - enabled - - + + + Timer + + + + 5.0 + + + A random value between this number and 0 will be added to the timer's start time. + 0.0 + + + If enabled, when the timer reaches 0, it will reset back to its start time. If Auto-Start is also enabled, it will begin ticking again. + false + + + If enabled, the timer will start ticking automatically on load. Otherwise, it will need to be started with a script message. + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/Trigger.xml b/templates/mp2/Script/Trigger.xml index 01e51851..cad793dd 100644 --- a/templates/mp2/Script/Trigger.xml +++ b/templates/mp2/Script/Trigger.xml @@ -1,31 +1,28 @@ - - Trigger - - - - - false - - - false - - - - - - - - - - - - - - script/common/Trigger.TXTR - - enabled - volume - - - + + + Trigger + + + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + ScaleVolume + AxisAlignedBoxShape + diff --git a/templates/mp2/Script/TriggerEllipsoid.xml b/templates/mp2/Script/TriggerEllipsoid.xml index 0a1f58ad..fa69b897 100644 --- a/templates/mp2/Script/TriggerEllipsoid.xml +++ b/templates/mp2/Script/TriggerEllipsoid.xml @@ -1,29 +1,25 @@ - - TriggerEllipsoid - - - - - false - - - false - - - - - - - - - - - - - - enabled - volume - - - + + + TriggerEllipsoid + + + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + EllipsoidShape + diff --git a/templates/mp2/Script/TriggerOrientated.xml b/templates/mp2/Script/TriggerOrientated.xml index db2d8a57..9752871b 100644 --- a/templates/mp2/Script/TriggerOrientated.xml +++ b/templates/mp2/Script/TriggerOrientated.xml @@ -1,29 +1,25 @@ - - TriggerOrientated - - - - - false - - - false - - - - - - - - - - - - - - enabled - volume - - - + + + TriggerOrientated + + + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + BoxShape + diff --git a/templates/mp2/Script/Tryclops.xml b/templates/mp2/Script/Tryclops.xml index 209e5c78..814429eb 100644 --- a/templates/mp2/Script/Tryclops.xml +++ b/templates/mp2/Script/Tryclops.xml @@ -1,68 +1,64 @@ - - Tryclops - - Tryclops.rel - - - - - - - 0.0 - - - 10.0 - - - - - 5.0 - - - 1.0 - - - - - 0.6 - - - 1.0 - - - - - - 20.0 - - - 45.0 - - - 4.0 - - - 20.0 - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Tryclops.rel + + + Tryclops + + + + + + 0.0 + + + 10.0 + + + + + 5.0 + + + 1.0 + + + + + 0.60000002 + + + 1.0 + + + + + + 20.0 + + + 45.0 + + + 4.0 + + + 20.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/VisorFlare.xml b/templates/mp2/Script/VisorFlare.xml index 632b163b..170f16ff 100644 --- a/templates/mp2/Script/VisorFlare.xml +++ b/templates/mp2/Script/VisorFlare.xml @@ -1,95 +1,91 @@ - - VisorFlare - - - - 0 - - - true - - - 0.1 - - - 1.0 - - - 2.0 - - - 0 - - - true - - - false - - - - - 1.0 - - - - - - - 0.25 - - - 1.0 - - - - - - - 0.5 - - - 1.0 - - - - - - - 0.75 - - - 1.0 - - - - - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - - - script/common/VisorFlare.TXTR - - 0.5 - enabled - enabled - - + + + VisorFlare + + + + 0 + + + true + + + 0.1 + + + 1.0 + + + 2.0 + + + 0 + + + true + + + false + + + + + 1.0 + + + + + + + 0.25 + + + 1.0 + + + + + + + 0.5 + + + 1.0 + + + + + + + 0.75 + + + 1.0 + + + + + + + 1.0 + + + 1.0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/VisorGoo.xml b/templates/mp2/Script/VisorGoo.xml index 63fd2a18..c21f0311 100644 --- a/templates/mp2/Script/VisorGoo.xml +++ b/templates/mp2/Script/VisorGoo.xml @@ -1,53 +1,61 @@ - - VisorGoo - - - - - - 1.0 - - - 8.0 - - - 40.0 - - - 20.0 - - - 1.0, 1.0, 1.0, 1.0 - - - -1 - - - false - - - false - - - true - - - - - - - - - - - - - - script/common/VisorGoo.TXTR - - 0.5 - enabled - enabled - - + + + VisorGoo + + + + + PART + + + + + ELSC + + + + 1.0 + + + 8.0 + + + 40.0 + + + 20.0 + + + + 1.0 + 1.0 + 1.0 + + + + -1 + + + false + + + false + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2/Script/WallWalker.xml b/templates/mp2/Script/WallWalker.xml index 49522078..15959f19 100644 --- a/templates/mp2/Script/WallWalker.xml +++ b/templates/mp2/Script/WallWalker.xml @@ -1,76 +1,96 @@ - - WallWalker - - WallCrawler.rel - WallWalker.rel - - - - - - - 1 - - - - - - - 2.5 - - - 1080.0 - - - 0.4 - - - 40.0 - - - - - - - 4.0 - - - 0.5 - - - 5 - - - - - 2.0 - - - 5.0 - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + WallCrawler.rel + WallWalker.rel + + + WallWalker + + + + + + 1 + + + + + + + 2.5 + + + 1080.0 + + + 0.40000001 + + + 40.0 + + + + + PART + + + + + PART + + + + + PART + + + + 4.0 + + + 0.5 + + + 5 + + + 0 + + + 0 + + + 2.0 + + + 5.0 + + + + WPSC + + + + + + PART + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/Water.xml b/templates/mp2/Script/Water.xml index ca1c7392..6132ec66 100644 --- a/templates/mp2/Script/Water.xml +++ b/templates/mp2/Script/Water.xml @@ -1,238 +1,306 @@ - - Water - - - - - 0.0 - - - 0.0 - - - 5.0 - - - 5.0 - - - 0 - - - - - - - - 1.0 - - - - -1 - - - -1 - - - 0.0, 0.0, 0.498039, 1.0 - - - 0.6 - - - 0.2 - - - 1.0 - - - 1.0 - - - 0.0 - - - - - 0 - - - 5.0 - - - 0.15 - - - 10.0 - - - - - - - 0 - - - 5.0 - - - 0.15 - - - 10.0 - - - - - - - 0 - - - 5.0 - - - 0.15 - - - 10.0 - - - - - - - 0 - - - 5.0 - - - 0.15 - - - 10.0 - - - - - - - 0 - - - 5.0 - - - 0.15 - - - 10.0 - - - - - 10.0 - - - 0.0 - - - 0.0, 0.498039, 1.0, 1.0 - - - 1.0, 1.0, 1.0, 1.0 - - - - - - - - - -1 - - - - - - 1.0, 1.0, 1.0, 1.0 - - - 0.0 - - - 0.0 - - - 1.0 - - - 30.0 - - - 125.0 - - - 150.0 - - - 300.0 - - - 0.5 - - - true - - - true - - - 1.0 - - - 1.0 - - - 0.3 - - - 1.0 - - - 1.0 - - - 0.0 - - - 0.0 - - - false - - - true - - - 300 - - - - - - - - - - - - - - enabled - volume - - - + + + Water + + + + + 0.0 + + + 0.0 + + + 5.0 + + + 5.0 + + + 0 + + + + TXTR + + + + + TXTR + + + + + TXTR + + + + + TXTR + + + + + TXTR + + + + 1.0 + + + + TXTR + + + + + TXTR + + + + + TXTR + + + + + 0.0 + 0.0 + 0.49803901 + + + + 0.60000002 + + + 0.2 + + + 1.0 + + + 1.0 + + + 0.0 + + + + + 0 + + + 5.0 + + + 0.15000001 + + + 10.0 + + + + + + + 0 + + + 5.0 + + + 0.15000001 + + + 10.0 + + + + + + + 0 + + + 5.0 + + + 0.15000001 + + + 10.0 + + + + + + + 0 + + + 5.0 + + + 0.15000001 + + + 10.0 + + + + + + + 0 + + + 5.0 + + + 0.15000001 + + + 10.0 + + + + + 10.0 + + + 0.0 + + + + 0.0 + 0.49803901 + 1.0 + + + + + 1.0 + 1.0 + 1.0 + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + 0 + + + -1 + + + 0 + + + 0 + + + 0 + + + + 1.0 + 1.0 + 1.0 + + + + 0.0 + + + 0.0 + + + 1.0 + + + 30.0 + + + 125.0 + + + 150.0 + + + 300.0 + + + 0.5 + + + true + + + true + + + 1.0 + + + 1.0 + + + 0.30000001 + + + 1.0 + + + 1.0 + + + 0.0 + + + 0.0 + + + false + + + true + + + 300 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + BoxShape + diff --git a/templates/mp2/Script/Waypoint.xml b/templates/mp2/Script/Waypoint.xml index fa695e25..74ebc834 100644 --- a/templates/mp2/Script/Waypoint.xml +++ b/templates/mp2/Script/Waypoint.xml @@ -1,23 +1,19 @@ - - Waypoint - - - - - - - - - - - - - - - script/common/Waypoint.CMDL - - enabled - enabled - - + + + Waypoint + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/mp2/Script/WispTentacle.xml b/templates/mp2/Script/WispTentacle.xml index ae0f6842..193f1d84 100644 --- a/templates/mp2/Script/WispTentacle.xml +++ b/templates/mp2/Script/WispTentacle.xml @@ -1,62 +1,58 @@ - - WispTentacle - - WispTentacle.rel - - - - - 30.0 - - - 20.0 - - - 10.0 - - - 0.0 - - - - - 0x00000009 - - - 5.0 - - - - - false - - - 2.0 - - - 0.2 - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + WispTentacle.rel + + + WispTentacle + + + + 30.0 + + + 20.0 + + + 10.0 + + + 0.0 + + + + + 0x9 + + + 5.0 + + + + + false + + + 2.0 + + + 0.2 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2/Script/WorldLightFader.xml b/templates/mp2/Script/WorldLightFader.xml index fb13041e..12eb6e94 100644 --- a/templates/mp2/Script/WorldLightFader.xml +++ b/templates/mp2/Script/WorldLightFader.xml @@ -1,28 +1,23 @@ - - WorldLightFader - - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + WorldLightFader + + + + 1.0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Script/WorldTeleporter.xml b/templates/mp2/Script/WorldTeleporter.xml index 8a6a7b88..ef9361b1 100644 --- a/templates/mp2/Script/WorldTeleporter.xml +++ b/templates/mp2/Script/WorldTeleporter.xml @@ -1,80 +1,117 @@ - - WorldTeleporter - - - - - - - 1.0, 1.0, 1.0 - - - - 1.0, 1.0, 1.0 - - - - 1.0, 1.0, 1.0 - - - true - - - - - 127 - - - 64 - - - false - - - - - false - - - 0.01 - - - 8.0 - - - 0.0 - - - - false - - - 0.0 - - - 2.0 - - - 3.0 - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + WorldTeleporter + + + + + MLVL + + + + + MREA + + + + + + 1.0 + 1.0 + 1.0 + + + + + CMDL + + + + + 1.0 + 1.0 + 1.0 + + + + + CMDL + + + + + 1.0 + 1.0 + 1.0 + + + + true + + + + AGSC + + + + 0 + + + 127 + + + 64 + + + false + + + + FONT + + + + + STRG + + + + false + + + 0.0099999998 + + + 8.0 + + + 0.0 + + + + false + + + 0.0 + + + 2.0 + + + 3.0 + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2/Structs/ActorParameters.xml b/templates/mp2/Structs/ActorParameters.xml index 1ddba8c8..9f230f08 100644 --- a/templates/mp2/Structs/ActorParameters.xml +++ b/templates/mp2/Structs/ActorParameters.xml @@ -1,42 +1,61 @@ - - - - - - - - - - true - - - 1.0 - - - 1.0 - - - - false - - - false - - - true - - - false - - - false - - - 127 - - - 127 - - - + + + ActorParameters + + + + + + CMDL + + + + + CSKR + + + + + CMDL + + + + + CSKR + + + + true + + + 1.0 + + + 1.0 + + + + false + + + false + + + true + + + false + + + false + + + 127 + + + 127 + + + + diff --git a/templates/mp2/Structs/AudioPlaybackParms.xml b/templates/mp2/Structs/AudioPlaybackParms.xml index 4a12879a..5b2fc4ee 100644 --- a/templates/mp2/Structs/AudioPlaybackParms.xml +++ b/templates/mp2/Structs/AudioPlaybackParms.xml @@ -1,21 +1,26 @@ - - - - 100.0 - - - 0.1 - - - - 127 - - - 0 - - - true - - - + + + AudioPlaybackParms + + + 100.0 + + + 0.1 + + + 0 + + + 127 + + + 0 + + + true + + + + diff --git a/templates/mp2/Structs/BasicSwarmProperties.xml b/templates/mp2/Structs/BasicSwarmProperties.xml index a17149e7..8ee594a7 100644 --- a/templates/mp2/Structs/BasicSwarmProperties.xml +++ b/templates/mp2/Structs/BasicSwarmProperties.xml @@ -1,127 +1,136 @@ - - - - - - 0x0000000B - - - 5.0 - - - 5.0 - - - - - 1.0 - - - 0.3 - - - 0.7 - - - 0.0 - - - 3.0 - - - 50 - - - 0 - - - 2.5 - - - 1.0 - - - 0.7 - - - 0.4 - - - 0.7 - - - 0.7 - - - 10.0 - - - 6.0 - - - 5 - - - 0.0 - - - 0.0 - - - - - 2.0 - - - 2.0 - - - - - - - 5 - - - 1.0 - - - 90.0 - - - false - - - false - - - true - - - false - - - - -1 - - - 0.0 - - - 100.0 - - - 20 - - - 127 - - - 5.0 - - - 100.0 - - - + + + BasicSwarmProperties + + + + + 0xB + + + 5.0 + + + 5.0 + + + + + 1.0 + + + 0.30000001 + + + 0.69999999 + + + 0.0 + + + 3.0 + + + 50 + + + 0 + + + 2.5 + + + 1.0 + + + 0.69999999 + + + 0.40000001 + + + 0.69999999 + + + 0.69999999 + + + 10.0 + + + 6.0 + + + 5 + + + 0.0 + + + 0.0 + + + + + 2.0 + + + 2.0 + + + + + + + PART + + + + 5 + + + 1.0 + + + 90.0 + + + false + + + false + + + true + + + false + + + 0 + + + -1 + + + 0.0 + + + 100.0 + + + 20 + + + 127 + + + 5.0 + + + 100.0 + + + + diff --git a/templates/mp2/Structs/BehaveChance.xml b/templates/mp2/Structs/BehaveChance.xml index 1fa3eecf..6ea1d300 100644 --- a/templates/mp2/Structs/BehaveChance.xml +++ b/templates/mp2/Structs/BehaveChance.xml @@ -1,26 +1,29 @@ - - - - -0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0 - - - + + + BehaveChance + + + -0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0 + + + + diff --git a/templates/mp2/Structs/BloggStruct.xml b/templates/mp2/Structs/BloggStruct.xml index c93500a3..16b4fcd2 100644 --- a/templates/mp2/Structs/BloggStruct.xml +++ b/templates/mp2/Structs/BloggStruct.xml @@ -1,20 +1,23 @@ - - - - -2143184152 - - - 0 - - - 0.0 - - - 0.0 - - - 0.0 - - - + + + BloggStruct + + + -2143184152 + + + 0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + diff --git a/templates/mp2/Structs/CameraHintStructA.xml b/templates/mp2/Structs/CameraHintStructA.xml index 0d02c5f0..cdecd468 100644 --- a/templates/mp2/Structs/CameraHintStructA.xml +++ b/templates/mp2/Structs/CameraHintStructA.xml @@ -1,8 +1,11 @@ - - - - 0 - - - + + + CameraHintStructA + + + 0 + + + + diff --git a/templates/mp2/Structs/CameraHintStructB.xml b/templates/mp2/Structs/CameraHintStructB.xml index 506bee90..eb7106d9 100644 --- a/templates/mp2/Structs/CameraHintStructB.xml +++ b/templates/mp2/Structs/CameraHintStructB.xml @@ -1,11 +1,14 @@ - - - - false - - - 8.0 - - - + + + CameraHintStructB + + + false + + + 8.0 + + + + diff --git a/templates/mp2/Structs/CameraHintStructC.xml b/templates/mp2/Structs/CameraHintStructC.xml index ab8edfa4..0f699145 100644 --- a/templates/mp2/Structs/CameraHintStructC.xml +++ b/templates/mp2/Structs/CameraHintStructC.xml @@ -1,11 +1,14 @@ - - - - false - - - 90.0 - - - + + + CameraHintStructC + + + false + + + 90.0 + + + + diff --git a/templates/mp2/Structs/CameraShakerData.xml b/templates/mp2/Structs/CameraShakerData.xml index 4a3d1bd5..39d36c94 100644 --- a/templates/mp2/Structs/CameraShakerData.xml +++ b/templates/mp2/Structs/CameraShakerData.xml @@ -1,18 +1,23 @@ - - - - 16 - - - 5.0 - - - - - - 1.0 - - - - + + + CameraShakerData + + + 16 + + + 5.0 + + + + + + 1.0 + + + 0 + + + + diff --git a/templates/mp2/Structs/ConditionalTest.xml b/templates/mp2/Structs/ConditionalTest.xml index 120b4ab8..5c45f966 100644 --- a/templates/mp2/Structs/ConditionalTest.xml +++ b/templates/mp2/Structs/ConditionalTest.xml @@ -1,38 +1,39 @@ - - - - 0x00000001 - - - - - - - - 0x00000000 - - - 0x00000000 - - - - - - - 0x00000000 - - - - - - - - - - - - 0 - - - + + + ConditionalTest + + + 0x1 + + + + + + + + + 0x0 + + + + + + + 0x0 + + + + + + + + + + + + 0 + + + + diff --git a/templates/mp2/Structs/ControlHintStruct.xml b/templates/mp2/Structs/ControlHintStruct.xml index ce1f5d18..416ff6ec 100644 --- a/templates/mp2/Structs/ControlHintStruct.xml +++ b/templates/mp2/Structs/ControlHintStruct.xml @@ -1,15 +1,18 @@ - - - - - - -2143184152 - - - - - 0 - - - + + + ControlHintStruct + + + + + -2143184152 + + + + + 0 + + + + diff --git a/templates/mp2/Structs/ControllerActionStruct.xml b/templates/mp2/Structs/ControllerActionStruct.xml index 321132a9..a1c4418a 100644 --- a/templates/mp2/Structs/ControllerActionStruct.xml +++ b/templates/mp2/Structs/ControllerActionStruct.xml @@ -1,8 +1,11 @@ - - - - 0 - - - + + + ControllerActionStruct + + + 0 + + + + diff --git a/templates/mp2/Structs/DamageInfo.xml b/templates/mp2/Structs/DamageInfo.xml index 45b2dcc1..6867bff5 100644 --- a/templates/mp2/Structs/DamageInfo.xml +++ b/templates/mp2/Structs/DamageInfo.xml @@ -1,17 +1,18 @@ - - - - 0x00000000 - - - 0.0 - - - 0.0 - - - 0.0 - - - + + + DamageInfo + + + + 0.0 + + + 0.0 + + + 0.0 + + + + diff --git a/templates/mp2/Structs/DamageVulnerability.xml b/templates/mp2/Structs/DamageVulnerability.xml index 50a9e88c..5226d497 100644 --- a/templates/mp2/Structs/DamageVulnerability.xml +++ b/templates/mp2/Structs/DamageVulnerability.xml @@ -1,118 +1,121 @@ - - - - - - - 0.0 - - - - - - - 0.0 - - - - - - - 0.0 - - - - - - - - 0.0 - - - - - - - - - - - - 0.0 - - - - - - - 0.0 - - - - - - - 0.0 - - - - - - - 0.0 - - - - - - - 0.0 - - - - - - - 0.0 - - - - - - - 0.0 - - - - - - - 0.0 - - - - - - - - - - - - - - - 0.0 - - - - - - - 0.0 - - - - - + + + DamageVulnerability + + + + + + 0.0 + + + + + + + 0.0 + + + + + + + 0.0 + + + + + + + + 0.0 + + + + + + + + + + + + 0.0 + + + + + + + 0.0 + + + + + + + 0.0 + + + + + + + 0.0 + + + + + + + 0.0 + + + + + + + 0.0 + + + + + + + 0.0 + + + + + + + 0.0 + + + + + + + + + + + + + + + 0.0 + + + + + + + 0.0 + + + + + + diff --git a/templates/mp2/Structs/DigitalGuardianHeadStruct.xml b/templates/mp2/Structs/DigitalGuardianHeadStruct.xml index 8aa7e4dd..cc957a84 100644 --- a/templates/mp2/Structs/DigitalGuardianHeadStruct.xml +++ b/templates/mp2/Structs/DigitalGuardianHeadStruct.xml @@ -1,26 +1,29 @@ - - - - 4 - - - 1.25 - - - 2.0 - - - 25.0 - - - 25.0 - - - 25.0 - - - 25.0 - - - + + + DigitalGuardianHeadStruct + + + 4 + + + 1.25 + + + 2.0 + + + 25.0 + + + 25.0 + + + 25.0 + + + 25.0 + + + + diff --git a/templates/mp2/Structs/EchoParameters.xml b/templates/mp2/Structs/EchoParameters.xml index f7878b81..f792fe05 100644 --- a/templates/mp2/Structs/EchoParameters.xml +++ b/templates/mp2/Structs/EchoParameters.xml @@ -1,23 +1,26 @@ - - - - false - - - false - - - 3 - - - 0.2 - - - 4.0 - - - 0.5 - - - + + + EchoParameters + + + false + + + false + + + 3 + + + 0.2 + + + 4.0 + + + 0.5 + + + + diff --git a/templates/mp2/Structs/EditorProperties.xml b/templates/mp2/Structs/EditorProperties.xml index 86beaae2..cf28408a 100644 --- a/templates/mp2/Structs/EditorProperties.xml +++ b/templates/mp2/Structs/EditorProperties.xml @@ -1,13 +1,16 @@ - - - - - - true - - - 3 - - - + + + EditorProperties + + + + + true + + + 3 + + + + diff --git a/templates/mp2/Structs/EmperorIngStage3StructA.xml b/templates/mp2/Structs/EmperorIngStage3StructA.xml index 18330342..a7a4217b 100644 --- a/templates/mp2/Structs/EmperorIngStage3StructA.xml +++ b/templates/mp2/Structs/EmperorIngStage3StructA.xml @@ -1,35 +1,50 @@ - - - - - - 500.0 - - - 4.0 - - - 1.0 - - - 20.0 - - - 0.25 - - - 2.0 - - - 0.498039, 0.498039, 0.498039, 0.498039 - - - 0.6, 0.6, 0.0, 0.498039 - - - - - - - + + + EmperorIngStage3StructA + + + + + 500.0 + + + 4.0 + + + 1.0 + + + 20.0 + + + 0.25 + + + 2.0 + + + + 0.49803901 + 0.49803901 + 0.49803901 + 0.49803901 + + + + + 0.60000002 + 0.60000002 + 0.0 + 0.49803901 + + + + + + + 0 + + + + diff --git a/templates/mp2/Structs/EmperorIngStage3StructB.xml b/templates/mp2/Structs/EmperorIngStage3StructB.xml index 3f859c0c..a3f0080e 100644 --- a/templates/mp2/Structs/EmperorIngStage3StructB.xml +++ b/templates/mp2/Structs/EmperorIngStage3StructB.xml @@ -1,22 +1,25 @@ - - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - - - - - + + + EmperorIngStage3StructB + + + 0.0 + + + 0.0 + + + 0.0 + + + + + + + + + + + + diff --git a/templates/mp2/Structs/FlareDef.xml b/templates/mp2/Structs/FlareDef.xml index af23cf79..a40e04e0 100644 --- a/templates/mp2/Structs/FlareDef.xml +++ b/templates/mp2/Structs/FlareDef.xml @@ -1,15 +1,26 @@ - - - - - 0.0 - - - 0.0 - - - 1.0, 1.0, 1.0, 1.0 - - - + + + FlareDef + + + + TXTR + + + + 0.0 + + + 0.0 + + + + 1.0 + 1.0 + 1.0 + + + + + diff --git a/templates/mp2/Structs/GrappleParameters.xml b/templates/mp2/Structs/GrappleParameters.xml index 3c9cb645..9468b3cd 100644 --- a/templates/mp2/Structs/GrappleParameters.xml +++ b/templates/mp2/Structs/GrappleParameters.xml @@ -1,41 +1,44 @@ - - - - 10.0 - - - 10.0 - - - 1.0 - - - 1.0 - - - 1.0 - - - 1.0 - - - 1.0 - - - 45.0 - - - 90.0 - - - 0.0 - - - 0.0 - - - false - - - + + + GrappleParameters + + + 10.0 + + + 10.0 + + + 1.0 + + + 1.0 + + + 1.0 + + + 1.0 + + + 1.0 + + + 45.0 + + + 90.0 + + + 0.0 + + + 0.0 + + + false + + + + diff --git a/templates/mp2/Structs/GuiWidgetProperties.xml b/templates/mp2/Structs/GuiWidgetProperties.xml index 1afad396..ceed3e30 100644 --- a/templates/mp2/Structs/GuiWidgetProperties.xml +++ b/templates/mp2/Structs/GuiWidgetProperties.xml @@ -1,12 +1,15 @@ - - - - - 1 - - - false - - - + + + GuiWidgetProperties + + + + 1 + + + false + + + + diff --git a/templates/mp2/Structs/HealthInfo.xml b/templates/mp2/Structs/HealthInfo.xml index 46c7fa61..c696dbb0 100644 --- a/templates/mp2/Structs/HealthInfo.xml +++ b/templates/mp2/Structs/HealthInfo.xml @@ -1,11 +1,14 @@ - - - - 5.0 - - - 1.0 - - - + + + HealthInfo + + + 5.0 + + + 1.0 + + + + diff --git a/templates/mp2/Structs/IngBoostBallGuardianStruct.xml b/templates/mp2/Structs/IngBoostBallGuardianStruct.xml index 4b00823a..41589ca6 100644 --- a/templates/mp2/Structs/IngBoostBallGuardianStruct.xml +++ b/templates/mp2/Structs/IngBoostBallGuardianStruct.xml @@ -1,47 +1,50 @@ - - - - 1.8 - - - 1.8 - - - 1.8 - - - 150.0 - - - 0.5 - - - 0.0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0.0 - - - 0.0 - - - + + + IngBoostBallGuardianStruct + + + 1.8 + + + 1.8 + + + 1.8 + + + 150.0 + + + 0.5 + + + 0.0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0.0 + + + 0.0 + + + + diff --git a/templates/mp2/Structs/IngPossessionData.xml b/templates/mp2/Structs/IngPossessionData.xml index 1b592731..bd98c3a1 100644 --- a/templates/mp2/Structs/IngPossessionData.xml +++ b/templates/mp2/Structs/IngPossessionData.xml @@ -1,31 +1,46 @@ - - - - false - - - true - - - - - - - - 150.0 - - - 2.0 - - - - - 2.0 - - - -1 - - - - + + + IngPossessionData + + + false + + + true + + + + CMDL + + + + + CSKR + + + + + SCAN + + + + + + 150.0 + + + 2.0 + + + + + 2.0 + + + -1 + + + + + diff --git a/templates/mp2/Structs/IngSpaceJumpGuardianStruct.xml b/templates/mp2/Structs/IngSpaceJumpGuardianStruct.xml index b9e5cdb4..9d4687b5 100644 --- a/templates/mp2/Structs/IngSpaceJumpGuardianStruct.xml +++ b/templates/mp2/Structs/IngSpaceJumpGuardianStruct.xml @@ -1,20 +1,23 @@ - - - - 10.0 - - - 90.0 - - - 33.299999 - - - 1.0 - - - 1500.0 - - - + + + IngSpaceJumpGuardianStruct + + + 10.0 + + + 90.0 + + + 33.299999 + + + 1.0 + + + 1500.0 + + + + diff --git a/templates/mp2/Structs/IngSpiderballGuardianStruct.xml b/templates/mp2/Structs/IngSpiderballGuardianStruct.xml index 84255b5c..4ea5d6f1 100644 --- a/templates/mp2/Structs/IngSpiderballGuardianStruct.xml +++ b/templates/mp2/Structs/IngSpiderballGuardianStruct.xml @@ -1,29 +1,32 @@ - - - - 5.0 - - - 10.0 - - - 7.0 - - - 720.0 - - - 40.0 - - - 2.0 - - - 25.0 - - - 15.0 - - - + + + IngSpiderballGuardianStruct + + + 5.0 + + + 10.0 + + + 7.0 + + + 720.0 + + + 40.0 + + + 2.0 + + + 25.0 + + + 15.0 + + + + diff --git a/templates/mp2/Structs/LayerSwitch.xml b/templates/mp2/Structs/LayerSwitch.xml index 56237535..61c5cab6 100644 --- a/templates/mp2/Structs/LayerSwitch.xml +++ b/templates/mp2/Structs/LayerSwitch.xml @@ -1,9 +1,16 @@ - - - - - 0 - - - + + + LayerSwitch + true + + + Area ID + + + Layer # + 0 + + + + diff --git a/templates/mp2/Structs/LightParameters.xml b/templates/mp2/Structs/LightParameters.xml index 13ff5d33..f75f3033 100644 --- a/templates/mp2/Structs/LightParameters.xml +++ b/templates/mp2/Structs/LightParameters.xml @@ -1,56 +1,67 @@ - - - - true - - - 1.0 - - - 0 - - - 1.0 - - - 20.0 - - - 1.0, 1.0, 1.0, 1.0 - - - true - - - 0x00000001 - - - - - - - - - 1 - - - 0.0, 0.0, 0.0 - - - 4 - - - 4 - - - false - - - false - - - 0 - - - + + + LightParameters + + + true + + + 1.0 + + + 0 + + + 1.0 + + + 20.0 + + + + 1.0 + 1.0 + 1.0 + + + + true + + + 0x1 + + + + + + + + + 1 + + + + 0.0 + 0.0 + 0.0 + + + + 4 + + + 4 + + + false + + + false + + + 0 + + + + diff --git a/templates/mp2/Structs/MayaSpline.xml b/templates/mp2/Structs/MayaSpline.xml deleted file mode 100644 index d8759fcf..00000000 --- a/templates/mp2/Structs/MayaSpline.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/templates/mp2/Structs/PatternedInfo.xml b/templates/mp2/Structs/PatternedInfo.xml deleted file mode 100644 index 44bd7ffd..00000000 --- a/templates/mp2/Structs/PatternedInfo.xml +++ /dev/null @@ -1,116 +0,0 @@ - - - - - 150.0 - - - 1.0 - - - 120.0 - - - 100.0 - - - 0.0 - - - 60.0 - - - 6.0 - - - 11.0 - - - 2.0 - - - 1.0 - - - 50.0 - - - 25.0 - - - 5.0 - - - - 2.0 - - - - - 2.0 - - - - - - 1.0 - - - 2.0 - - - 0.0, 0.0, 0.0 - - - 0.1 - - - 1000.0 - - - 1000.0 - - - 0.0 - - - - - - - 0.1 - - - 0.1 - - - 2.0 - - - 0 - - - 0.0, 0.0, 0.0 - - - - - 0.0, 0.0, 0.0 - - - - - - - - 0 - - - - - true - - - - - diff --git a/templates/mp2/Structs/PlasmaBeamInfo.xml b/templates/mp2/Structs/PlasmaBeamInfo.xml index 081aa8a5..cf7fab2f 100644 --- a/templates/mp2/Structs/PlasmaBeamInfo.xml +++ b/templates/mp2/Structs/PlasmaBeamInfo.xml @@ -1,47 +1,84 @@ - - - - 0 - - - - - - - - 10.0 - - - 0.1 - - - 1.0 - - - 10.0 - - - 10.0 - - - 1.0 - - - 1.0 - - - 1.0 - - - 150.0 - - - 1.0, 1.0, 1.0, 0.0 - - - 0.0, 0.0, 0.0, 0.0 - - - - + + + PlasmaBeamInfo + + + 0 + + + + WPSC + + + + + PART + + + + + PART + + + + + TXTR + + + + + TXTR + + + + 10.0 + + + 0.1 + + + 1.0 + + + 10.0 + + + 10.0 + + + 1.0 + + + 1.0 + + + 1.0 + + + 150.0 + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + PART + + + + + diff --git a/templates/mp2/Structs/PowerBombGuardianStageProperties.xml b/templates/mp2/Structs/PowerBombGuardianStageProperties.xml index 2a3873bd..266c3844 100644 --- a/templates/mp2/Structs/PowerBombGuardianStageProperties.xml +++ b/templates/mp2/Structs/PowerBombGuardianStageProperties.xml @@ -1,38 +1,41 @@ - - - - 2.0 - - - 2.0 - - - 1.0 - - - 1.0 - - - 1 - - - 1 - - - 1.0 - - - 1.0 - - - 0.5 - - - 10 - - - 10 - - - + + + PowerBombGuardianStageProperties + + + 2.0 + + + 2.0 + + + 1.0 + + + 1.0 + + + 1 + + + 1 + + + 1.0 + + + 1.0 + + + 0.5 + + + 10 + + + 10 + + + + diff --git a/templates/mp2/Structs/SafeZoneStructA.xml b/templates/mp2/Structs/SafeZoneStructA.xml index b8c474e7..55140d74 100644 --- a/templates/mp2/Structs/SafeZoneStructA.xml +++ b/templates/mp2/Structs/SafeZoneStructA.xml @@ -1,25 +1,33 @@ - - - - true - - - 0 - - - 0.0, 0.0, 0.0, 0.0 - - - - - 1.0 - - - - - 0.0 - - - - + + + SafeZoneStructA + + + true + + + 0 + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + + 1.0 + + + + + 0.0 + + + + + diff --git a/templates/mp2/Structs/SafeZoneStructB.xml b/templates/mp2/Structs/SafeZoneStructB.xml index af44eb27..b1092918 100644 --- a/templates/mp2/Structs/SafeZoneStructB.xml +++ b/templates/mp2/Structs/SafeZoneStructB.xml @@ -1,50 +1,87 @@ - - - - - 0.0 - - - - - - - - 50.0 - - - - -0.04 - - - -0.03 - - - 2.0 - - - 1.0 - - - - 0.0 - - - 0.03 - - - 3.0 - - - 1.0 - - - - 0.094118, 0.498039, 0.498039, 1.0 - - - 0.74902, 0.74902, 0.74902, 1.0 - - - + + + SafeZoneStructB + + + 0 + + + 0.0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + TXTR + + + + 50.0 + + + + TXTR + + + + -0.039999999 + + + -0.029999999 + + + 2.0 + + + 1.0 + + + + TXTR + + + + 0.0 + + + 0.029999999 + + + 3.0 + + + 1.0 + + + + TXTR + + + + + 0.094117999 + 0.49803901 + 0.49803901 + + + + + 0.74901998 + 0.74901998 + 0.74901998 + + + + + diff --git a/templates/mp2/Structs/SandBossStructA.xml b/templates/mp2/Structs/SandBossStructA.xml index 0e1af6b4..c84d2df6 100644 --- a/templates/mp2/Structs/SandBossStructA.xml +++ b/templates/mp2/Structs/SandBossStructA.xml @@ -1,14 +1,53 @@ - - - - - - - - - - - - - + + + SandBossStructA + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + diff --git a/templates/mp2/Structs/SandBossStructB.xml b/templates/mp2/Structs/SandBossStructB.xml index b906b01b..d18510a1 100644 --- a/templates/mp2/Structs/SandBossStructB.xml +++ b/templates/mp2/Structs/SandBossStructB.xml @@ -1,58 +1,63 @@ - - - - - - 0x0000000B - - - 0.5 - - - 10.0 - - - - - 15.0 - - - 3.0 - - - 2.0 - - - 50.0 - - - 50.0 - - - 50.0 - - - 2.0 - - - 1.0 - - - 10.0 - - - 0.0 - - - - 1 - - - 3.0 - - - 1.0 - - - + + + SandBossStructB + + + + + 0xB + + + 0.5 + + + 10.0 + + + + + 15.0 + + + 3.0 + + + 2.0 + + + 50.0 + + + 50.0 + + + 50.0 + + + 2.0 + + + 1.0 + + + 10.0 + + + 0.0 + + + 0 + + + 1 + + + 3.0 + + + 1.0 + + + + diff --git a/templates/mp2/Structs/SandwormStruct.xml b/templates/mp2/Structs/SandwormStruct.xml index de9e67b5..dd12d555 100644 --- a/templates/mp2/Structs/SandwormStruct.xml +++ b/templates/mp2/Structs/SandwormStruct.xml @@ -1,26 +1,29 @@ - - - - 1.0 - - - 3.0 - - - 5.0 - - - 1.0 - - - 3 - - - 5 - - - 5 - - - + + + SandwormStruct + + + 1.0 + + + 3.0 + + + 5.0 + + + 1.0 + + + 3 + + + 5 + + + 5 + + + + diff --git a/templates/mp2/Structs/ScannableParameters.xml b/templates/mp2/Structs/ScannableParameters.xml index d6cdf47b..d1cfc585 100644 --- a/templates/mp2/Structs/ScannableParameters.xml +++ b/templates/mp2/Structs/ScannableParameters.xml @@ -1,6 +1,13 @@ - - - - - + + + ScannableParameters + + + + SCAN + + + + + diff --git a/templates/mp2/Structs/ShockWaveInfo.xml b/templates/mp2/Structs/ShockWaveInfo.xml index f2d73cd9..0839d2a6 100644 --- a/templates/mp2/Structs/ShockWaveInfo.xml +++ b/templates/mp2/Structs/ShockWaveInfo.xml @@ -1,24 +1,37 @@ - - - - - - 0.0 - - - 1.0 - - - 0.5 - - - 1.0 - - - 0.0 - - - - - + + + ShockWaveInfo + + + + PART + + + + + 0.0 + + + 1.0 + + + 0.5 + + + 1.0 + + + 0.0 + + + + ELSC + + + + 0 + + + + diff --git a/templates/mp2/Structs/SpawnPointStruct.xml b/templates/mp2/Structs/SpawnPointStruct.xml index 1f4ef4dd..6e30be7f 100644 --- a/templates/mp2/Structs/SpawnPointStruct.xml +++ b/templates/mp2/Structs/SpawnPointStruct.xml @@ -1,332 +1,335 @@ - - - - 1 - - - 0 - - - 0 - - - 0 - - - 1 - - - 0 - - - 0 - - - 0 - - - 0 - - - 1 - - - 1 - - - 1 - - - 1 - - - 1 - - - 0 - - - 0 - - - 1 - - - 1 - - - 1 - - - 1 - - - 1 - - - 1 - - - 1 - - - 1 - - - 0 - - - 1 - - - 1 - - - 1 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 5 - - - 5 - - - 5 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - + + + SpawnPointStruct + + + 1 + + + 0 + + + 0 + + + 0 + + + 1 + + + 0 + + + 0 + + + 0 + + + 0 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 0 + + + 0 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 0x1 + + + 0 + + + 1 + + + 1 + + + 1 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 5 + + + 5 + + + 5 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + diff --git a/templates/mp2/Structs/SpindleCameraStruct.xml b/templates/mp2/Structs/SpindleCameraStruct.xml index 64d5e6dc..11c4e879 100644 --- a/templates/mp2/Structs/SpindleCameraStruct.xml +++ b/templates/mp2/Structs/SpindleCameraStruct.xml @@ -1,9 +1,12 @@ - - - - 0 - - - - + + + SpindleCameraStruct + + + 0 + + + + + diff --git a/templates/mp2/Structs/SwampBossStage1Struct.xml b/templates/mp2/Structs/SwampBossStage1Struct.xml index 136c113f..7d1130ef 100644 --- a/templates/mp2/Structs/SwampBossStage1Struct.xml +++ b/templates/mp2/Structs/SwampBossStage1Struct.xml @@ -1,32 +1,35 @@ - - - - 50.0 - - - 1.0 - - - 3.0 - - - 3 - - - 3 - - - 0 - - - 0 - - - 0 - - - 0 - - - + + + SwampBossStage1Struct + + + 50.0 + + + 1.0 + + + 3.0 + + + 3 + + + 3 + + + 0 + + + 0 + + + 0 + + + 0 + + + + diff --git a/templates/mp2/Structs/SwampBossStage2Struct.xml b/templates/mp2/Structs/SwampBossStage2Struct.xml index b317c6fd..fcec0883 100644 --- a/templates/mp2/Structs/SwampBossStage2Struct.xml +++ b/templates/mp2/Structs/SwampBossStage2Struct.xml @@ -1,50 +1,53 @@ - - - - 3.0 - - - 7.0 - - - 1.0 - - - 2.0 - - - 0.2 - - - 0.2 - - - 0 - - - 0 - - - 0 - - - 7 - - - 7 - - - 10.0 - - - 5 - - - 2 - - - 10 - - - + + + SwampBossStage2Struct + + + 3.0 + + + 7.0 + + + 1.0 + + + 2.0 + + + 0.2 + + + 0.2 + + + 0 + + + 0 + + + 0 + + + 7 + + + 7 + + + 10.0 + + + 5 + + + 2 + + + 10 + + + + diff --git a/templates/mp2/Structs/TextProperties.xml b/templates/mp2/Structs/TextProperties.xml index b83e0379..544d6722 100644 --- a/templates/mp2/Structs/TextProperties.xml +++ b/templates/mp2/Structs/TextProperties.xml @@ -1,48 +1,58 @@ - - - - 1 - - - 1 - - - - Trilogy - - 100.0 - - - - Trilogy - - 0 - - - - Trilogy - - 0 - - - 1.0, 1.0, 1.0, 1.0 - - - 0.0, 0.0, 0.0, 1.0 - - - 1.0, 1.0, 1.0, 1.0 - - - - 0 - - - 0 - - - true - - - + + + TextProperties + + + 1 + + + 1 + + + 100.0 + + + 0 + + + 0 + + + + 1.0 + 1.0 + 1.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + 1.0 + 1.0 + 1.0 + + + + + FONT + + + + 0 + + + 0 + + + true + + + + diff --git a/templates/mp2/Structs/Transform.xml b/templates/mp2/Structs/Transform.xml index 5fe91767..1bdab480 100644 --- a/templates/mp2/Structs/Transform.xml +++ b/templates/mp2/Structs/Transform.xml @@ -1,14 +1,33 @@ - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - 1.0, 1.0, 1.0 - - - + + + Transform + true + + + Position + + 0.0 + 0.0 + 0.0 + + + + Rotation + + 0.0 + 0.0 + 0.0 + + + + Scale + + 1.0 + 1.0 + 1.0 + + + + + diff --git a/templates/mp2/Structs/TriggerInfo.xml b/templates/mp2/Structs/TriggerInfo.xml index 547d45fd..c7971ecb 100644 --- a/templates/mp2/Structs/TriggerInfo.xml +++ b/templates/mp2/Structs/TriggerInfo.xml @@ -1,43 +1,50 @@ - - - - - 0.0, 0.0, 0.0 - - - 0x00007806 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + TriggerInfo + + + + + 0.0 + 0.0 + 0.0 + + + + 30726 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/mp2/Structs/UnknownStruct1.xml b/templates/mp2/Structs/UnknownStruct1.xml deleted file mode 100644 index 0fa65e3c..00000000 --- a/templates/mp2/Structs/UnknownStruct1.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - 0 - - - diff --git a/templates/mp2/Structs/UnknownStruct2.xml b/templates/mp2/Structs/UnknownStruct2.xml index fdda4884..4cf02647 100644 --- a/templates/mp2/Structs/UnknownStruct2.xml +++ b/templates/mp2/Structs/UnknownStruct2.xml @@ -1,14 +1,17 @@ - - - - false - - - 0.0 - - - 0.0 - - - + + + UnknownStruct2 + + + false + + + 0.0 + + + 0.0 + + + + diff --git a/templates/mp2/Structs/Vector2f.xml b/templates/mp2/Structs/Vector2f.xml index 3be26a5e..e29002b2 100644 --- a/templates/mp2/Structs/Vector2f.xml +++ b/templates/mp2/Structs/Vector2f.xml @@ -1,11 +1,14 @@ - - - - 0.0 - - - 0.0 - - - + + + Vector2f + + + 0.0 + + + 0.0 + + + + diff --git a/templates/mp2/Structs/VisorParameters.xml b/templates/mp2/Structs/VisorParameters.xml index 8daa325e..7d4f11cd 100644 --- a/templates/mp2/Structs/VisorParameters.xml +++ b/templates/mp2/Structs/VisorParameters.xml @@ -1,17 +1,20 @@ - - - - false - - - 0x0000000F - - - - - - - - - + + + VisorParameters + + + false + + + 15 + + + + + + + + + + diff --git a/templates/mp2/Structs/WaterStruct.xml b/templates/mp2/Structs/WaterStruct.xml deleted file mode 100644 index 2cf484a6..00000000 --- a/templates/mp2/Structs/WaterStruct.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -2143184152 - - - 0.0 - - - 0.0 - - - -0.0 - - - 0.0 - - - diff --git a/templates/mp2/Structs/WeaponVulnerability.xml b/templates/mp2/Structs/WeaponVulnerability.xml index f111db43..5a761322 100644 --- a/templates/mp2/Structs/WeaponVulnerability.xml +++ b/templates/mp2/Structs/WeaponVulnerability.xml @@ -1,21 +1,24 @@ - - - - 100.0 - % - - - 0x00000000 - - - - - - - - - false - - - + + + WeaponVulnerability + + + % + 100.0 + + + 0x0 + + + + + + + + + false + + + + diff --git a/templates/mp2demo/MasterTemplate.xml b/templates/mp2demo/MasterTemplate.xml deleted file mode 100644 index c1d68db8..00000000 --- a/templates/mp2demo/MasterTemplate.xml +++ /dev/null @@ -1,297 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/templates/mp2demo/Script/AIJumpPoint.xml b/templates/mp2demo/Script/AIJumpPoint.xml index a9f897f9..4ce7ee95 100644 --- a/templates/mp2demo/Script/AIJumpPoint.xml +++ b/templates/mp2demo/Script/AIJumpPoint.xml @@ -1,27 +1,22 @@ - - AIJumpPoint - - - - 3.0 - - - 0 - - - - - - - - - - - - - - enabled - enabled - - + + + AIJumpPoint + + + + 3.0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/mp2demo/Script/AIKeyframe.xml b/templates/mp2demo/Script/AIKeyframe.xml index b2a17e15..49fa8348 100644 --- a/templates/mp2demo/Script/AIKeyframe.xml +++ b/templates/mp2demo/Script/AIKeyframe.xml @@ -1,39 +1,34 @@ - - AIKeyframe - - - - -1 - - - false - - - 0.0 - - - 0 - never - - - 1.0 - never - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + AIKeyframe + + + + -1 + + + false + + + 0.0 + + + Never + 0 + + + Never + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/AIMannedTurret.xml b/templates/mp2demo/Script/AIMannedTurret.xml index 0a6877d6..59e05208 100644 --- a/templates/mp2demo/Script/AIMannedTurret.xml +++ b/templates/mp2demo/Script/AIMannedTurret.xml @@ -1,97 +1,29 @@ - - AIMannedTurret - - AIMannedTurret.rel - - - - - - false - - - - - - - 90.0 - - - 90.0 - - - 60.0 - - - 60.0 - - - 30.0 - - - 30.0 - - - 30.0 - - - 1.0 - - - 0.0 - - - 90.0 - - - 40.0 - - - 20.0 - - - 2.0 - - - - - 0 - - - 10.0 - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + AIMannedTurret.rel + + + AIMannedTurret + + + + + false + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/AIWaypoint.xml b/templates/mp2demo/Script/AIWaypoint.xml index 54710f28..a0cd1fab 100644 --- a/templates/mp2demo/Script/AIWaypoint.xml +++ b/templates/mp2demo/Script/AIWaypoint.xml @@ -1,35 +1,31 @@ - - AIWaypoint - - - - 1.0 - - - 0.0 - - - 0 - - - 0 - - - - - - - - - - - - - - script/common/AIWaypoint.CMDL - - enabled - enabled - - + + + AIWaypoint + + + + 1.0 + + + 0.0 + + + 0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/mp2demo/Script/Actor.xml b/templates/mp2demo/Script/Actor.xml index d4942b67..741c7729 100644 --- a/templates/mp2demo/Script/Actor.xml +++ b/templates/mp2demo/Script/Actor.xml @@ -1,82 +1,94 @@ - - Actor - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - 1.0 - - - 0.0 - - - - - - - - true - - - true - - - true - - - false - - - 0 - - - 1.0 - - - false - - - false - - - false - - - 0.0 - - - - - - 9 - - - - - - - - - - - - - - - - - 0xE25FB08C - 0xC27FFA8F - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Actor + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + 1.0 + + + 0.0 + + + + + + CMDL + + + + + + true + + + true + + + true + + + false + + + 0 + + + 1.0 + + + false + + + false + + + false + + + 0.0 + + + + WPSC + + + + + + 9 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp2demo/Script/ActorKeyframe.xml b/templates/mp2demo/Script/ActorKeyframe.xml index eaa5537c..040b6cca 100644 --- a/templates/mp2demo/Script/ActorKeyframe.xml +++ b/templates/mp2demo/Script/ActorKeyframe.xml @@ -1,37 +1,32 @@ - - ActorKeyframe - - - - -1 - - - false - - - 0.0 - - - 0 - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ActorKeyframe + + + + -1 + + + false + + + 0.0 + + + 0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/ActorRotate.xml b/templates/mp2demo/Script/ActorRotate.xml index 0c7f0df8..c502a65b 100644 --- a/templates/mp2demo/Script/ActorRotate.xml +++ b/templates/mp2demo/Script/ActorRotate.xml @@ -1,42 +1,25 @@ - - ActorRotate - - - - 20 - - - 10.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ActorRotate + + + + 20 + + + 10.0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/AmbientAI.xml b/templates/mp2demo/Script/AmbientAI.xml index 4c947282..b992b8da 100644 --- a/templates/mp2demo/Script/AmbientAI.xml +++ b/templates/mp2demo/Script/AmbientAI.xml @@ -1,51 +1,55 @@ - - AmbientAI - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - 1.0 - - - - - - - 7.0 - - - 1.5 - - - -1 - - - -1 - - - - - - - - - - - - - - - 0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + AmbientAI + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + 1.0 + + + + + + + 7.0 + + + 1.5 + + + -1 + + + -1 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/AreaAttributes.xml b/templates/mp2demo/Script/AreaAttributes.xml index 7b9acf6d..c3c17907 100644 --- a/templates/mp2demo/Script/AreaAttributes.xml +++ b/templates/mp2demo/Script/AreaAttributes.xml @@ -1,47 +1,47 @@ - - AreaAttributes - - - - - never - - - - - false - Show the skybox. If no Skybox Model is specified, it will show the World's default skybox. - - - 0 - - - 1.0 - - - 1.0 - - - - 0 - - - - - - - - - - - - - - script/common/AreaAttributes.TXTR - - 0.5 - enabled - enabled - - + + + AreaAttributes + + + + + Never + + + + + Show the skybox. If no Skybox Model is specified, it will show the World's default skybox. + false + + + 0 + + + 1.0 + + + 1.0 + + + + CMDL + + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2demo/Script/AreaDamage.xml b/templates/mp2demo/Script/AreaDamage.xml index 751aefc0..d5a91790 100644 --- a/templates/mp2demo/Script/AreaDamage.xml +++ b/templates/mp2demo/Script/AreaDamage.xml @@ -1,29 +1,24 @@ - - AreaDamage - - - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + AreaDamage + + + + + 1.0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/AtomicAlpha.xml b/templates/mp2demo/Script/AtomicAlpha.xml index 8e726a23..62f3e0e1 100644 --- a/templates/mp2demo/Script/AtomicAlpha.xml +++ b/templates/mp2demo/Script/AtomicAlpha.xml @@ -1,102 +1,106 @@ - - AtomicAlpha - - AtomicAlpha.rel - - - - - - - 25.0 - - - 720.0 - - - 5.0 - - - 5.0 - - - 90.0 - - - 4.0 - - - 20.0 - - - - - 9 - - - 10.0 - - - 5.0 - - - - - 1.0 - - - 0.5 - - - 1.5 - - - 0.0 - - - 1 - - - - - - - - - 3.0 - - - 2.0 - - - 1.5 - - - false - - - true - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0xC75F9516 - - enabled - enabled - - + + + AtomicAlpha.rel + + + AtomicAlpha + + + + + + 25.0 + + + 720.0 + + + 5.0 + + + 5.0 + + + 90.0 + + + 4.0 + + + 20.0 + + + + + 0x9 + + + 10.0 + + + 5.0 + + + + + 1.0 + + + 0.5 + + + 1.5 + + + 0.0 + + + 1 + + + + + + + WPSC + + + + + CMDL + + + + + 3.0 + + + 2.0 + + + 1.5 + + + false + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp2demo/Script/BallTrigger.xml b/templates/mp2demo/Script/BallTrigger.xml index 53f23749..fb3b176a 100644 --- a/templates/mp2demo/Script/BallTrigger.xml +++ b/templates/mp2demo/Script/BallTrigger.xml @@ -1,48 +1,52 @@ - - BallTrigger - - - - - - - 2.0, 2.0, 2.0 - - - - - - - - 20.0 - - - 60.0 - - - 20.0 - - - 1.0, 0.0, 0.0 - - - false - - - - - - - - - - - - - - enabled - volume - - - + + + BallTrigger + + + + + + + + 2.0 + 2.0 + 2.0 + + + + + + + + + 20.0 + + + 60.0 + + + 20.0 + + + + 1.0 + 0.0 + 0.0 + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + BoxShape + diff --git a/templates/mp2demo/Script/Blogg.xml b/templates/mp2demo/Script/Blogg.xml index aebd8bd3..5bedd5ec 100644 --- a/templates/mp2demo/Script/Blogg.xml +++ b/templates/mp2demo/Script/Blogg.xml @@ -1,127 +1,127 @@ - - Blogg - - Blogg.rel - - - - - - - 1 - - - - - - 30.0 - - - 30.0 - - - 2.0 - - - 2.0 - - - 1 - - - - - - 9 - - - 5.0 - - - 2.0 - - - - - 1.0 - - - 1.0 - - - 45.0 - - - - 2.0 - - - 10.0 - - - 10.0 - - - 10.0 - - - 900.0 - - - 10.0 - - - 0.5 - - - 0.5 - - - 0.75 - - - 1.0 - - - 0.3 - - - 1.0 - - - 10.0 - - - 20.0 - - - 5.0 - - - 5.0 - - - -1 - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Blogg.rel + + + Blogg + + + + + + 1 + + + + + + 30.0 + + + 30.0 + + + 2.0 + + + 2.0 + + + 1 + + + + WPSC + + + + + + 0x9 + + + 5.0 + + + 2.0 + + + + + 1.0 + + + 1.0 + + + 45.0 + + + + 2.0 + + + 10.0 + + + 10.0 + + + 10.0 + + + 900.0 + + + 10.0 + + + 0.5 + + + 0.5 + + + 0.75 + + + 1.0 + + + 0.30000001 + + + 1.0 + + + 10.0 + + + 20.0 + + + 5.0 + + + 5.0 + + + -1 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/Brizgee.xml b/templates/mp2demo/Script/Brizgee.xml index 1d64466c..015a7d21 100644 --- a/templates/mp2demo/Script/Brizgee.xml +++ b/templates/mp2demo/Script/Brizgee.xml @@ -1,73 +1,77 @@ - - Brizgee - - WallCrawler.rel - Parasite.rel - - - - - - - 2.5 - - - 360.0 - - - 720.0 - - - 120.0 - - - 40.0 - - - 0.2 - - - - - - 2.0 - - - - 1.5 - - - - 2.0 - - - -1 - - - -1 - - - -1 - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + WallCrawler.rel + Parasite.rel + + + Brizgee + + + + + + 2.5 + + + 360.0 + + + 720.0 + + + 120.0 + + + 40.0 + + + 0.2 + + + + CMDL + + + + + CSKR + + + + + 2.0 + + + + 1.5 + + + + 2.0 + + + 0 + + + 0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/Camera.xml b/templates/mp2demo/Script/Camera.xml index 85f4c015..883ef9ab 100644 --- a/templates/mp2demo/Script/Camera.xml +++ b/templates/mp2demo/Script/Camera.xml @@ -1,45 +1,41 @@ - - Camera - - - - - false - - - - - 10.0 - - - 160 - - - 0 - - - - - - - - - - - - - - - - - - - - - script/common/Camera.CMDL - - enabled - enabled - - + + + Camera + + + + + false + + + + + 10.0 + + + 160 + + + 0 + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/mp2demo/Script/CameraBlurKeyframe.xml b/templates/mp2demo/Script/CameraBlurKeyframe.xml index 3f0d5739..012d7fa2 100644 --- a/templates/mp2demo/Script/CameraBlurKeyframe.xml +++ b/templates/mp2demo/Script/CameraBlurKeyframe.xml @@ -1,39 +1,35 @@ - - CameraBlurKeyframe - - - - 0 - - - 0.0 - - - 0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - script/common/CameraBlurKeyframe.TXTR - - 0.5 - enabled - enabled - - + + + CameraBlurKeyframe + + + + 0 + + + 0.0 + + + 0 + + + 0.0 + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2demo/Script/CameraFilterKeyframe.xml b/templates/mp2demo/Script/CameraFilterKeyframe.xml index d06daf04..33161ebb 100644 --- a/templates/mp2demo/Script/CameraFilterKeyframe.xml +++ b/templates/mp2demo/Script/CameraFilterKeyframe.xml @@ -1,46 +1,50 @@ - - CameraFilterKeyframe - - - - 0 - - - 0 - - - 0 - - - 0 - - - 1.0, 1.0, 1.0, 1.0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - - script/common/CameraFilterKeyframe.TXTR - - 0.5 - enabled - enabled - - + + + CameraFilterKeyframe + + + + 0 + + + 0 + + + 0 + + + 0 + + + + 1.0 + 1.0 + 1.0 + + + + 0.0 + + + 0.0 + + + + TXTR + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2demo/Script/CameraHint.xml b/templates/mp2demo/Script/CameraHint.xml index 17feb781..5613838b 100644 --- a/templates/mp2demo/Script/CameraHint.xml +++ b/templates/mp2demo/Script/CameraHint.xml @@ -1,99 +1,50 @@ - - CameraHint - - - - 10 - - - - - 0 - - - - - 318 - - - - - - - - false - - - 0.0, 1.0, 1.0 - - - - - 1.0, 1.0, 1.0 - - - - - false - - - 55.0 - - - - - - - - - false - - - 120.0 - - - - - - - false - - - 2.7 - - - - - 2.0 - - - 1.0 - - - 1.0 - - - - - 0 - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + CameraHint + + + + 10 + + + + 318 + + + + + + + + 1.0 + 1.0 + 1.0 + + + + + + + + + 2.0 + + + 1.0 + + + 1.0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/CameraPitch.xml b/templates/mp2demo/Script/CameraPitch.xml index dc9efc34..0b38e975 100644 --- a/templates/mp2demo/Script/CameraPitch.xml +++ b/templates/mp2demo/Script/CameraPitch.xml @@ -1,28 +1,23 @@ - - CameraPitch - - - - - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + CameraPitch + + + + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/CameraShaker.xml b/templates/mp2demo/Script/CameraShaker.xml index 16c4f59d..b243d090 100644 --- a/templates/mp2demo/Script/CameraShaker.xml +++ b/templates/mp2demo/Script/CameraShaker.xml @@ -1,25 +1,21 @@ - - CameraShaker - - - - - - - - - - - - - - - - script/common/CameraShaker.TXTR - - 0.5 - enabled - enabled - - + + + CameraShaker + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2demo/Script/CameraWaypoint.xml b/templates/mp2demo/Script/CameraWaypoint.xml index aa36a9ff..1793b856 100644 --- a/templates/mp2demo/Script/CameraWaypoint.xml +++ b/templates/mp2demo/Script/CameraWaypoint.xml @@ -1,23 +1,19 @@ - - CameraWaypoint - - - - - - - - - - - - - - - script/common/CameraWaypoint.CMDL - - enabled - enabled - - + + + CameraWaypoint + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/mp2demo/Script/CannonBall.xml b/templates/mp2demo/Script/CannonBall.xml index 7b649023..e6e16288 100644 --- a/templates/mp2demo/Script/CannonBall.xml +++ b/templates/mp2demo/Script/CannonBall.xml @@ -1,26 +1,25 @@ - - CannonBall - - ScriptCannonBall.rel - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ScriptCannonBall.rel + + + CannonBall + + + + + PART + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/ChozoGhost.xml b/templates/mp2demo/Script/ChozoGhost.xml index 2448a757..61eda506 100644 --- a/templates/mp2demo/Script/ChozoGhost.xml +++ b/templates/mp2demo/Script/ChozoGhost.xml @@ -1,198 +1,214 @@ - - ChozoGhost - - ChozoGhost.rel - - - - - - - 720.0 - - - 25.0 - - - 8.0 - - - 70.0 - - - 70.0 - - - - - 9 - - - 5.0 - - - 1.0 - - - - - - - 300.0 - - - 10.0 - - - - - 4.5 - - - 1 - - - - - - 20.0 - - - 2.5 - - - 1.0 - - - 2.0 - - - - - - 10.0 - - - - - - - - 5.0 - - - - - - - 20.0 - - - 0.0 - - - 60.0 - - - 20.0 - - - 0.0 - - - - - - - 20.0 - - - 10.0 - - - 60.0 - - - 10.0 - - - 20.0 - - - 3 - - - - - - - 0.0 - - - 0.0 - - - 100.0 - - - 0.0 - - - 2 - - - - - - 1.5 - - - - - 0 - - - 8.0 - - - 0 - - - 1.5 - - - - - 20.0 - - - 45.0 - - - 40 - - - 40 - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + ChozoGhost.rel + + + ChozoGhost + + + + + + 720.0 + + + 25.0 + + + 8.0 + + + 70.0 + + + 70.0 + + + + + 0x9 + + + 5.0 + + + 1.0 + + + + + + + 300.0 + + + 10.0 + + + + + 4.5 + + + 1 + + + + + + 20.0 + + + 2.5 + + + 1.0 + + + 2.0 + + + + WPSC + + + + + + 10.0 + + + + + + WPSC + + + + + + 5.0 + + + + + + + 20.0 + + + 0.0 + + + 60.0 + + + 20.0 + + + 0.0 + + + + + + + 20.0 + + + 10.0 + + + 60.0 + + + 10.0 + + + 20.0 + + + 3 + + + + + + + 0.0 + + + 0.0 + + + 100.0 + + + 0.0 + + + 2 + + + + + 0 + + + 1.5 + + + 0 + + + 0 + + + 0 + + + 8.0 + + + 0 + + + 1.5 + + + + PART + + + + 0 + + + 20.0 + + + 45.0 + + + 40 + + + 40 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/Coin.xml b/templates/mp2demo/Script/Coin.xml index 6051f155..bf0a3bed 100644 --- a/templates/mp2demo/Script/Coin.xml +++ b/templates/mp2demo/Script/Coin.xml @@ -1,154 +1,195 @@ - - Coin - - ScriptCoin.rel - - - - - - false - - - - - 180.0 - - - 5.0 - - - 15.0 - - - 1.0 - - - 1.2 - - - 2.0 - - - 3.0 - - - 0.0 - - - 10.0 - - - 80.0 - - - 1.0, 1.0, 1.0, 1.0 - - - 1.0, 1.0, 1.0, 0.0 - - - 80.0 - - - 1.0, 1.0, 1.0 - - - 0.375 - - - 25.0 - - - 0.0, 0.0, 0.0 - - - - - - -1 - - - 1 - - - 1.0 - - - 1.0 - - - 1.0, 1.0, 1.0 - - - false - - - false - - - 0 - - - - 1.0, 1.0, 1.0 - - - false - - - false - - - 0 - - - - 1.0, 1.0, 1.0 - - - 0 - - - true - - - false - - - false - - - false - - - false - - - true - - - 1.0 - - - - - - - - - - - - - - - 0xC27FFA8F - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + ScriptCoin.rel + + + Coin + + + + + false + + + + + 180.0 + + + 5.0 + + + 15.0 + + + 1.0 + + + 1.2 + + + 2.0 + + + 3.0 + + + 0.0 + + + 10.0 + + + 80.0 + + + + 1.0 + 1.0 + 1.0 + + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + 80.0 + + + + 1.0 + 1.0 + 1.0 + + + + 0.375 + + + 25.0 + + + + 0.0 + 0.0 + 0.0 + + + + + CMDL + + + + + + PART + + + + -1 + + + 1 + + + 1.0 + + + 1.0 + + + + 1.0 + 1.0 + 1.0 + + + + false + + + false + + + 0 + + + + PART + + + + + 1.0 + 1.0 + 1.0 + + + + false + + + false + + + 0 + + + + PART + + + + + 1.0 + 1.0 + 1.0 + + + + 0 + + + true + + + false + + + false + + + false + + + false + + + true + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/ColorModulate.xml b/templates/mp2demo/Script/ColorModulate.xml index 01fd1d3c..f7acc3d6 100644 --- a/templates/mp2demo/Script/ColorModulate.xml +++ b/templates/mp2demo/Script/ColorModulate.xml @@ -1,67 +1,72 @@ - - ColorModulate - - - - 1.0, 1.0, 1.0, 0.0 - - - 1.0, 1.0, 1.0, 1.0 - - - 0 - - - 1.0 - - - 1.0 - - - false - - - false - - - true - - - true - - - false - - - false - - - true - - - false - - - false - - - - - - - - - - - - - - - script/common/ColorModulate.TXTR - - 0.5 - enabled - enabled - - + + + ColorModulate + + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + + 1.0 + 1.0 + 1.0 + + + + 0 + + + 1.0 + + + 1.0 + + + false + + + false + + + true + + + true + + + false + + + false + + + true + + + false + + + false + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2demo/Script/CommandoPirate.xml b/templates/mp2demo/Script/CommandoPirate.xml index 55ac04cc..a9d9e138 100644 --- a/templates/mp2demo/Script/CommandoPirate.xml +++ b/templates/mp2demo/Script/CommandoPirate.xml @@ -1,262 +1,172 @@ - - CommandoPirate - - PirateRagDoll.rel - CommandoPirate.rel - - - - - - - 360.0 - - - 90.0 - - - 1.0 - - - 0.5 - - - - - 9 - - - 10.0 - - - 10.0 - - - - - 3.0 - - - - - 150.0 - - - - - 0.8 - - - 3.0 - - - 0.3 - - - 0.2 - - - 1 - - - - - - - 0 - - - 10.0 - - - 50.0 - - - 30.0 - - - 80.0 - - - 50.0 - - - 4.0 - - - - - - -1 - - - -1 - - - -1 - - - -1 - - - - - 9 - - - 10.0 - - - 5.0 - - - - - - - - 9 - - - 5.0 - - - - - - 20.0 - - - - - 10.0 - - - 0.25 - - - 80.0 - - - 15.0 - - - 50.0 - - - - - 9 - - - 50.0 - - - 10.0 - - - 10.0 - - - - - - - - 25.0 - - - 0.4 - - - 20.0 - - - 50.0 - - - 0 - - - 8.0 - - - - - - - 20.0 - - - - -1 - - - - - - - 10.0 - - - 5.0 - - - - - - 15.0 - - - 30.0 - - - 40.0 - - - - - 50.0 - - - 1.5 - - - 50.0 - - - 4.0 - - - 1.0 - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0xE61748ED:0xAD54DA11 - - enabled - enabled - - + + + PirateRagDoll.rel + CommandoPirate.rel + + + CommandoPirate + + + + + + 360.0 + + + 90.0 + + + 1.0 + + + 0.5 + + + + + 0x9 + + + 10.0 + + + 10.0 + + + + + 3.0 + + + + + 150.0 + + + + + 0.80000001 + + + 3.0 + + + 0.30000001 + + + 0.2 + + + 1 + + + + + + + 0 + + + 10.0 + + + 50.0 + + + 30.0 + + + 80.0 + + + 50.0 + + + 4.0 + + + 0 + + + 0 + + + 0 + + + -1 + + + -1 + + + -1 + + + -1 + + + + + 0x9 + + + 10.0 + + + 5.0 + + + + + + WPSC + + + + + + 0x9 + + + 5.0 + + + + + 0 + + + 20.0 + + + + 20.0 + + + + PART + + + + -1 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp2demo/Script/ConditionalRelay.xml b/templates/mp2demo/Script/ConditionalRelay.xml index 014b320b..0b9f205f 100644 --- a/templates/mp2demo/Script/ConditionalRelay.xml +++ b/templates/mp2demo/Script/ConditionalRelay.xml @@ -1,52 +1,48 @@ - - ConditionalRelay - - - - false - - - 7680 - - - - - - 0 - - - - - - - 0 - - - - - - - 0 - - - - - - - - - - - - - - - - script/common/ConditionalRelay.TXTR - - 0.5 - enabled - enabled - - + + + ConditionalRelay + + + + false + + + 7680 + + + + + + 0 + + + + + + + 0 + + + + + + + 0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2demo/Script/ControllerAction.xml b/templates/mp2demo/Script/ControllerAction.xml index 582e2712..ea0cbd8e 100644 --- a/templates/mp2demo/Script/ControllerAction.xml +++ b/templates/mp2demo/Script/ControllerAction.xml @@ -1,28 +1,23 @@ - - ControllerAction - - - - 0 - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ControllerAction + + + + 0 + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/Counter.xml b/templates/mp2demo/Script/Counter.xml index 8f920d95..1c43575b 100644 --- a/templates/mp2demo/Script/Counter.xml +++ b/templates/mp2demo/Script/Counter.xml @@ -1,33 +1,29 @@ - - Counter - - - - 10 - - - 10 - - - false - - - - - - - - - - - - - - script/common/Counter.TXTR - - 0.5 - enabled - enabled - - + + + Counter + + + + 10 + + + 10 + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2demo/Script/CoverPoint.xml b/templates/mp2demo/Script/CoverPoint.xml index 059f09e2..a8ee1088 100644 --- a/templates/mp2demo/Script/CoverPoint.xml +++ b/templates/mp2demo/Script/CoverPoint.xml @@ -1,37 +1,32 @@ - - CoverPoint - - - - 1 - - - true - - - 180.0 - - - 90.0 - - - 10.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + CoverPoint + + + + 1 + + + true + + + 180.0 + + + 90.0 + + + 10.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/DamageableTrigger.xml b/templates/mp2demo/Script/DamageableTrigger.xml index 8cb30641..973f6daa 100644 --- a/templates/mp2demo/Script/DamageableTrigger.xml +++ b/templates/mp2demo/Script/DamageableTrigger.xml @@ -1,36 +1,33 @@ - - DamageableTrigger - - - - - - false - - - false - - - false - - - - - - - - - - - - - - - script/common/DamageableTrigger.TXTR - - enabled - volume - - - + + + DamageableTrigger + + + + + + false + + + false + + + false + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + ScaleVolume + AxisAlignedBoxShape + diff --git a/templates/mp2demo/Script/DamageableTriggerOrientated.xml b/templates/mp2demo/Script/DamageableTriggerOrientated.xml index 53e8851d..15c71a1a 100644 --- a/templates/mp2demo/Script/DamageableTriggerOrientated.xml +++ b/templates/mp2demo/Script/DamageableTriggerOrientated.xml @@ -1,34 +1,30 @@ - - DamageableTriggerOrientated - - - - - - false - - - false - - - false - - - - - - - - - - - - - - - enabled - volume - - - + + + DamageableTriggerOrientated + + + + + + false + + + false + + + false + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + BoxShape + diff --git a/templates/mp2demo/Script/DarkSamus.xml b/templates/mp2demo/Script/DarkSamus.xml index 0e16dbfb..c6d49f0b 100644 --- a/templates/mp2demo/Script/DarkSamus.xml +++ b/templates/mp2demo/Script/DarkSamus.xml @@ -1,99 +1,145 @@ - - DarkSamus - - DarkSamus.rel - - - - - - - 32.0 - - - 0.5 - - - 1.0 - - - 1 - - - - - - - false - - - - 100.0 - - - - - - - - - - - - 40.0 - - - 500.0 - - - - - - - 0.0 - - - 300.0 - - - - - - - - - 10.0 - - - 4.0 - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0xF148F728 - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0x072DF331 - - enabled - enabled - - + + + DarkSamus.rel + + + DarkSamus + + + + + + 32.0 + + + 0.5 + + + 1.0 + + + 1 + + + + + + 0 + + + false + + + + TXTR + + + + 100.0 + + + + + + + + + + PART + + + + + PART + + + + + 40.0 + + + 500.0 + + + + PART + + + + + WPSC + + + + + WPSC + + + + + 0.0 + + + 300.0 + + + + WPSC + + + + + + WPSC + + + + + + WPSC + + + + + 10.0 + + + 4.0 + + + + SWHC + + + + + + CMDL + + + + + CSKR + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + diff --git a/templates/mp2demo/Script/DarkTrooper.xml b/templates/mp2demo/Script/DarkTrooper.xml index 55dfb632..f9b7cce0 100644 --- a/templates/mp2demo/Script/DarkTrooper.xml +++ b/templates/mp2demo/Script/DarkTrooper.xml @@ -1,69 +1,71 @@ - - DarkTrooper - - PirateRagDoll.rel - DarkTrooper.rel - - - - - - - 100.0 - - - 0.5 - - - 1.6 - - - 1.0 - - - 1 - - - - - - false - - - 0.0 - - - 5.0 - - - - 5.0 - - - 18.0 - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + PirateRagDoll.rel + DarkTrooper.rel + + + DarkTrooper + + + + + + 100.0 + + + 0.5 + + + 1.6 + + + 1.0 + + + 1 + + + + + + false + + + 0.0 + + + 5.0 + + + + 5.0 + + + 18.0 + + + + + WPSC + + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/Debris.xml b/templates/mp2demo/Script/Debris.xml index 52ff8bb3..824cacdd 100644 --- a/templates/mp2demo/Script/Debris.xml +++ b/templates/mp2demo/Script/Debris.xml @@ -1,65 +1,82 @@ - - Debris - - - - - false - - - - - 20.0 - - - 20.0, 20.0, 25.0 - - - 1.0, 0.0, 0.0, 0.0 - - - 12.0 - - - 0.375 - - - 1.0 - - - 0 - - - true - - - - - - 1.0, 1.0, 1.0 - - - true - - - - - - - - - - - - - - - 0xC27FFA8F - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Debris + + + + + false + + + + + 20.0 + + + + 20.0 + 20.0 + 25.0 + + + + + 1.0 + 0.0 + 0.0 + 0.0 + + + + 12.0 + + + 0.375 + + + 1.0 + + + 0 + + + true + + + + CMDL + + + + + + PART + + + + + 1.0 + 1.0 + 1.0 + + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/DebrisExtended.xml b/templates/mp2demo/Script/DebrisExtended.xml index d23d2184..f6f0648a 100644 --- a/templates/mp2demo/Script/DebrisExtended.xml +++ b/templates/mp2demo/Script/DebrisExtended.xml @@ -1,149 +1,192 @@ - - DebrisExtended - - - - - false - - - - - 180.0 - - - 5.0 - - - 15.0 - - - 1.0 - - - 1.2 - - - 2.0 - - - 3.0 - - - 0.0 - - - 10.0 - - - 80.0 - - - 1.0, 1.0, 1.0, 1.0 - - - 1.0, 1.0, 1.0, 0.0 - - - 80.0 - - - 1.0, 1.0, 1.0 - - - 0.375 - - - 25.0 - - - 0.0, 0.0, 0.0 - - - - - - - 1 - - - 1.0 - - - 1.0 - - - 1.0, 1.0, 1.0 - - - false - - - false - - - 0 - - - - 1.0, 1.0, 1.0 - - - false - - - false - - - 0 - - - - 1.0, 1.0, 1.0 - - - 0 - - - true - - - false - - - false - - - false - - - false - - - true - - - 1.0 - - - - - - - - - - - - - - - 0xC27FFA8F - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + DebrisExtended + + + + + false + + + + + 180.0 + + + 5.0 + + + 15.0 + + + 1.0 + + + 1.2 + + + 2.0 + + + 3.0 + + + 0.0 + + + 10.0 + + + 80.0 + + + + 1.0 + 1.0 + 1.0 + + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + 80.0 + + + + 1.0 + 1.0 + 1.0 + + + + 0.375 + + + 25.0 + + + + 0.0 + 0.0 + 0.0 + + + + + CMDL + + + + + + PART + + + + 0 + + + 1 + + + 1.0 + + + 1.0 + + + + 1.0 + 1.0 + 1.0 + + + + false + + + false + + + 0 + + + + PART + + + + + 1.0 + 1.0 + 1.0 + + + + false + + + false + + + 0 + + + + PART + + + + + 1.0 + 1.0 + 1.0 + + + + 0 + + + true + + + false + + + false + + + false + + + false + + + true + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/DigitalGuardian.xml b/templates/mp2demo/Script/DigitalGuardian.xml index 466d0e75..f6cdb92a 100644 --- a/templates/mp2demo/Script/DigitalGuardian.xml +++ b/templates/mp2demo/Script/DigitalGuardian.xml @@ -1,136 +1,49 @@ - - DigitalGuardian - - DigitalGuardian.rel - - - - - - - 360.0 - - - 0.0 - - - - - 150.0 - - - - - 2 - - - - - - - - 10.0 - - - 17.0 - - - 5.0 - - - - - 9 - - - 50.0 - - - 10.0 - - - - - - 5.0 - - - 15.0 - - - 50.0 - - - 30.0 - - - 20.0 - - - 20.0 - - - - - 9 - - - 50.0 - - - 10.0 - - - - - -1 - - - 100.0 - - - -1 - - - -1 - - - 2.0 - - - -1 - - - 500.0 - - - -1 - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0xC55918CC:0x8DDD85CA - 0xC55918CC:0x5EF8B288 - - enabled - enabled - - + + + DigitalGuardian.rel + + + DigitalGuardian + + + + + + 360.0 + + + 0.0 + + + + + 150.0 + + + + + 2 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + diff --git a/templates/mp2demo/Script/DigitalGuardianHead.xml b/templates/mp2demo/Script/DigitalGuardianHead.xml index 4d47d947..2bbfb8d1 100644 --- a/templates/mp2demo/Script/DigitalGuardianHead.xml +++ b/templates/mp2demo/Script/DigitalGuardianHead.xml @@ -1,143 +1,48 @@ - - DigitalGuardianHead - - DigitalGuardian.rel - - - - - - - 360.0 - - - 0.0 - - - - - 150.0 - - - - - 2 - - - - - - - - - 60.0 - - - 20.0 - - - 100.0 - - - 5.0 - - - 30.0 - - - 5.0 - - - 1.25 - - - 5.0 - - - 2.0 - - - 30.0 - - - - - - 9 - - - 20.0 - - - 10.0 - - - - - -1 - - - - - - 9 - - - 20.0 - - - 10.0 - - - - - -1 - - - - - - 9 - - - 20.0 - - - 10.0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0x0F4D73B7:0x07D8CC4F - - enabled - enabled - - + + + DigitalGuardian.rel + + + DigitalGuardianHead + + + + + + 360.0 + + + 0.0 + + + + + 150.0 + + + + + 2 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp2demo/Script/DistanceFog.xml b/templates/mp2demo/Script/DistanceFog.xml index 6312a0f6..55aedf53 100644 --- a/templates/mp2demo/Script/DistanceFog.xml +++ b/templates/mp2demo/Script/DistanceFog.xml @@ -1,44 +1,45 @@ - - DistanceFog - - - - - false - - - - - 0 - - - 0.0, 0.0, 0.0, 0.0 - - - - 0.0 - - - - false - - - - - - - - - - - - - - script/common/DistanceFog.TXTR - - 0.5 - enabled - enabled - - + + + DistanceFog + + + + + false + + + + + 0 + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + 0.0 + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2demo/Script/Dock.xml b/templates/mp2demo/Script/Dock.xml index 13354b84..45b3edae 100644 --- a/templates/mp2demo/Script/Dock.xml +++ b/templates/mp2demo/Script/Dock.xml @@ -1,36 +1,33 @@ - - Dock - - - - 0 - - - 0 - - - false - - - true - - - - - - - - - - - - - - script/common/Dock.TXTR - - enabled - volume - - - + + + Dock + + + + 0 + + + 0 + + + false + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + ScaleVolume + BoxShape + diff --git a/templates/mp2demo/Script/Door.xml b/templates/mp2demo/Script/Door.xml index 0ff34b1d..210e3ef3 100644 --- a/templates/mp2demo/Script/Door.xml +++ b/templates/mp2demo/Script/Door.xml @@ -1,66 +1,82 @@ - - Door - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - - - - - - - 0.0, 0.0, 0.0 - - - true - - - false - - - 0.5 - - - 0.5 - - - 0.5 - - - 0.5 - - - 0.5 - - - false - - - - - - - - - - - - - - - 0xE25FB08C - 0xB20CC271 - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Door + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + + + + CMDL + + + + + TXTR + + + + + + 0.0 + 0.0 + 0.0 + + + + true + + + false + + + 0.5 + + + 0.5 + + + 0.5 + + + 0.5 + + + 0.5 + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp2demo/Script/DynamicLight.xml b/templates/mp2demo/Script/DynamicLight.xml index 7171bb17..233eaa9c 100644 --- a/templates/mp2demo/Script/DynamicLight.xml +++ b/templates/mp2demo/Script/DynamicLight.xml @@ -1,93 +1,35 @@ - - DynamicLight - - - - 2 - - - 6 - - - 1.0, 1.0, 1.0, 1.0 - - - - - - 0.0 - - - false - - - - - - - 0 - - - - 0.0 - - - false - - - - - - - - 0.0 - - - false - - - - - - - false - - - - - 10.0 - - - - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - - false - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + DynamicLight + + + + 2 + + + 6 + + + + 1.0 + 1.0 + 1.0 + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/EMPulse.xml b/templates/mp2demo/Script/EMPulse.xml index 9c0be873..4634e341 100644 --- a/templates/mp2demo/Script/EMPulse.xml +++ b/templates/mp2demo/Script/EMPulse.xml @@ -1,50 +1,49 @@ - - EMPulse - - - - - false - - - - - 0.1 - - - 34.0 - - - 1.333 - - - 1.0 - - - 3.0 - - - 0.4 - - - 0.8 - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + EMPulse + + + + + false + + + + + 0.1 + + + 34.0 + + + 1.3329999 + + + 1.0 + + + 3.0 + + + 0.40000001 + + + 0.80000001 + + + + PART + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/Effect.xml b/templates/mp2demo/Script/Effect.xml index 6cec88f8..b9eb9821 100644 --- a/templates/mp2demo/Script/Effect.xml +++ b/templates/mp2demo/Script/Effect.xml @@ -1,88 +1,90 @@ - - Effect - - - - - false - - - false - - - false - - - false - - - 5.0 - - - 0.5 - - - 0.2 - - - 0.1 - - - false - - - 20.0 - - - 30.0 - - - 0.0 - - - true - - - true - - - true - - - false - - - false - - - - false - - - - - 10.0 - - - false - - - - - - - - - - - - - - script/common/Effect.TXTR - - 0.5 - enabled - enabled - - + + + Effect + + + + + PART + ELSC + SWHC + + + + false + + + false + + + false + + + false + + + 5.0 + + + 0.5 + + + 0.2 + + + 0.1 + + + false + + + 20.0 + + + 30.0 + + + 0.0 + + + true + + + true + + + true + + + false + + + false + + + + false + + + + + 10.0 + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2demo/Script/ElitePirate.xml b/templates/mp2demo/Script/ElitePirate.xml index 5aff4d65..7ef1cd72 100644 --- a/templates/mp2demo/Script/ElitePirate.xml +++ b/templates/mp2demo/Script/ElitePirate.xml @@ -1,149 +1,131 @@ - - ElitePirate - - ElitePirate.rel - - - - - - - 3.5 - - - 2.0 - - - 2 - - - - - - - 9.0 - - - 9.0 - - - 35.0 - - - 15.0 - - - 80.0 - - - - - 75.0 - - - 50.0 - - - 25.0 - - - 10.0 - - - -1.0 - - - 10.0 - - - 50.0 - - - - - 8.0 - - - 3.0 - - - - - 1.0 - - - 1.0 - - - 1.0 - - - 2.0 - - - - - - 9 - - - 10.0 - - - 5.0 - - - - - 2 - - - 4 - - - 0.1 - - - 3.0 - - - 1.0 - - - 50.0 - - - -1 - - - -1 - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0xB92B481D - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0x62C744CD:0xC0BA9E18 - 0x62C744CD:0x6B1FBC3A - - enabled - enabled - - + + + ElitePirate.rel + + + ElitePirate + + + + + + 3.5 + + + 2.0 + + + 2 + + + + + + + 9.0 + + + 9.0 + + + 35.0 + + + 15.0 + + + 80.0 + + + + 8.0 + + + 3.0 + + + + + 1.0 + + + 1.0 + + + 1.0 + + + 2.0 + + + + WPSC + + + + + + 0x9 + + + 10.0 + + + 5.0 + + + + + 2 + + + 4 + + + 0.1 + + + 3.0 + + + 1.0 + + + 50.0 + + + -1 + + + -1 + + + + + + ELSC + + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + diff --git a/templates/mp2demo/Script/EmperorIngStage1.xml b/templates/mp2demo/Script/EmperorIngStage1.xml index 37d316cf..1ff72a2d 100644 --- a/templates/mp2demo/Script/EmperorIngStage1.xml +++ b/templates/mp2demo/Script/EmperorIngStage1.xml @@ -1,70 +1,34 @@ - - EmperorIngStage1 - - EmperorIngStage1.rel - - - - - - - 2 - - - - - - - - - - - - - - - 0.0 - - - - - - - - - - - - - - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + EmperorIngStage1.rel + + + EmperorIngStage1 + + + + + + 2 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/EnvFxDensityController.xml b/templates/mp2demo/Script/EnvFxDensityController.xml index 9bc9d147..97f46fed 100644 --- a/templates/mp2demo/Script/EnvFxDensityController.xml +++ b/templates/mp2demo/Script/EnvFxDensityController.xml @@ -1,28 +1,23 @@ - - EnvFxDensityController - - - - 0.5 - - - 500 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + EnvFxDensityController + + + + 0.5 + + + 500 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/FishCloud.xml b/templates/mp2demo/Script/FishCloud.xml index d2de176d..59788632 100644 --- a/templates/mp2demo/Script/FishCloud.xml +++ b/templates/mp2demo/Script/FishCloud.xml @@ -1,117 +1,132 @@ - - FishCloud - - FishCloud.rel - - - - - true - - - - - 20.0 - - - 3.0 - - - 2.0 - - - 0.4 - - - 0.9 - - - 1.0 - - - 1.0 - - - 0.4 - - - 0.2 - - - 0.0 - - - 0.0 - - - 0.0 - - - 30.0 - - - 0.1 - - - 0.1 - - - 0.5 - - - 3 - - - 1.0, 1.0, 1.0, 1.0 - - - false - - - 0.0 - - - - 0 - - - - 0 - - - -1 - - - 0 - - - -1 - - - 0 - - - - true - - - - - - - - - - - - - - 0xE25FB08C - 0x7990A3B6 - - enabled - volume - - - + + + FishCloud.rel + + + FishCloud + + + + true + + + + CMDL + + + + + 20.0 + + + 3.0 + + + 2.0 + + + 0.40000001 + + + 0.89999998 + + + 1.0 + + + 1.0 + + + 0.40000001 + + + 0.2 + + + 0.0 + + + 0.0 + + + 0.0 + + + 30.0 + + + 0.1 + + + 0.1 + + + 0.5 + + + 3 + + + + 1.0 + 1.0 + 1.0 + + + + false + + + 0.0 + + + + PART + + + + 0 + + + + PART + + + + 0 + + + -1 + + + 0 + + + -1 + + + 0 + + + 0 + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + + ScaleVolume + BoxShape + diff --git a/templates/mp2demo/Script/FishCloudModifier.xml b/templates/mp2demo/Script/FishCloudModifier.xml index 88f988eb..398d9d8b 100644 --- a/templates/mp2demo/Script/FishCloudModifier.xml +++ b/templates/mp2demo/Script/FishCloudModifier.xml @@ -1,40 +1,35 @@ - - FishCloudModifier - - FishCloud.rel - - - - - true - - - false - - - false - - - 8.0 - - - 0.4 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + FishCloud.rel + + + FishCloudModifier + + + + true + + + false + + + false + + + 8.0 + + + 0.40000001 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/FlyingPirate.xml b/templates/mp2demo/Script/FlyingPirate.xml index 53b624f6..ed24c838 100644 --- a/templates/mp2demo/Script/FlyingPirate.xml +++ b/templates/mp2demo/Script/FlyingPirate.xml @@ -1,192 +1,226 @@ - - FlyingPirate - - FlyingPirate.rel - - - - - - - 360.0 - - - 90.0 - - - 15.0 - - - 40.0 - - - 1.0 - - - 0.5 - - - - - 9 - - - 10.0 - - - 10.0 - - - - - 3.0 - - - - - 300.0 - - - 5.0 - - - - - 6.0 - - - 0.3 - - - - - - 20.0 - - - 20.0 - - - 0 - - - - - - 9 - - - 5.0 - - - - - - - - - 9 - - - 10.0 - - - 5.0 - - - - - - 0.8 - - - 4.0 - - - - - - 9 - - - 20.0 - - - 10.0 - - - 10.0 - - - - - 20.0 - - - 10.0 - - - 10.0 - - - 1000.0 - - - - - 25.0 - - - 0.1 - - - 0.05 - - - - - - - - 25.0 - - - 25.0 - - - 8.0 - - - 2.25 - - - 3.0 - - - -0.1 - - - -0.23 - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + FlyingPirate.rel + + + FlyingPirate + + + + + + 360.0 + + + 90.0 + + + 15.0 + + + 40.0 + + + 1.0 + + + 0.5 + + + + + 0x9 + + + 10.0 + + + 10.0 + + + + + 3.0 + + + + + 300.0 + + + 5.0 + + + + + 6.0 + + + 0.30000001 + + + + + + 20.0 + + + 20.0 + + + 0 + + + + WPSC + + + + + + 0x9 + + + 5.0 + + + + + 0 + + + + WPSC + + + + + + 0x9 + + + 10.0 + + + 5.0 + + + + + + WPSC + + + + 0.80000001 + + + 4.0 + + + + PART + + + + + + 0x9 + + + 20.0 + + + 10.0 + + + 10.0 + + + + + 20.0 + + + 10.0 + + + 10.0 + + + 1000.0 + + + 0 + + + 0 + + + 25.0 + + + 0.1 + + + 0.050000001 + + + + PART + + + + + PART + + + + + PART + + + + 0 + + + 0 + + + 25.0 + + + 25.0 + + + 8.0 + + + 2.25 + + + 3.0 + + + -0.1 + + + -0.23 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/FogVolume.xml b/templates/mp2demo/Script/FogVolume.xml index 36b312d0..3021c51d 100644 --- a/templates/mp2demo/Script/FogVolume.xml +++ b/templates/mp2demo/Script/FogVolume.xml @@ -1,41 +1,45 @@ - - FogVolume - - - - - - - 2.0, 2.0, 2.0 - - - - - - - 0.0 - - - 1.0 - - - 1.0, 1.0, 1.0, 1.0 - - - - - - - - - - - - - - enabled - volume - - - + + + FogVolume + + + + + + + + 2.0 + 2.0 + 2.0 + + + + + + + + 0.0 + + + 1.0 + + + + 1.0 + 1.0 + 1.0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + BoxShape + diff --git a/templates/mp2demo/Script/FrontEndDataNetwork.xml b/templates/mp2demo/Script/FrontEndDataNetwork.xml index 8ca3b1a5..38978dd7 100644 --- a/templates/mp2demo/Script/FrontEndDataNetwork.xml +++ b/templates/mp2demo/Script/FrontEndDataNetwork.xml @@ -1,59 +1,85 @@ - - FrontEndDataNetwork - - ScriptFrontEndDataNetwork.rel - - - - - false - - - false - - - true - - - true - - - false - - - false - - - - - - 1.0, 1.0, 1.0, 1.0 - - - 0.498039, 0.498039, 0.498039, 0.74902 - - - 0.8, 0.8, 0.8, 1.0 - - - 0.247059, 0.247059, 0.247059, 1.0 - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ScriptFrontEndDataNetwork.rel + + + FrontEndDataNetwork + + + + false + + + false + + + true + + + true + + + false + + + false + + + + TXTR + + + + + TXTR + + + + + TXTR + + + + + 1.0 + 1.0 + 1.0 + + + + + 0.49803901 + 0.49803901 + 0.49803901 + 0.74901998 + + + + + 0.80000001 + 0.80000001 + 0.80000001 + + + + + 0.247059 + 0.247059 + 0.247059 + + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/Generator.xml b/templates/mp2demo/Script/Generator.xml index 92fc6952..62aa0497 100644 --- a/templates/mp2demo/Script/Generator.xml +++ b/templates/mp2demo/Script/Generator.xml @@ -1,45 +1,45 @@ - - Generator - - - - 1 - - - false - - - false - - - false - - - 0.0, 0.0, 0.0 - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - script/common/Generator.TXTR - - 0.5 - enabled - enabled - - + + + Generator + + + + 1 + + + false + + + false + + + false + + + + 0.0 + 0.0 + 0.0 + + + + 1.0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2demo/Script/Glowbug.xml b/templates/mp2demo/Script/Glowbug.xml index e6888c13..5ca02b51 100644 --- a/templates/mp2demo/Script/Glowbug.xml +++ b/templates/mp2demo/Script/Glowbug.xml @@ -1,49 +1,69 @@ - - Glowbug - - Glowbug.rel - - - - - - - - - - - 1.0 - - - 1.0 - - - 0.0, 0.0, 0.0 - - - - - false - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Glowbug.rel + + + Glowbug + + + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + 1.0 + + + 1.0 + + + + 0.0 + 0.0 + 0.0 + + + + 0 + + + 0 + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/GrapplePoint.xml b/templates/mp2demo/Script/GrapplePoint.xml index c5964b43..07fd9bb0 100644 --- a/templates/mp2demo/Script/GrapplePoint.xml +++ b/templates/mp2demo/Script/GrapplePoint.xml @@ -1,25 +1,21 @@ - - GrapplePoint - - - - - - - - - - - - - - - - script/common/GrapplePoint.TXTR - - 0.5 - enabled - enabled - - + + + GrapplePoint + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2demo/Script/Grenchler.xml b/templates/mp2demo/Script/Grenchler.xml index feb64497..def269e4 100644 --- a/templates/mp2demo/Script/Grenchler.xml +++ b/templates/mp2demo/Script/Grenchler.xml @@ -1,177 +1,177 @@ - - Grenchler - - Grenchler.rel - - - - - - - 100.0 - - - 1.6 - - - 2.5 - - - 1.0 - - - 1 - - - - - - false - - - - - - -1 - - - -1 - - - 10.0 - - - 25.0 - - - 2.0 - - - 7.0 - - - 2.0 - - - 3.0 - - - 6.0 - - - - - 9 - - - 5.0 - - - - - 9.0 - - - 25.0 - - - 2.0 - - - 3.0 - - - - - - 9 - - - 5.0 - - - - - 45.0 - - - 0.5 - - - 8.0 - - - 2.0 - - - 3.0 - - - 20.0 - - - -1 - - - - - 9 - - - 5.0 - - - - - -1 - - - -1 - - - -1 - - - -1 - - - -1 - - - - -1 - - - 4 - - - 20.0 - - - 20.0 - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0xA18F626B - 0x0ABEF809 - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0x4F3A4566 - - enabled - enabled - - + + + Grenchler.rel + + + Grenchler + + + + + + 100.0 + + + 1.6 + + + 2.5 + + + 1.0 + + + 1 + + + + + + false + + + + + + -1 + + + -1 + + + 10.0 + + + 25.0 + + + 2.0 + + + 7.0 + + + 2.0 + + + 3.0 + + + 6.0 + + + + + 0x9 + + + 5.0 + + + + + 9.0 + + + 25.0 + + + 2.0 + + + 3.0 + + + + ELSC + + + + + + 0x9 + + + 5.0 + + + + + 45.0 + + + 0.5 + + + 8.0 + + + 2.0 + + + 3.0 + + + 20.0 + + + -1 + + + + + 0x9 + + + 5.0 + + + + + -1 + + + -1 + + + -1 + + + -1 + + + -1 + + + + -1 + + + 4 + + + 20.0 + + + 20.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + diff --git a/templates/mp2demo/Script/GuiMenu.xml b/templates/mp2demo/Script/GuiMenu.xml index 679d5b64..5c13fe39 100644 --- a/templates/mp2demo/Script/GuiMenu.xml +++ b/templates/mp2demo/Script/GuiMenu.xml @@ -1,42 +1,37 @@ - - GuiMenu - - ScriptGui.rel - - - - - - false - - - - - - 0 - - - true - - - 1 - never - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ScriptGui.rel + + + GuiMenu + + + + + false + + + + + + 0 + + + true + + + Never + 1 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/GuiScreen.xml b/templates/mp2demo/Script/GuiScreen.xml index 5936ae37..33cd6298 100644 --- a/templates/mp2demo/Script/GuiScreen.xml +++ b/templates/mp2demo/Script/GuiScreen.xml @@ -1,28 +1,23 @@ - - GuiScreen - - ScriptGui.rel - - - - - 0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ScriptGui.rel + + + GuiScreen + + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/GuiSlider.xml b/templates/mp2demo/Script/GuiSlider.xml index e0fe00d4..0bef4fac 100644 --- a/templates/mp2demo/Script/GuiSlider.xml +++ b/templates/mp2demo/Script/GuiSlider.xml @@ -1,47 +1,42 @@ - - GuiSlider - - ScriptGui.rel - - - - - - false - - - - - - 0.0 - - - 0.0 - - - 8.0 - - - 1.0 - - - 1 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ScriptGui.rel + + + GuiSlider + + + + + false + + + + + + 0.0 + + + 0.0 + + + 8.0 + + + 1.0 + + + 1 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/GuiWidget.xml b/templates/mp2demo/Script/GuiWidget.xml index 2e450628..6c5f202c 100644 --- a/templates/mp2demo/Script/GuiWidget.xml +++ b/templates/mp2demo/Script/GuiWidget.xml @@ -1,36 +1,31 @@ - - GuiWidget - - ScriptGui.rel - - - - - - false - - - - - - 1 - never - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ScriptGui.rel + + + GuiWidget + + + + + false + + + + + + Never + 1 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/GunTurretBase.xml b/templates/mp2demo/Script/GunTurretBase.xml index e8c8e352..890b12a1 100644 --- a/templates/mp2demo/Script/GunTurretBase.xml +++ b/templates/mp2demo/Script/GunTurretBase.xml @@ -1,137 +1,167 @@ - - GunTurretBase - - GunTurret.rel - - - - - - - 9 - - - 5.0 - - - - - 2.0 - - - 180.0 - - - 180.0 - - - 2.0 - - - 2.0 - - - 1.0 - - - 1.0 - - - 1 - - - 1 - - - 85.0 - - - -45.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 1.0 - - - 1.0 - - - 1.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - false - - - false - - - false - - - false - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + GunTurret.rel + + + GunTurretBase + + + + + + 0x9 + + + 5.0 + + + + + 2.0 + + + 180.0 + + + 180.0 + + + 2.0 + + + 2.0 + + + 1.0 + + + 1.0 + + + 1 + + + 1 + + + 85.0 + + + -45.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 1.0 + + + 1.0 + + + 1.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + false + + + false + + + false + + + false + + + + CRSC + + + + + WPSC + + + + -1 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/GunTurretTop.xml b/templates/mp2demo/Script/GunTurretTop.xml index feed412e..9ed2d738 100644 --- a/templates/mp2demo/Script/GunTurretTop.xml +++ b/templates/mp2demo/Script/GunTurretTop.xml @@ -1,50 +1,63 @@ - - GunTurretTop - - GunTurret.rel - - - - - 0.5 - - - 0.5 - - - - - -1 - - - -1 - - - 1.0, 1.0, 1.0, 0.0 - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + GunTurret.rel + + + GunTurretTop + + + + 0.5 + + + 0.5 + + + + PART + + + + + PART + + + + -1 + + + -1 + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + 0 + + + 0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/HUDMemo.xml b/templates/mp2demo/Script/HUDMemo.xml index 2097d8f1..dd72398f 100644 --- a/templates/mp2demo/Script/HUDMemo.xml +++ b/templates/mp2demo/Script/HUDMemo.xml @@ -1,49 +1,49 @@ - - HUDMemo - - - - 3.0 - - - true - - - true - - - true - - - true - - - true - - - false - - - 0 - - - - - - - - - - - - - - - script/common/HUDMemo.TXTR - - 0.5 - enabled - enabled - - + + + HUDMemo + + + + 3.0 + + + true + + + true + + + true + + + true + + + true + + + false + + + 0 + + + + STRG + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2demo/Script/Ing.xml b/templates/mp2demo/Script/Ing.xml index 3be7d98c..10ae622a 100644 --- a/templates/mp2demo/Script/Ing.xml +++ b/templates/mp2demo/Script/Ing.xml @@ -1,244 +1,322 @@ - - Ing - - GeomBlobV2.rel - Ing.rel - - - - - - - 360.0 - - - 0.0 - - - - - 150.0 - - - - - 1 - - - - - - 0 - - - - 50.0 - - - 15.0 - - - 7.0 - - - 25.0 - - - 25.0 - - - 360.0 - - - - - - - - - - - - - - 0.35 - - - - 15.0 - - - - - - - 15.0 - - - 1.5 - - - 2.0 - - - 25.0 - - - 10.0 - - - - - 9 - - - 20.0 - - - 10.0 - - - - - - - 9 - - - 20.0 - - - 5.0 - - - - - 20.0 - - - 5.0 - - - - 25.0 - - - 2.0 - - - 20.0 - - - 40.0 - - - - - 40.0 - - - 100.0 - - - - - - - 9 - - - 20.0 - - - 10.0 - - - - - - - 500.0 - - - 4.0 - - - 1.0 - - - 20.0 - - - 0.25 - - - 2.0 - - - 0.498039, 0.498039, 0.498039, 0.498039 - - - 0.6, 0.6, 0.0, 0.498039 - - - - - 30.0 - - - - - 9 - - - 10.0 - - - 1.0 - - - - - 30.0 - - - - - 10.0 - - - 20.0 - - - 10.0 - - - 1.0, 1.0, 1.0, 1.0 - - - 5.0 - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + GeomBlobV2.rel + Ing.rel + + + Ing + + + + + + 360.0 + + + 0.0 + + + + + 150.0 + + + + + 1 + + + + + + 0 + + + + CMDL + + + + 50.0 + + + 15.0 + + + 7.0 + + + 25.0 + + + 25.0 + + + 360.0 + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + SRSC + + + + + PART + + + + 0.34999999 + + + + PART + + + + 15.0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 15.0 + + + 1.5 + + + 2.0 + + + 25.0 + + + 10.0 + + + + + 0x9 + + + 20.0 + + + 10.0 + + + + + + + 0x9 + + + 20.0 + + + 5.0 + + + + + 20.0 + + + 5.0 + + + + PART + + + + 25.0 + + + 2.0 + + + 20.0 + + + 40.0 + + + 0 + + + 0 + + + 40.0 + + + 100.0 + + + + PART + + + + 0 + + + + + 0x9 + + + 20.0 + + + 10.0 + + + + + + + 500.0 + + + 4.0 + + + 1.0 + + + 20.0 + + + 0.25 + + + 2.0 + + + + 0.49803901 + 0.49803901 + 0.49803901 + 0.49803901 + + + + + 0.60000002 + 0.60000002 + 0.0 + 0.49803901 + + + + + + 30.0 + + + + + 0x9 + + + 10.0 + + + 1.0 + + + + + 30.0 + + + 0 + + + 0 + + + 10.0 + + + 20.0 + + + 10.0 + + + + 1.0 + 1.0 + 1.0 + + + + 5.0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/IngSnatchingSwarm.xml b/templates/mp2demo/Script/IngSnatchingSwarm.xml index e83b5384..a4e42cd3 100644 --- a/templates/mp2demo/Script/IngSnatchingSwarm.xml +++ b/templates/mp2demo/Script/IngSnatchingSwarm.xml @@ -1,85 +1,102 @@ - - IngSnatchingSwarm - - IngSnatchingSwarm.rel - - - - - - - 0.5 - - - - 0.35 - - - 15.0 - - - 25.0 - - - 10.0 - - - 2000.0 - - - 0.5 - - - 4.0 - - - 10.0 - - - 3.0 - - - 2.0 - - - 5.0 - - - - - - 9 - - - 20.0 - - - 10.0 - - - - - - - - 50.0 - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + IngSnatchingSwarm.rel + + + IngSnatchingSwarm + + + + + AFSM + + + + + SRSC + + + + 0.5 + + + + PART + + + + 0.34999999 + + + 15.0 + + + 25.0 + + + 10.0 + + + 2000.0 + + + 0.5 + + + 4.0 + + + 10.0 + + + 3.0 + + + 2.0 + + + 5.0 + + + + PART + + + + + + 9 + + + 20.0 + + + 10.0 + + + + + 0 + + + 0 + + + 0 + + + 50.0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/IngSpaceJumpGuardian.xml b/templates/mp2demo/Script/IngSpaceJumpGuardian.xml index 6cb4bcf6..8f6d7010 100644 --- a/templates/mp2demo/Script/IngSpaceJumpGuardian.xml +++ b/templates/mp2demo/Script/IngSpaceJumpGuardian.xml @@ -1,112 +1,49 @@ - - IngSpaceJumpGuardian - - GeomBlobV2.rel - Ing.rel - IngSpaceJumpGuardian.rel - - - - - - - 360.0 - - - 0.0 - - - - - 150.0 - - - - - 1 - - - - - - - - 10.0 - - - 50.0 - - - 1.0, 1.0, 1.0, 1.0 - - - 5.0 - - - - - - - 9 - - - 20.0 - - - 10.0 - - - - - - - 500.0 - - - 4.0 - - - 1.0 - - - 20.0 - - - 0.25 - - - 2.0 - - - 0.498039, 0.498039, 0.498039, 0.498039 - - - 0.6, 0.6, 0.0, 0.498039 - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + GeomBlobV2.rel + Ing.rel + IngSpaceJumpGuardian.rel + + + IngSpaceJumpGuardian + + + + + + 360.0 + + + 0.0 + + + + + 150.0 + + + + + 1 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/Kralee.xml b/templates/mp2demo/Script/Kralee.xml index ba645146..c8cfa5aa 100644 --- a/templates/mp2demo/Script/Kralee.xml +++ b/templates/mp2demo/Script/Kralee.xml @@ -1,156 +1,162 @@ - - Kralee - - WallCrawler.rel - Kralee.rel - - - - - 0 - - - - - 25.0 - - - 3.0 - - - 720.0 - - - 5.0 - - - 5.0 - - - 90.0 - - - 4.0 - - - 20.0 - - - - - 9 - - - 10.0 - - - 5.0 - - - - - 3.0 - - - 0.2 - - - 5.0 - - - 0.0 - - - - - - 2.5 - - - 2.5 - - - 360.0 - - - 180.0 - - - 120.0 - - - 0.4 - - - 1.0 - - - 0.02 - - - 1.0 - - - 1.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 2.5 - - - 10.0 - - - 10.0 - - - 1.0 - - - 50.0 - - - - - - -1 - - - false - - - false - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + WallCrawler.rel + Kralee.rel + + + Kralee + + + + 0 + + + + + 25.0 + + + 3.0 + + + 720.0 + + + 5.0 + + + 5.0 + + + 90.0 + + + 4.0 + + + 20.0 + + + + + 0x9 + + + 10.0 + + + 5.0 + + + + + 3.0 + + + 0.2 + + + 5.0 + + + 0.0 + + + + + + 2.5 + + + 2.5 + + + 360.0 + + + 180.0 + + + 120.0 + + + 0.40000001 + + + 1.0 + + + 0.02 + + + 1.0 + + + 1.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 2.5 + + + 10.0 + + + 10.0 + + + 1.0 + + + 50.0 + + + + PART + + + + + PART + + + + 0 + + + -1 + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/Krocuss.xml b/templates/mp2demo/Script/Krocuss.xml index 2f5fc372..94b3247b 100644 --- a/templates/mp2demo/Script/Krocuss.xml +++ b/templates/mp2demo/Script/Krocuss.xml @@ -1,140 +1,144 @@ - - Krocuss - - WallCrawler.rel - Krocuss.rel - - - - - 0 - - - - - 25.0 - - - 3.0 - - - 720.0 - - - 5.0 - - - 5.0 - - - 90.0 - - - 4.0 - - - 20.0 - - - - - 9 - - - 10.0 - - - 5.0 - - - - - 3.0 - - - 0.2 - - - 5.0 - - - 0.0 - - - - - - 2.5 - - - 2.5 - - - 360.0 - - - 180.0 - - - 120.0 - - - 0.4 - - - 1.0 - - - 0.02 - - - 1.0 - - - 50.0 - - - false - - - 1.0 - - - 1.0 - - - 1.0 - - - 1.0 - - - 1.0 - - - - 1.0, 0.0, 0.0, 1.0 - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + WallCrawler.rel + Krocuss.rel + + + Krocuss + + + + 0 + + + + + 25.0 + + + 3.0 + + + 720.0 + + + 5.0 + + + 5.0 + + + 90.0 + + + 4.0 + + + 20.0 + + + + + 0x9 + + + 10.0 + + + 5.0 + + + + + 3.0 + + + 0.2 + + + 5.0 + + + 0.0 + + + + + + 2.5 + + + 2.5 + + + 360.0 + + + 180.0 + + + 120.0 + + + 0.40000001 + + + 1.0 + + + 0.02 + + + 1.0 + + + 50.0 + + + false + + + 1.0 + + + 1.0 + + + 1.0 + + + 1.0 + + + 1.0 + + + + + 1.0 + 0.0 + 0.0 + + + + + DPSC + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/Lumite.xml b/templates/mp2demo/Script/Lumite.xml index 03bf93b6..50b57966 100644 --- a/templates/mp2demo/Script/Lumite.xml +++ b/templates/mp2demo/Script/Lumite.xml @@ -1,85 +1,97 @@ - - Lumite - - Lumite.rel - - - - - - - 100.0 - - - 0.1 - - - 0.1 - - - 1.0 - - - 1 - - - - - - 8.0 - - - 30.0 - - - - - - 9 - - - 5.0 - - - - - 8.0 - - - 30.0 - - - - - - 9 - - - 5.0 - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Lumite.rel + + + Lumite + + + + + + 100.0 + + + 0.1 + + + 0.1 + + + 1.0 + + + 1 + + + + + + 8.0 + + + 30.0 + + + + WPSC + + + + + + 0x9 + + + 5.0 + + + + + 8.0 + + + 30.0 + + + + WPSC + + + + + + 0x9 + + + 5.0 + + + + + + PART + + + + + PART + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/MediumIng.xml b/templates/mp2demo/Script/MediumIng.xml index e1034ea4..90de0677 100644 --- a/templates/mp2demo/Script/MediumIng.xml +++ b/templates/mp2demo/Script/MediumIng.xml @@ -1,117 +1,123 @@ - - MediumIng - - GeomBlobV2.rel - MediumIng.rel - - - - - - - 360.0 - - - - - 150.0 - - - - - 1 - - - - - 0 - - - - 50.0 - - - 4.0 - - - 10.0 - - - 20.0 - - - - 10.0 - - - - 10.0 - - - - 2.0 - - - 15.0 - - - 30.0 - - - 5.0 - - - 40.0 - - - 1.0 - - - 0.5 - - - - - - - - 25.0 - - - 25.0 - - - 1.0, 1.0, 1.0, 1.0 - - - 2.0 - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7A9F8249 - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0x38CF133B:0xC0BA9E18 - 0x38CF133B:0x6B1FBC3A - - enabled - enabled - - + + + GeomBlobV2.rel + MediumIng.rel + + + MediumIng + + + + + + 360.0 + + + + + 150.0 + + + + + 1 + + + + + 0 + + + + 50.0 + + + 4.0 + + + 10.0 + + + 20.0 + + + + 10.0 + + + + 10.0 + + + + 2.0 + + + 15.0 + + + 30.0 + + + 5.0 + + + 40.0 + + + 1.0 + + + 0.5 + + + + + + + + 25.0 + + + 25.0 + + + + 1.0 + 1.0 + 1.0 + + + + 2.0 + + + + + + PART + + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + diff --git a/templates/mp2demo/Script/MemoryRelay.xml b/templates/mp2demo/Script/MemoryRelay.xml index 41e88c79..91d5063e 100644 --- a/templates/mp2demo/Script/MemoryRelay.xml +++ b/templates/mp2demo/Script/MemoryRelay.xml @@ -1,30 +1,26 @@ - - MemoryRelay - - - - false - - - false - - - - - - - - - - - - - - script/common/MemoryRelay.TXTR - - 0.5 - enabled - enabled - - + + + MemoryRelay + + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2demo/Script/Metaree.xml b/templates/mp2demo/Script/Metaree.xml index 49b28ddb..ae502684 100644 --- a/templates/mp2demo/Script/Metaree.xml +++ b/templates/mp2demo/Script/Metaree.xml @@ -1,100 +1,100 @@ - - Metaree - - Metaree.rel - - - - - - - 240.0 - - - 25.0 - - - 10.0 - - - 45.0 - - - - - 9 - - - 5.0 - - - 1.0 - - - - - - - 100.0 - - - - - 0.3 - - - 0.7 - - - - - - - - 9 - - - 5.0 - - - 5.0 - - - - - 3.0 - - - 0.0, 0.0, 0.0 - - - 5.0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Metaree.rel + + + Metaree + + + + + + 240.0 + + + 25.0 + + + 10.0 + + + 45.0 + + + + + 0x9 + + + 5.0 + + + 1.0 + + + + + + + 100.0 + + + + + 0.30000001 + + + 0.69999999 + + + + + + + + 0x9 + + + 5.0 + + + 5.0 + + + + + 3.0 + + + + 0.0 + 0.0 + 0.0 + + + + 5.0 + + + 0.0 + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/MetroidAlpha.xml b/templates/mp2demo/Script/MetroidAlpha.xml index 6ee8449a..45e164b7 100644 --- a/templates/mp2demo/Script/MetroidAlpha.xml +++ b/templates/mp2demo/Script/MetroidAlpha.xml @@ -1,60 +1,56 @@ - - MetroidAlpha - - Metroid.rel - - - - - - - - - 5.0 - - - 40.0 - - - 1.0 - - - 0.5 - - - 10.0 - - - 1.75 - - - 50.0 - - - 100.0 - - - 0 - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Metroid.rel + + + MetroidAlpha + + + + + + + + 5.0 + + + 40.0 + + + 1.0 + + + 0.5 + + + 10.0 + + + 1.75 + + + 50.0 + + + 100.0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/Midi.xml b/templates/mp2demo/Script/Midi.xml index eba1611c..c696e38e 100644 --- a/templates/mp2demo/Script/Midi.xml +++ b/templates/mp2demo/Script/Midi.xml @@ -1,32 +1,31 @@ - - Midi - - - - - 0.0 - - - 0.0 - - - 127 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Midi + + + + + CSNG + + + + 0.0 + + + 0.0 + + + 127 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/MinorIng.xml b/templates/mp2demo/Script/MinorIng.xml index 1f04292e..c8652a73 100644 --- a/templates/mp2demo/Script/MinorIng.xml +++ b/templates/mp2demo/Script/MinorIng.xml @@ -1,261 +1,82 @@ - - MinorIng - - GeomBlobV2.rel - MinorIng.rel - - - - - - - 4.5 - - - 30.0 - - - 3.0 - - - 4.0 - - - - - - - - 9 - - - 5.0 - - - 3.0 - - - - - - 20.0 - - - 90.0 - - - 2.0 - - - false - - - false - - - false - - - - - - - 9 - - - 10.0 - - - 4.5 - - - 4.0 - - - - - 5.0 - - - 10.0 - - - 15.0 - - - 7.0 - - - 25.0 - - - 360.0 - - - - - - - - - - - - - - - - - - - - 9 - - - 5.0 - - - 1.0 - - - - - - - -1 - - - 4.0 - - - 0.5 - - - 15.0 - - - 20.0 - - - 5 - - - - - 30.0 - - - 2.0 - - - 0 - - - 3 - - - 40.0 - - - true - - - - - - - false - - - 1.8, 1.8, 1.8 - - - 150.0 - - - 0.5 - - - - - 9 - - - 5.0 - - - 1.0 - - - - - - 10.0 - - - 3.0 - - - -1 - - - -1 - - - -1 - - - -1 - - - -1 - - - 1.5 - - - - - 9 - - - 5.0 - - - 1.0 - - - - - 3 - - - 5 - - - 2 - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + GeomBlobV2.rel + MinorIng.rel + + + MinorIng + + + + + + 4.5 + + + 30.0 + + + 3.0 + + + 4.0 + + + + + + + + 0x9 + + + 5.0 + + + 3.0 + + + + + + WPSC + + + + 20.0 + + + 90.0 + + + 2.0 + + + false + + + false + + + false + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/OctapedeSegment.xml b/templates/mp2demo/Script/OctapedeSegment.xml index 09f4a5e9..43584a30 100644 --- a/templates/mp2demo/Script/OctapedeSegment.xml +++ b/templates/mp2demo/Script/OctapedeSegment.xml @@ -1,176 +1,176 @@ - - OctapedeSegment - - WallCrawler.rel - OctapedeSegment.rel - - - - - 0 - - - - - 25.0 - - - 3.0 - - - 720.0 - - - 5.0 - - - 5.0 - - - 90.0 - - - 4.0 - - - 20.0 - - - - - 9 - - - 10.0 - - - 5.0 - - - - - 3.0 - - - 0.2 - - - 5.0 - - - 0.0 - - - - - - 2.5 - - - 2.5 - - - 360.0 - - - 180.0 - - - 120.0 - - - 0.4 - - - 1.0 - - - 0.02 - - - 1.0 - - - 50.0 - - - false - - - 0.0 - - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 1.0 - - - 2.0 - - - 1 - - - 1 - - - 0.75 - - - - - 9 - - - 5.0 - - - 2.0 - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + WallCrawler.rel + OctapedeSegment.rel + + + OctapedeSegment + + + + 0 + + + + + 25.0 + + + 3.0 + + + 720.0 + + + 5.0 + + + 5.0 + + + 90.0 + + + 4.0 + + + 20.0 + + + + + 0x9 + + + 10.0 + + + 5.0 + + + + + 3.0 + + + 0.2 + + + 5.0 + + + 0.0 + + + + + + 2.5 + + + 2.5 + + + 360.0 + + + 180.0 + + + 120.0 + + + 0.40000001 + + + 1.0 + + + 0.02 + + + 1.0 + + + 50.0 + + + false + + + 0.0 + + + + ELSC + + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 1.0 + + + 2.0 + + + 1 + + + 1 + + + 0.75 + + + + + 0x9 + + + 5.0 + + + 2.0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/Parasite.xml b/templates/mp2demo/Script/Parasite.xml index 1aa95240..2781c789 100644 --- a/templates/mp2demo/Script/Parasite.xml +++ b/templates/mp2demo/Script/Parasite.xml @@ -1,141 +1,137 @@ - - Parasite - - WallCrawler.rel - Parasite.rel - - - - - 0 - - - - - 25.0 - - - 3.0 - - - 720.0 - - - 5.0 - - - 5.0 - - - 90.0 - - - 4.0 - - - 20.0 - - - - - 9 - - - 10.0 - - - 5.0 - - - - - 3.0 - - - 0.2 - - - 5.0 - - - 0.0 - - - - - - 10.0 - - - 2.5 - - - 360.0 - - - 180.0 - - - 120.0 - - - 0.2 - - - 0.4 - - - 6.0 - - - 2.6 - - - 1.0 - - - 0.8 - - - 0.7 - - - 0.9 - - - 0.2 - - - 1.3 - - - 0.2 - - - 40.0 - - - false - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + WallCrawler.rel + Parasite.rel + + + Parasite + + + + 0 + + + + + 25.0 + + + 3.0 + + + 720.0 + + + 5.0 + + + 5.0 + + + 90.0 + + + 4.0 + + + 20.0 + + + + + 0x9 + + + 10.0 + + + 5.0 + + + + + 3.0 + + + 0.2 + + + 5.0 + + + 0.0 + + + + + + 10.0 + + + 2.5 + + + 360.0 + + + 180.0 + + + 120.0 + + + 0.2 + + + 0.40000001 + + + 6.0 + + + 2.5999999 + + + 1.0 + + + 0.80000001 + + + 0.69999999 + + + 0.89999998 + + + 0.2 + + + 1.3 + + + 0.2 + + + 40.0 + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/PathCamera.xml b/templates/mp2demo/Script/PathCamera.xml index 6681c836..8c10fd8b 100644 --- a/templates/mp2demo/Script/PathCamera.xml +++ b/templates/mp2demo/Script/PathCamera.xml @@ -1,54 +1,49 @@ - - PathCamera - - - - 32 - - - 0 - - - - - - - - - - false - - - 4.0 - - - 10.0 - - - 3.0 - - - 0 - - - 120.0 - - - - - - - - - - - - - - - - enabled - enabled - - + + + PathCamera + + + + 32 + + + 0 + + + + + + + + + + false + + + 4.0 + + + 10.0 + + + 3.0 + + + 0 + + + 120.0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/mp2demo/Script/PathMeshCtrl.xml b/templates/mp2demo/Script/PathMeshCtrl.xml index f1137906..a9fe1544 100644 --- a/templates/mp2demo/Script/PathMeshCtrl.xml +++ b/templates/mp2demo/Script/PathMeshCtrl.xml @@ -1,28 +1,23 @@ - - PathMeshCtrl - - - - 0 - - - 1 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + PathMeshCtrl + + + + 0 + + + 1 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/Pickup.xml b/templates/mp2demo/Script/Pickup.xml index cdb21406..e7569cea 100644 --- a/templates/mp2demo/Script/Pickup.xml +++ b/templates/mp2demo/Script/Pickup.xml @@ -1,85 +1,97 @@ - - Pickup - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - 0 - - - 1 - - - 1 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - 0.0 - - - - false - - - true - - - false - - - 0.0 - - - 0.0 - - - 20.0 - - - false - - - false - - - - - - - - - - - - - - - 0xE25FB08C - 0xC27FFA8F - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Pickup + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + 0 + + + 1 + + + 1 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + CMDL + + + + + + 0.0 + + + + PART + + + + false + + + true + + + false + + + 0.0 + + + 0.0 + + + 20.0 + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp2demo/Script/PickupGenerator.xml b/templates/mp2demo/Script/PickupGenerator.xml index 23da3405..29291a51 100644 --- a/templates/mp2demo/Script/PickupGenerator.xml +++ b/templates/mp2demo/Script/PickupGenerator.xml @@ -1,34 +1,34 @@ - - PickupGenerator - - - - 0.0, 0.0, 0.0 - - - 0.0 - never - - - -1 - - - - - - - - - - - - - - script/common/PickupGenerator.TXTR - - 0.5 - enabled - enabled - - + + + PickupGenerator + + + + + 0.0 + 0.0 + 0.0 + + + + Never + 0.0 + + + -1 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2demo/Script/PillBug.xml b/templates/mp2demo/Script/PillBug.xml index 4bae0b5d..a2c23c28 100644 --- a/templates/mp2demo/Script/PillBug.xml +++ b/templates/mp2demo/Script/PillBug.xml @@ -1,76 +1,72 @@ - - PillBug - - WallCrawler.rel - PillBug.rel - - - - - - - 0 - - - 120.0 - - - 0.2 - - - 1.5 - - - 200.0 - - - - - 0.35 - - - 0.5 - - - 0.5 - - - 0.02 - - - 0.3 - - - 0.6 - - - 1.5 - - - 0.6 - - - 1.5 - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + WallCrawler.rel + PillBug.rel + + + PillBug + + + + + + 0 + + + 120.0 + + + 0.2 + + + 1.5 + + + 200.0 + + + + + 0.34999999 + + + 0.5 + + + 0.5 + + + 0.02 + + + 0.30000001 + + + 0.60000002 + + + 1.5 + + + 0.60000002 + + + 1.5 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/Platform.xml b/templates/mp2demo/Script/Platform.xml index 295f26ac..aebdd241 100644 --- a/templates/mp2demo/Script/Platform.xml +++ b/templates/mp2demo/Script/Platform.xml @@ -1,76 +1,75 @@ - - Platform - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - - - - - - - 1.0 - - - 200 - - - 20 - - - false - - - - - - - 10.0 - - - 0.0 - - - 288 - - - - - - - - 0.0, 0.15, 0.0 - - - 0.0 - - - - - - - - - - - - - - - 0xE25FB08C - 0xC27FFA8F - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0x0FC966DC - - enabled - enabled - - + + + Platform + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + CMDL + + + + + + + DCLN + + + + + + 1.0 + + + 200 + + + 20 + + + false + + + + + 0.0 + 0.15000001 + 0.0 + + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + diff --git a/templates/mp2demo/Script/PlayerActor.xml b/templates/mp2demo/Script/PlayerActor.xml index 3a534ca6..f9325147 100644 --- a/templates/mp2demo/Script/PlayerActor.xml +++ b/templates/mp2demo/Script/PlayerActor.xml @@ -1,61 +1,65 @@ - - PlayerActor - - ScriptPlayerActor.rel - - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - 1.0 - - - 0.0 - - - - - - - - true - - - true - - - true - - - 4 - - - 0 - - - - - - - - - - - - - - - 0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + ScriptPlayerActor.rel + + + PlayerActor + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + 1.0 + + + 0.0 + + + + + + + + true + + + true + + + true + + + 4 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/PlayerController.xml b/templates/mp2demo/Script/PlayerController.xml index 5b5dbf1e..ec4bb4e5 100644 --- a/templates/mp2demo/Script/PlayerController.xml +++ b/templates/mp2demo/Script/PlayerController.xml @@ -1,68 +1,80 @@ - - PlayerController - - ScriptPlayerProxy.rel - - - - - - - - 2.0, 2.0, 2.0 - - - - - - - 0 - - - - - - 0 - - - 0.0, 0.0, 1.5 - - - 0 - - - 0 - - - 0.0 - - - 0.0 - - - 0.0, 0.0, 0.0 - - - - - - - - - - - - - - - - 0xE25FB08C - 0xC27FFA8F - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + ScriptPlayerProxy.rel + + + PlayerController + + + + + + + + 2.0 + 2.0 + 2.0 + + + + + + + + 0 + + + + CMDL + + + + + + 0 + + + + 0.0 + 0.0 + 1.5 + + + + 0 + + + 0 + + + 0.0 + + + 0.0 + + + + 0.0 + 0.0 + 0.0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp2demo/Script/PlayerHint.xml b/templates/mp2demo/Script/PlayerHint.xml index 7698823b..89cab476 100644 --- a/templates/mp2demo/Script/PlayerHint.xml +++ b/templates/mp2demo/Script/PlayerHint.xml @@ -1,31 +1,26 @@ - - PlayerHint - - - - 1 - - - 10 - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + PlayerHint + + + + 1 + + + 10 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/PlayerStateChange.xml b/templates/mp2demo/Script/PlayerStateChange.xml index e8e2a98e..0bf91124 100644 --- a/templates/mp2demo/Script/PlayerStateChange.xml +++ b/templates/mp2demo/Script/PlayerStateChange.xml @@ -1,37 +1,32 @@ - - PlayerStateChange - - - - 0 - - - 1 - - - 1 - - - 0 - - - 0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + PlayerStateChange + + + + 0 + + + 1 + + + 1 + + + 0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/PlayerTurret.xml b/templates/mp2demo/Script/PlayerTurret.xml index 7e95a81a..4e029b48 100644 --- a/templates/mp2demo/Script/PlayerTurret.xml +++ b/templates/mp2demo/Script/PlayerTurret.xml @@ -1,70 +1,58 @@ - - PlayerTurret - - ScriptPlayerTurret.rel - - - - - 1 - - - 90.0 - - - 90.0 - - - 90.0 - - - 0.0 - - - 30.0 - - - 30.0 - - - 30.0 - - - 1.0 - - - - - 0 - - - 10.0 - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ScriptPlayerTurret.rel + + + PlayerTurret + + + + 1 + + + 90.0 + + + 90.0 + + + 90.0 + + + 0.0 + + + 30.0 + + + 30.0 + + + 30.0 + + + 1.0 + + + + + WPSC + + + + + WPSC + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/PointOfInterest.xml b/templates/mp2demo/Script/PointOfInterest.xml index d8463373..66084c85 100644 --- a/templates/mp2demo/Script/PointOfInterest.xml +++ b/templates/mp2demo/Script/PointOfInterest.xml @@ -1,31 +1,27 @@ - - PointOfInterest - - - - - 1.5 - - - false - - - - - - - - - - - - - - script/common/PointOfInterest.TXTR - - 0.5 - enabled - enabled - - + + + PointOfInterest + + + + + 1.5 + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2demo/Script/Puffer.xml b/templates/mp2demo/Script/Puffer.xml index 72f92091..2a9fb5bc 100644 --- a/templates/mp2demo/Script/Puffer.xml +++ b/templates/mp2demo/Script/Puffer.xml @@ -1,100 +1,106 @@ - - Puffer - - Puffer.rel - - - - - - - 25.0 - - - 720.0 - - - 5.0 - - - 5.0 - - - 90.0 - - - 4.0 - - - 20.0 - - - - - 9 - - - 10.0 - - - 5.0 - - - - - 1.0 - - - 0.5 - - - 1.5 - - - 0.0 - - - - - - 3.0 - - - - - - 0.5 - - - true - - - false - - - false - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Puffer.rel + + + Puffer + + + + + + 25.0 + + + 720.0 + + + 5.0 + + + 5.0 + + + 90.0 + + + 4.0 + + + 20.0 + + + + + 0x9 + + + 10.0 + + + 5.0 + + + + + 1.0 + + + 0.5 + + + 1.5 + + + 0.0 + + + + + + 3.0 + + + + PART + + + + + + TXTR + + + + 0.5 + + + true + + + false + + + false + + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/RadialDamage.xml b/templates/mp2demo/Script/RadialDamage.xml index 7d2bfda0..cbc897cf 100644 --- a/templates/mp2demo/Script/RadialDamage.xml +++ b/templates/mp2demo/Script/RadialDamage.xml @@ -1,28 +1,24 @@ - - RadialDamage - - - - - 15.0 - - - - - - - - - - - - - - script/common/RadialDamage.TXTR - - 0.5 - enabled - enabled - - + + + RadialDamage + + + + + 15.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2demo/Script/RandomRelay.xml b/templates/mp2demo/Script/RandomRelay.xml index 39496a7e..fc8bc7b4 100644 --- a/templates/mp2demo/Script/RandomRelay.xml +++ b/templates/mp2demo/Script/RandomRelay.xml @@ -1,36 +1,32 @@ - - RandomRelay - - - - 1 - - - 0 - - - false - - - false - - - - - - - - - - - - - - script/common/RandomRelay.TXTR - - 0.5 - enabled - enabled - - + + + RandomRelay + + + + 1 + + + 0 + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2demo/Script/Relay.xml b/templates/mp2demo/Script/Relay.xml index dd23d686..431f2818 100644 --- a/templates/mp2demo/Script/Relay.xml +++ b/templates/mp2demo/Script/Relay.xml @@ -1,27 +1,23 @@ - - Relay - - - - false - - - - - - - - - - - - - - script/common/Relay.TXTR - - 0.5 - enabled - enabled - - + + + Relay + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2demo/Script/Repulsor.xml b/templates/mp2demo/Script/Repulsor.xml index 199255b4..76a0c649 100644 --- a/templates/mp2demo/Script/Repulsor.xml +++ b/templates/mp2demo/Script/Repulsor.xml @@ -1,31 +1,26 @@ - - Repulsor - - - - 0 - - - 1.0 - - - -1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Repulsor + + + + 0 + + + 1.0 + + + -1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/Rezbit.xml b/templates/mp2demo/Script/Rezbit.xml index 41a3b0cf..90d6c872 100644 --- a/templates/mp2demo/Script/Rezbit.xml +++ b/templates/mp2demo/Script/Rezbit.xml @@ -1,145 +1,48 @@ - - Rezbit - - Rezbit.rel - - - - - - - 360.0 - - - 0.0 - - - - - 150.0 - - - - - 1 - - - - - - - - 20.0 - - - 10.0 - - - - - 20.0 - - - 40.0 - - - 10.0 - - - - - 9 - - - 20.0 - - - 5.0 - - - - - -1 - - - 20.0 - - - 40.0 - - - 10.0 - - - - - 9 - - - 20.0 - - - 5.0 - - - - - - 4.0 - - - 2.0 - - - - - 500.0 - - - 4.0 - - - 1.0 - - - 20.0 - - - 0.25 - - - 2.0 - - - 0.498039, 0.498039, 0.498039, 0.498039 - - - 0.6, 0.6, 0.0, 0.498039 - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0x8716D656:0xC80BB6E4 - - enabled - enabled - - + + + Rezbit.rel + + + Rezbit + + + + + + 360.0 + + + 0.0 + + + + + 150.0 + + + + + 1 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp2demo/Script/RiftPortal.xml b/templates/mp2demo/Script/RiftPortal.xml index acdd6aad..d414136d 100644 --- a/templates/mp2demo/Script/RiftPortal.xml +++ b/templates/mp2demo/Script/RiftPortal.xml @@ -1,47 +1,58 @@ - - RiftPortal - - ScriptRiftPortal.rel - - - - - - - - - - - - - false - - - 0 - - - 10.0 - - - 30.0 - - - 5.0 - - - - - - - - - - - - - - enabled - enabled - - + + + ScriptRiftPortal.rel + + + RiftPortal + + + + + CMDL + + + + + + CMDL + + + + + + CMDL + + + + + + CMDL + + + + + false + + + 0 + + + 10.0 + + + 30.0 + + + 5.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/mp2demo/Script/Ripper.xml b/templates/mp2demo/Script/Ripper.xml index f7141211..0391037c 100644 --- a/templates/mp2demo/Script/Ripper.xml +++ b/templates/mp2demo/Script/Ripper.xml @@ -1,41 +1,37 @@ - - Ripper - - Ripper.rel - - - - - 0 - - - - - 10.0 - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Ripper.rel + + + Ripper + + + + 0 + + + + + 10.0 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/Ripple.xml b/templates/mp2demo/Script/Ripple.xml index d25bdad2..706dead5 100644 --- a/templates/mp2demo/Script/Ripple.xml +++ b/templates/mp2demo/Script/Ripple.xml @@ -1,25 +1,20 @@ - - Ripple - - - - -0.1 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Ripple + + + + -0.1 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/RoomAcoustics.xml b/templates/mp2demo/Script/RoomAcoustics.xml index 55eb211d..846107da 100644 --- a/templates/mp2demo/Script/RoomAcoustics.xml +++ b/templates/mp2demo/Script/RoomAcoustics.xml @@ -1,139 +1,134 @@ - - RoomAcoustics - - - - 117 - - - false - - - false - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - false - - - 0.0 - - - 0.0 - - - 0.0 - - - false - - - false - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - false - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - false - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RoomAcoustics + + + + 117 + + + false + + + false + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + false + + + 0.0 + + + 0.0 + + + 0.0 + + + false + + + false + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + false + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + false + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/RsfAudio.xml b/templates/mp2demo/Script/RsfAudio.xml index cc216af3..fd3070c3 100644 --- a/templates/mp2demo/Script/RsfAudio.xml +++ b/templates/mp2demo/Script/RsfAudio.xml @@ -1,41 +1,36 @@ - - RsfAudio - - ScriptRsfAudio.rel - - - - - - 0 - - - 0 - - - 0.25 - - - 0.25 - - - 127 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ScriptRsfAudio.rel + + + RsfAudio + + + + + 0 + + + 0 + + + 0.25 + + + 0.25 + + + 127 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/RumbleEffect.xml b/templates/mp2demo/Script/RumbleEffect.xml index ec927e2f..0c6a4546 100644 --- a/templates/mp2demo/Script/RumbleEffect.xml +++ b/templates/mp2demo/Script/RumbleEffect.xml @@ -1,31 +1,26 @@ - - RumbleEffect - - - - 20.0 - - - 0 - - - 0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RumbleEffect + + + + 20.0 + + + 0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/SafeZone.xml b/templates/mp2demo/Script/SafeZone.xml index 356f4ecd..dac7ffe9 100644 --- a/templates/mp2demo/Script/SafeZone.xml +++ b/templates/mp2demo/Script/SafeZone.xml @@ -1,69 +1,73 @@ - - SafeZone - - ScriptSafeZone.rel - - - - - - false - - - false - - - 0.15 - - - 0.15 - - - 0.0 - - - 0.0 - - - - true - - - 300 - - - false - - - - - - 1.0, 1.0, 0.0, 1.0 - - - - - - - 18 - - - - - - - - - - - - - - - - enabled - volume - - - + + + ScriptSafeZone.rel + + + SafeZone + + + + + false + + + false + + + 0.15000001 + + + 0.15000001 + + + 0.0 + + + 0.0 + + + + PART + + + + true + + + 300 + + + false + + + + + + + 1.0 + 1.0 + 0.0 + + + + + + + + 18 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + EllipsoidShape + diff --git a/templates/mp2demo/Script/SandBoss.xml b/templates/mp2demo/Script/SandBoss.xml index 60166e1a..3886fa77 100644 --- a/templates/mp2demo/Script/SandBoss.xml +++ b/templates/mp2demo/Script/SandBoss.xml @@ -1,269 +1,339 @@ - - SandBoss - - SandBoss.rel - - - - - - - 60.0 - - - 12.0 - - - 37.0 - - - - - 150.0 - - - - - 2 - - - - - - - 0 - - - - - - 0.498039, 0.498039, 0.0, 1.0 - - - 0.498039, 0.0, 0.0, 1.0 - - - 1.0 - - - 1.0 - - - 100.0 - - - -1 - - - -1 - - - -1 - - - - - 9 - - - 20.0 - - - 10.0 - - - - - - - 9 - - - 20.0 - - - 10.0 - - - - - - - 9 - - - 20.0 - - - 10.0 - - - - - 4.0 - - - -1 - - - - - 9 - - - 20.0 - - - 10.0 - - - - - - - 9 - - - 20.0 - - - 10.0 - - - - - 10.0 - - - 25.0 - - - 50.0 - - - 4.0 - - - 200.0 - - - 0.3 - - - -1 - - - - - 9 - - - 20.0 - - - 10.0 - - - - - 20.0 - - - 25.0 - - - 50.0 - - - 5.0 - - - 200.0 - - - 0.3 - - - -1 - - - - - 500.0 - - - 1.0 - - - 4.0 - - - 1.0 - - - 20.0 - - - 0.25 - - - 2.0 - - - 0.498039, 0.498039, 0.498039, 0.498039 - - - 0.6, 0.6, 0.0, 0.498039 - - - - - 100.0 - - - 10.0 - - - 15.0 - - - 5.0 - - - - - - - - - - - - - -1 - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + SandBoss.rel + + + SandBoss + + + + + + 60.0 + + + 12.0 + + + 37.0 + + + + + 150.0 + + + + + 2 + + + + + + + SCAN + + + + 0 + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + 0.49803901 + 0.49803901 + 0.0 + + + + + 0.49803901 + 0.0 + 0.0 + + + + 1.0 + + + 1.0 + + + 100.0 + + + -1 + + + -1 + + + -1 + + + + + 0x9 + + + 20.0 + + + 10.0 + + + + + + + 0x9 + + + 20.0 + + + 10.0 + + + + + + + 0x9 + + + 20.0 + + + 10.0 + + + + + 4.0 + + + -1 + + + + + 0x9 + + + 20.0 + + + 10.0 + + + + + + + 0x9 + + + 20.0 + + + 10.0 + + + + + 10.0 + + + 25.0 + + + 50.0 + + + 4.0 + + + 200.0 + + + 0.30000001 + + + -1 + + + + + 0x9 + + + 20.0 + + + 10.0 + + + + + 20.0 + + + 25.0 + + + 50.0 + + + 5.0 + + + 200.0 + + + 0.30000001 + + + -1 + + + + + 500.0 + + + 1.0 + + + 4.0 + + + 1.0 + + + 20.0 + + + 0.25 + + + 2.0 + + + + 0.49803901 + 0.49803901 + 0.49803901 + 0.49803901 + + + + + 0.60000002 + 0.60000002 + 0.0 + 0.49803901 + + + + + + 100.0 + + + 10.0 + + + 15.0 + + + 5.0 + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + PART + + + + + CMDL + + + + + CSKR + + + + -1 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/Sandworm.xml b/templates/mp2demo/Script/Sandworm.xml index 19e700aa..e2c29094 100644 --- a/templates/mp2demo/Script/Sandworm.xml +++ b/templates/mp2demo/Script/Sandworm.xml @@ -1,165 +1,197 @@ - - Sandworm - - Sandworm.rel - - - - - 0 - - - - - 32.0 - - - 0.5 - - - 1.0 - - - 2 - - - - - - - - - - 9.0 - - - 25.0 - - - - 60.0 - - - 25.0 - - - 30.0 - - - - - - 9 - - - 5.0 - - - - - 500.0 - - - 200.0 - - - 100.0 - - - 100.0 - - - 30.0 - - - 15.0 - - - - - 9 - - - 5.0 - - - - - - - 9 - - - 5.0 - - - - - 25.0 - - - 2.0 - - - 5.0 - - - 6.0 - - - 20.0 - - - false - - - - - - - - - 9 - - - 5.0 - - - - - 0.0 - - - 10.0 - - - 10.0 - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0x66E34A08 - 0x5F3F29E3 - 0xE61748ED:0xAD54DA11 - - enabled - enabled - - + + + Sandworm.rel + + + Sandworm + + + + 0 + + + + + 32.0 + + + 0.5 + + + 1.0 + + + 2 + + + + + + 0 + + + 0 + + + + CMDL + + + + + CMDL + + + + 9.0 + + + 25.0 + + + + PART + + + + 60.0 + + + 25.0 + + + 30.0 + + + + WPSC + + + + + + 0x9 + + + 5.0 + + + + + 500.0 + + + 200.0 + + + 100.0 + + + 100.0 + + + 30.0 + + + 15.0 + + + + + 0x9 + + + 5.0 + + + + + + + 0x9 + + + 5.0 + + + + + 25.0 + + + 2.0 + + + 5.0 + + + 6.0 + + + 20.0 + + + false + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + + 0x9 + + + 5.0 + + + + + 0.0 + + + 10.0 + + + 10.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + diff --git a/templates/mp2demo/Script/SequenceTimer.xml b/templates/mp2demo/Script/SequenceTimer.xml index 4be01a6d..964e5c4c 100644 --- a/templates/mp2demo/Script/SequenceTimer.xml +++ b/templates/mp2demo/Script/SequenceTimer.xml @@ -1,48 +1,32 @@ - - SequenceTimer - - - - Connection - - - 0 - - - - - 0.0 - - - - - - - 0.0 - - - false - - - false - - - - - - - - - - - - - - script/common/SequenceTimer.TXTR - - 0.5 - enabled - enabled - - + + + SequenceTimer + + + + + + + 0.0 + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2demo/Script/ShadowProjector.xml b/templates/mp2demo/Script/ShadowProjector.xml index cb61e07b..a158d813 100644 --- a/templates/mp2demo/Script/ShadowProjector.xml +++ b/templates/mp2demo/Script/ShadowProjector.xml @@ -1,43 +1,42 @@ - - ShadowProjector - - - - 1.0 - - - 0.0, 0.0, 0.0 - - - 100.0 - - - 0.5 - - - 1.0 - - - false - - - 128 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ShadowProjector + + + + 1.0 + + + + 0.0 + 0.0 + 0.0 + + + + 100.0 + + + 0.5 + + + 1.0 + + + false + + + 128 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/Shredder.xml b/templates/mp2demo/Script/Shredder.xml index 1cc7e0ed..99d959db 100644 --- a/templates/mp2demo/Script/Shredder.xml +++ b/templates/mp2demo/Script/Shredder.xml @@ -1,75 +1,34 @@ - - Shredder - - Shredder.rel - - - - - - - 1 - - - - - - - - 10 - - - - 4.0 - - - 4.0 - - - 4.0 - - - 4.0 - - - 5.0 - - - 14.0 - - - 16.0 - - - 20.0 - - - 40.0 - - - 100.0 - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Shredder.rel + + + Shredder + + + + + + 1 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/Shrieker.xml b/templates/mp2demo/Script/Shrieker.xml index 42f6afb0..a86af8b7 100644 --- a/templates/mp2demo/Script/Shrieker.xml +++ b/templates/mp2demo/Script/Shrieker.xml @@ -1,137 +1,149 @@ - - Shrieker - - Shrieker.rel - - - - - - - 4.5 - - - 30.0 - - - 3.0 - - - 4.0 - - - 1 - - - - - - - 0.1 - - - - - 9 - - - 10.0 - - - 4.5 - - - 4.0 - - - - - - - - 9 - - - 5.0 - - - 3.0 - - - - - - - - 9 - - - 10.0 - - - 4.5 - - - 4.0 - - - - - - 1.0 - - - 0.1 - - - 4.0 - - - 0.0 - - - 0.0, 0.0, -1.5 - - - 15.0 - - - 1.0 - - - 3.0 - - - 20.0 - - - 15.0 - - - 10.0 - - - 5.0 - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Shrieker.rel + + + Shrieker + + + + + + 4.5 + + + 30.0 + + + 3.0 + + + 4.0 + + + 1 + + + + + + + 0.1 + + + + + 0x9 + + + 10.0 + + + 4.5 + + + 4.0 + + + + + + PART + + + + + + 0x9 + + + 5.0 + + + 3.0 + + + + + + WPSC + + + + + + 0x9 + + + 10.0 + + + 4.5 + + + 4.0 + + + + + + PART + + + + 1.0 + + + 0.1 + + + 4.0 + + + 0.0 + + + + 0.0 + 0.0 + -1.5 + + + + 15.0 + + + 1.0 + + + 3.0 + + + 20.0 + + + 15.0 + + + 10.0 + + + 5.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/Silhouette.xml b/templates/mp2demo/Script/Silhouette.xml index b80675b6..d41f4204 100644 --- a/templates/mp2demo/Script/Silhouette.xml +++ b/templates/mp2demo/Script/Silhouette.xml @@ -1,47 +1,51 @@ - - Silhouette - - - - - - - 2.0, 2.0, 2.0 - - - - - false - - - - - 0.5 - - - 0.298039, 0.6, 1.0, 0.498039 - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Silhouette + + + + + + + + 2.0 + 2.0 + 2.0 + + + + + + false + + + + + 0.5 + + + + 0.29803899 + 0.60000002 + 1.0 + 0.49803901 + + + + 1.0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/SnakeWeedSwarm.xml b/templates/mp2demo/Script/SnakeWeedSwarm.xml index a0c182d1..638653cb 100644 --- a/templates/mp2demo/Script/SnakeWeedSwarm.xml +++ b/templates/mp2demo/Script/SnakeWeedSwarm.xml @@ -1,87 +1,90 @@ - - SnakeWeedSwarm - - SnakeWeedSwarm.rel - - - - - - - 1.0 - - - 1.0 - - - 0.5 - - - 4.0 - - - 1.0 - - - 2.0 - - - 0.2 - - - 2.5 - - - 1.5 - - - 3.0 - - - 5.0 - - - 1.0 - - - 1.0 - - - 0.0 - - - - - 9 - - - - - 0.0 - - - - - - - - - - - - - - - - - - 0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - volume - - - + + + SnakeWeedSwarm.rel + + + SnakeWeedSwarm + + + + + + 1.0 + + + 1.0 + + + 0.5 + + + 4.0 + + + 1.0 + + + 2.0 + + + 0.2 + + + 2.5 + + + 1.5 + + + 3.0 + + + 5.0 + + + 1.0 + + + 1.0 + + + 0.0 + + + + + 9 + + + + + 0.0 + + + 0 + + + 0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + ScaleVolume + BoxShape + diff --git a/templates/mp2demo/Script/Sound.xml b/templates/mp2demo/Script/Sound.xml index 75634f96..c610a7af 100644 --- a/templates/mp2demo/Script/Sound.xml +++ b/templates/mp2demo/Script/Sound.xml @@ -1,84 +1,73 @@ - - Sound - - - - - 50.0 - - - 0.2 - - - 0.0 - - - 20 - - - 127 - - - 127 - - - 64 - never - - - - - 0.0 - - - 0.0 - - - - - false - - - false - - - false - - - false - - - false - - - true - - - false - - - false - - - 0 - - - - - - - - - - - - - - script/common/Sound.TXTR - - 0.5 - enabled - enabled - - + + + Sound + + + + 0 + + + 50.0 + + + 0.2 + + + 0.0 + + + 20 + + + 127 + + + 127 + + + Never + 64 + + + + false + + + false + + + false + + + false + + + false + + + true + + + false + + + false + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2demo/Script/SpacePirate.xml b/templates/mp2demo/Script/SpacePirate.xml index 9624a7aa..5c48bbc1 100644 --- a/templates/mp2demo/Script/SpacePirate.xml +++ b/templates/mp2demo/Script/SpacePirate.xml @@ -1,246 +1,206 @@ - - SpacePirate - - PirateRagDoll.rel - SpacePirate.rel - - - - - - - 360.0 - - - 90.0 - - - 4.0 - - - 1.0 - - - 0.5 - - - - - 9 - - - 10.0 - - - 10.0 - - - - - 3.0 - - - - - 150.0 - - - - - 0.8 - - - 3.0 - - - 0.3 - - - 0.2 - - - 1 - - - - - - - 10.0 - - - 50.0 - - - 20.0 - - - 20.0 - - - 10.0 - - - 20.0 - - - 0 - - - false - - - - - - 9 - - - 5.0 - - - - - - - - 9 - - - 10.0 - - - 5.0 - - - - - 10.0 - - - - - - 9 - - - 10.0 - - - - - 80.0 - - - - 0.1 - - - 0.05 - - - -1 - - - 1.0 - - - 0 - - - 0.1 - - - 0.75 - - - 5.0 - - - 10.0 - - - - - 0.2 - - - 10.0 - - - - - 0 - - - - 3 - - - 15.0 - - - 50.0 - - - - - 9 - - - 40.0 - - - 8.0 - - - 10.0 - - - - - - - - 25.0 - - - 0.4 - - - 20.0 - - - 50.0 - - - 2 - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0xE61748ED:0xAD54DA11 - 0xDC89CC3C:0xA79BB82E - - enabled - enabled - - + + + PirateRagDoll.rel + SpacePirate.rel + + + SpacePirate + + + + + + 360.0 + + + 90.0 + + + 4.0 + + + 1.0 + + + 0.5 + + + + + 0x9 + + + 10.0 + + + 10.0 + + + + + 3.0 + + + + + 150.0 + + + + + 0.80000001 + + + 3.0 + + + 0.30000001 + + + 0.2 + + + 1 + + + + + + + 10.0 + + + 50.0 + + + 20.0 + + + 20.0 + + + 10.0 + + + 20.0 + + + 0 + + + false + + + + WPSC + + + + + + 0x9 + + + 5.0 + + + + + 0 + + + + + 0x9 + + + 10.0 + + + 5.0 + + + + + 10.0 + + + + WPSC + + + + + + 0x9 + + + 10.0 + + + + + 80.0 + + + 0 + + + 0.1 + + + 0.050000001 + + + -1 + + + 1.0 + + + 0 + + + 0.1 + + + 0.75 + + + 5.0 + + + 10.0 + + + 0 + + + 0 + + + 0.2 + + + 10.0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + diff --git a/templates/mp2demo/Script/SpankWeed.xml b/templates/mp2demo/Script/SpankWeed.xml index 8dcf86fa..8154616c 100644 --- a/templates/mp2demo/Script/SpankWeed.xml +++ b/templates/mp2demo/Script/SpankWeed.xml @@ -1,72 +1,68 @@ - - SpankWeed - - SpankWeed.rel - - - - - - - - - 9 - - - 20.0 - - - 1.0 - - - - - 1.0 - - - - - 1000000.0 - - - - - - - - true - - - 60.0 - - - 30.0 - - - 15.0 - - - 5.0 - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + SpankWeed.rel + + + SpankWeed + + + + + + + + 0x9 + + + 20.0 + + + 1.0 + + + + + 1.0 + + + + + 1000000.0 + + + + + + + + true + + + 60.0 + + + 30.0 + + + 15.0 + + + 5.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/SpawnPoint.xml b/templates/mp2demo/Script/SpawnPoint.xml index 5ccd434b..6e252718 100644 --- a/templates/mp2demo/Script/SpawnPoint.xml +++ b/templates/mp2demo/Script/SpawnPoint.xml @@ -1,30 +1,25 @@ - - SpawnPoint - - - - true - - - false - - - - - - - - - - - - - - - - 0.5559 - enabled - enabled - - + + + SpawnPoint + + + + true + + + false + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.55589998 + diff --git a/templates/mp2demo/Script/SpecialFunction.xml b/templates/mp2demo/Script/SpecialFunction.xml index 93f527ef..81fdd78e 100644 --- a/templates/mp2demo/Script/SpecialFunction.xml +++ b/templates/mp2demo/Script/SpecialFunction.xml @@ -1,59 +1,61 @@ - - SpecialFunction - - - - - false - - - - - 0 - - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0 - - - 0 - - - - 0 - - - - - - - - - - - - - - - - - script/common/SpecialFunction.TXTR - - 0.5 - enabled - enabled - - + + + SpecialFunction + + + + + false + + + + + 0 + + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0 + + + 0 + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2demo/Script/SpiderBallAttractionSurface.xml b/templates/mp2demo/Script/SpiderBallAttractionSurface.xml index 7a1aa962..66351735 100644 --- a/templates/mp2demo/Script/SpiderBallAttractionSurface.xml +++ b/templates/mp2demo/Script/SpiderBallAttractionSurface.xml @@ -1,24 +1,21 @@ - - SpiderBallAttractionSurface - - - - - - - - - - - - - - - script/common/SpiderBallAttractionSurface.TXTR - - enabled - volume - - - + + + SpiderBallAttractionSurface + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + ScaleVolume + BoxShape + diff --git a/templates/mp2demo/Script/SpiderBallWaypoint.xml b/templates/mp2demo/Script/SpiderBallWaypoint.xml index 30a748fe..a3268cc9 100644 --- a/templates/mp2demo/Script/SpiderBallWaypoint.xml +++ b/templates/mp2demo/Script/SpiderBallWaypoint.xml @@ -1,26 +1,22 @@ - - SpiderBallWaypoint - - - - 0 - - - - - - - - - - - - - - script/common/SpiderBallWaypoint.CMDL - - enabled - enabled - - + + + SpiderBallWaypoint + + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/mp2demo/Script/SpindleCamera.xml b/templates/mp2demo/Script/SpindleCamera.xml index d1a8e91d..245a8907 100644 --- a/templates/mp2demo/Script/SpindleCamera.xml +++ b/templates/mp2demo/Script/SpindleCamera.xml @@ -1,49 +1,44 @@ - - SpindleCamera - - - - 6400 - - - - - - - - - - - - - - - - - - - - false - - - - - false - - - - - - - - - - - - - - enabled - enabled - - + + + SpindleCamera + + + + 6400 + + + + + + + + + + + + + + + + + + + + false + + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/mp2demo/Script/Splinter.xml b/templates/mp2demo/Script/Splinter.xml index d3194070..ca37ee27 100644 --- a/templates/mp2demo/Script/Splinter.xml +++ b/templates/mp2demo/Script/Splinter.xml @@ -1,92 +1,96 @@ - - Splinter - - Splinter.rel - - - - - - 5.0 - - - 18.0 - - - 1.0 - - - 3.0 - - - 1 - - - 2 - - - - - 9 - - - 5.0 - - - - - 0 - - - - - - - - - 32.0 - - - 7.0 - - - 17.0 - - - 0.5 - - - 1.0 - - - - - - - -1 - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x6D752EFC - 0x0D6AB7B5 - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0xE61748ED:0xAD54DA11 - - enabled - enabled - - + + + Splinter.rel + + + Splinter + + + + + CMDL + + + + 5.0 + + + 18.0 + + + 1.0 + + + 3.0 + + + 1 + + + 2 + + + + + 0x9 + + + 5.0 + + + + + 0 + + + + + + PART + + + + + + + 32.0 + + + 7.0 + + + 17.0 + + + 0.5 + + + 1.0 + + + + + + + -1 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + diff --git a/templates/mp2demo/Script/SplitterCommandModule.xml b/templates/mp2demo/Script/SplitterCommandModule.xml index 45256998..9504079f 100644 --- a/templates/mp2demo/Script/SplitterCommandModule.xml +++ b/templates/mp2demo/Script/SplitterCommandModule.xml @@ -1,161 +1,50 @@ - - SplitterCommandModule - - Splitter.rel - - - - - - - 60.0 - - - 12.0 - - - 37.0 - - - - - 150.0 - - - - - 2 - - - - - - - - 10 - - - 20.0 - - - 720.0 - - - 20.0 - - - 4.0 - - - 10.0 - - - 20.0 - - - 3 - - - - - - 9 - - - 10.0 - - - - - 1 - - - 3 - - - 100.0 - - - 10.0 - - - 100.0 - - - 45.0 - - - - - 9 - - - 10.0 - - - - - - - 500.0 - - - 4.0 - - - 1.0 - - - 20.0 - - - 0.25 - - - 2.0 - - - 0.498039, 0.498039, 0.498039, 0.498039 - - - 0.6, 0.6, 0.0, 0.498039 - - - - - - - - - -1 - - - -1 - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Splitter.rel + + + SplitterCommandModule + + + + + + 60.0 + + + 12.0 + + + 37.0 + + + + + 150.0 + + + + + 2 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/SplitterMainChassis.xml b/templates/mp2demo/Script/SplitterMainChassis.xml index c2922c51..72643cf5 100644 --- a/templates/mp2demo/Script/SplitterMainChassis.xml +++ b/templates/mp2demo/Script/SplitterMainChassis.xml @@ -1,151 +1,50 @@ - - SplitterMainChassis - - Splitter.rel - - - - - - - 60.0 - - - 12.0 - - - 37.0 - - - - - 150.0 - - - - - 2 - - - - - - - - 124 - - - 2.0 - - - 2.5 - - - 6.0 - - - - - 9 - - - 20.0 - - - 5.0 - - - - - 3.0 - - - 100.0 - - - 40.0 - - - 3.0 - - - 6.0 - - - 30.0 - - - 60.0 - - - 20.0 - - - 20.0 - - - 60.0 - - - 20.0 - - - 6.0 - - - 6.0 - - - 1.5 - - - 10.0 - - - 30.0 - - - 4 - - - 30.0 - - - - - 9 - - - 20.0 - - - 5.0 - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Splitter.rel + + + SplitterMainChassis + + + + + + 60.0 + + + 12.0 + + + 37.0 + + + + + 150.0 + + + + + 2 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/SporbBase.xml b/templates/mp2demo/Script/SporbBase.xml index 0e39b556..043b0793 100644 --- a/templates/mp2demo/Script/SporbBase.xml +++ b/templates/mp2demo/Script/SporbBase.xml @@ -1,128 +1,156 @@ - - SporbBase - - Sporb.rel - - - - - - - 2.0 - - - 2.0 - - - 1.0 - - - 1.0 - - - 1 - - - 1 - - - 0.0 - - - 0.0, 0.0, 0.0 - - - - 0.1 - - - -10.0 - - - -100.0 - - - 50.0 - - - 0.0 - - - 2.0 - - - 2.0 - - - 2.0 - - - 40.0 - - - 0.0 - - - 5.0 - - - 20.0 - - - false - - - - - - 9 - - - 5.0 - - - 2.0 - - - - - 20.0 - - - 1.0 - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Sporb.rel + + + SporbBase + + + + + + 2.0 + + + 2.0 + + + 1.0 + + + 1.0 + + + 1 + + + 1 + + + 0.0 + + + + 0.0 + 0.0 + 0.0 + + + + + PART + + + + 0.1 + + + -10.0 + + + -100.0 + + + 50.0 + + + 0.0 + + + 2.0 + + + 2.0 + + + 2.0 + + + 40.0 + + + 0.0 + + + 5.0 + + + 20.0 + + + false + + + + WPSC + + + + + + 0x9 + + + 5.0 + + + 2.0 + + + + + 20.0 + + + 1.0 + + + 0 + + + -1 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/SporbNeedle.xml b/templates/mp2demo/Script/SporbNeedle.xml index 517a21f4..34463c4d 100644 --- a/templates/mp2demo/Script/SporbNeedle.xml +++ b/templates/mp2demo/Script/SporbNeedle.xml @@ -1,60 +1,78 @@ - - SporbNeedle - - Sporb.rel - - - - - - - 60.0 - - - 1.0 - - - - - 9 - - - 5.0 - - - 2.0 - - - - - 1.5 - - - - - - - - - - - - - - - - - - - - - - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - 0xC27FFA8F - - enabled - enabled - - + + + Sporb.rel + + + SporbNeedle + + + + + + CMDL + + + + 60.0 + + + 1.0 + + + + + 9 + + + 5.0 + + + 2.0 + + + + + 1.5 + + + + PART + + + + + PART + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/SporbProjectile.xml b/templates/mp2demo/Script/SporbProjectile.xml index 87334dd6..8e685739 100644 --- a/templates/mp2demo/Script/SporbProjectile.xml +++ b/templates/mp2demo/Script/SporbProjectile.xml @@ -1,33 +1,37 @@ - - SporbProjectile - - Sporb.rel - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Sporb.rel + + + SporbProjectile + + + + + + + PART + + + + + PART + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/SporbTop.xml b/templates/mp2demo/Script/SporbTop.xml index 029e6d75..6c63cff1 100644 --- a/templates/mp2demo/Script/SporbTop.xml +++ b/templates/mp2demo/Script/SporbTop.xml @@ -1,31 +1,27 @@ - - SporbTop - - Sporb.rel - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Sporb.rel + + + SporbTop + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/Steam.xml b/templates/mp2demo/Script/Steam.xml index 2cbb25c8..9a5aee3c 100644 --- a/templates/mp2demo/Script/Steam.xml +++ b/templates/mp2demo/Script/Steam.xml @@ -1,39 +1,39 @@ - - Steam - - - - - - 0.35 - - - 1.0 - - - 2.0 - - - 0.0 - - - false - - - - - - - - - - - - - - enabled - volume - - - + + + Steam + + + + + + TXTR + + + + 0.34999999 + + + 1.0 + + + 2.0 + + + 0.0 + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + BoxShape + diff --git a/templates/mp2demo/Script/StoneToad.xml b/templates/mp2demo/Script/StoneToad.xml index 1c541e00..86a0b64a 100644 --- a/templates/mp2demo/Script/StoneToad.xml +++ b/templates/mp2demo/Script/StoneToad.xml @@ -1,37 +1,33 @@ - - StoneToad - - StoneToad.rel - - - - - - - 1 - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + StoneToad.rel + + + StoneToad + + + + + + 1 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/StreamedAudio.xml b/templates/mp2demo/Script/StreamedAudio.xml index 81a380de..4e425ce0 100644 --- a/templates/mp2demo/Script/StreamedAudio.xml +++ b/templates/mp2demo/Script/StreamedAudio.xml @@ -1,43 +1,39 @@ - - StreamedAudio - - - - - false - - - 0.25 - - - 0.25 - - - 127 - - - 0 - - - true - - - - - - - - - - - - - - script/common/StreamedAudio.TXTR - - 0.5 - enabled - enabled - - + + + StreamedAudio + + + + + false + + + 0.25 + + + 0.25 + + + 127 + + + 0 + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2demo/Script/Subtitle.xml b/templates/mp2demo/Script/Subtitle.xml index 36a67ba0..b5df583d 100644 --- a/templates/mp2demo/Script/Subtitle.xml +++ b/templates/mp2demo/Script/Subtitle.xml @@ -1,39 +1,38 @@ - - Subtitle - - - - - 0 - - - 0 - - - - 0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Subtitle + + + + + 0 + + + 0 + + + + STRG + + + + 0 + + + 0.0 + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/SurfaceCamera.xml b/templates/mp2demo/Script/SurfaceCamera.xml index 85ea7092..2cba6351 100644 --- a/templates/mp2demo/Script/SurfaceCamera.xml +++ b/templates/mp2demo/Script/SurfaceCamera.xml @@ -1,41 +1,40 @@ - - SurfaceCamera - - - - 2 - - - 1 - - - - 0.0, 0.0, 0.0 - - - - false - - - - false - - - - - - - - - - - - - - - - enabled - enabled - - + + + SurfaceCamera + + + + 2 + + + 1 + + + + + 0.0 + 0.0 + 0.0 + + + + + false + + + + false + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/mp2demo/Script/Switch.xml b/templates/mp2demo/Script/Switch.xml index 51908e3d..3d977aa9 100644 --- a/templates/mp2demo/Script/Switch.xml +++ b/templates/mp2demo/Script/Switch.xml @@ -1,27 +1,22 @@ - - Switch - - - - false - - - false - - - - - - - - - - - - - - enabled - enabled - - + + + Switch + + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/mp2demo/Script/TargetingPoint.xml b/templates/mp2demo/Script/TargetingPoint.xml index d2b3e6f4..83993313 100644 --- a/templates/mp2demo/Script/TargetingPoint.xml +++ b/templates/mp2demo/Script/TargetingPoint.xml @@ -1,28 +1,23 @@ - - TargetingPoint - - - - - false - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + TargetingPoint + + + + + false + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/TeamAI.xml b/templates/mp2demo/Script/TeamAI.xml index f2f8e5d7..844351d5 100644 --- a/templates/mp2demo/Script/TeamAI.xml +++ b/templates/mp2demo/Script/TeamAI.xml @@ -1,49 +1,44 @@ - - TeamAI - - - - 20 - - - 2 - - - 2 - - - 30 - - - 1 - - - 1 - - - 0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + TeamAI + + + + 20 + + + 2 + + + 2 + + + 30 + + + 1 + + + 1 + + + 0 + + + 0.0 + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/TextPane.xml b/templates/mp2demo/Script/TextPane.xml index 85a4e10f..92e6e165 100644 --- a/templates/mp2demo/Script/TextPane.xml +++ b/templates/mp2demo/Script/TextPane.xml @@ -1,46 +1,49 @@ - - TextPane - - - - - - 80 - - - 10 - - - - - 0.0, 0.0, 0.0 - - - - - 1 - - - 0.25 - - - 0.25 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + TextPane + + + + + + 80 + + + 10 + + + + + + 0.0 + 0.0 + 0.0 + + + + + STRG + + + + + 1 + + + 0.25 + + + 0.25 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/TimeKeyframe.xml b/templates/mp2demo/Script/TimeKeyframe.xml index 43121e91..233cfe31 100644 --- a/templates/mp2demo/Script/TimeKeyframe.xml +++ b/templates/mp2demo/Script/TimeKeyframe.xml @@ -1,25 +1,20 @@ - - TimeKeyframe - - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + TimeKeyframe + + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/Timer.xml b/templates/mp2demo/Script/Timer.xml index 94bc450e..f8ee988f 100644 --- a/templates/mp2demo/Script/Timer.xml +++ b/templates/mp2demo/Script/Timer.xml @@ -1,39 +1,35 @@ - - Timer - - - - 5.0 - - - 0.0 - A random value between this number and 0 will be added to the timer's start time. - - - false - If enabled, when the timer reaches 0, it will reset back to its start time. If Auto-Start is also enabled, it will begin ticking again. - - - false - If enabled, the timer will start ticking automatically on load. Otherwise, it will need to be started with a script message. - - - - - - - - - - - - - - script/common/Timer.TXTR - - 0.5 - enabled - enabled - - + + + Timer + + + + 5.0 + + + A random value between this number and 0 will be added to the timer's start time. + 0.0 + + + If enabled, when the timer reaches 0, it will reset back to its start time. If Auto-Start is also enabled, it will begin ticking again. + false + + + If enabled, the timer will start ticking automatically on load. Otherwise, it will need to be started with a script message. + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2demo/Script/Trigger.xml b/templates/mp2demo/Script/Trigger.xml index 01e51851..7c76d651 100644 --- a/templates/mp2demo/Script/Trigger.xml +++ b/templates/mp2demo/Script/Trigger.xml @@ -1,31 +1,28 @@ - - Trigger - - - - - false - - - false - - - - - - - - - - - - - - script/common/Trigger.TXTR - - enabled - volume - - - + + + Trigger + + + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + ScaleVolume + AxisAlignedBoxShape + diff --git a/templates/mp2demo/Script/TriggerEllipsoid.xml b/templates/mp2demo/Script/TriggerEllipsoid.xml index bd1a7023..83652502 100644 --- a/templates/mp2demo/Script/TriggerEllipsoid.xml +++ b/templates/mp2demo/Script/TriggerEllipsoid.xml @@ -1,30 +1,30 @@ - - TriggerEllipsoid - - - - - false - - - false - - - - - - - - - - - - - - - enabled - volume - - - + + + TriggerEllipsoid + + + + + false + + + false + + + + PART + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + EllipsoidShape + diff --git a/templates/mp2demo/Script/TriggerOrientated.xml b/templates/mp2demo/Script/TriggerOrientated.xml index db2d8a57..be90d5c2 100644 --- a/templates/mp2demo/Script/TriggerOrientated.xml +++ b/templates/mp2demo/Script/TriggerOrientated.xml @@ -1,29 +1,25 @@ - - TriggerOrientated - - - - - false - - - false - - - - - - - - - - - - - - enabled - volume - - - + + + TriggerOrientated + + + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + BoxShape + diff --git a/templates/mp2demo/Script/Tryclops.xml b/templates/mp2demo/Script/Tryclops.xml index 209e5c78..fbbbc658 100644 --- a/templates/mp2demo/Script/Tryclops.xml +++ b/templates/mp2demo/Script/Tryclops.xml @@ -1,68 +1,64 @@ - - Tryclops - - Tryclops.rel - - - - - - - 0.0 - - - 10.0 - - - - - 5.0 - - - 1.0 - - - - - 0.6 - - - 1.0 - - - - - - 20.0 - - - 45.0 - - - 4.0 - - - 20.0 - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + Tryclops.rel + + + Tryclops + + + + + + 0.0 + + + 10.0 + + + + + 5.0 + + + 1.0 + + + + + 0.60000002 + + + 1.0 + + + + + + 20.0 + + + 45.0 + + + 4.0 + + + 20.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/VisorFlare.xml b/templates/mp2demo/Script/VisorFlare.xml index b14ae79e..454eb056 100644 --- a/templates/mp2demo/Script/VisorFlare.xml +++ b/templates/mp2demo/Script/VisorFlare.xml @@ -1,77 +1,73 @@ - - VisorFlare - - - - 0 - - - true - - - 0.1 - - - 1.0 - - - 2.0 - - - 0 - - - true - - - false - - - - - - 0.25 - - - - - - - 0.5 - - - - - - - 0.75 - - - - - - - 1.0 - - - - - - - - - - - - - - - - script/common/VisorFlare.TXTR - - 0.5 - enabled - enabled - - + + + VisorFlare + + + + 0 + + + true + + + 0.1 + + + 1.0 + + + 2.0 + + + 0 + + + true + + + false + + + + + + 0.25 + + + + + + + 0.5 + + + + + + + 0.75 + + + + + + + 1.0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2demo/Script/VisorGoo.xml b/templates/mp2demo/Script/VisorGoo.xml index 0c2f7a39..48b8b120 100644 --- a/templates/mp2demo/Script/VisorGoo.xml +++ b/templates/mp2demo/Script/VisorGoo.xml @@ -1,50 +1,58 @@ - - VisorGoo - - - - - - 1.0 - - - 8.0 - - - 40.0 - - - 20.0 - - - 1.0, 1.0, 1.0, 1.0 - - - -1 - - - false - - - false - - - - - - - - - - - - - - script/common/VisorGoo.TXTR - - 0.5 - enabled - enabled - - + + + VisorGoo + + + + + PART + + + + + ELSC + + + + 1.0 + + + 8.0 + + + 40.0 + + + 20.0 + + + + 1.0 + 1.0 + 1.0 + + + + -1 + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp2demo/Script/WallCrawlerSwarm.xml b/templates/mp2demo/Script/WallCrawlerSwarm.xml index e7e78e6e..366d5e4e 100644 --- a/templates/mp2demo/Script/WallCrawlerSwarm.xml +++ b/templates/mp2demo/Script/WallCrawlerSwarm.xml @@ -1,145 +1,149 @@ - - WallCrawlerSwarm - - WallCrawlerSwarm.rel - - - - - true - - - - 0 - - - - -1 - - - -1 - - - - - -1 - - - -1 - - - - - 9 - - - 5.0 - - - 5.0 - - - - - 1.0 - - - - - 9 - - - - - 0.3 - - - 0.7 - - - 0.0 - - - 3.0 - - - 50 - - - 0 - - - 2.5 - - - 1.0 - - - 0.7 - - - 0.4 - - - 0.7 - - - 0.7 - - - 10.0 - - - 6.0 - - - 5 - - - 0.0 - - - 1.0 - - - 0.0 - - - - - 2.0 - - - 2.0 - - - - - - -1 - - - -1 - - - - - - - - - - - - - - - 0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + WallCrawlerSwarm.rel + + + WallCrawlerSwarm + + + + true + + + + 0 + + + + -1 + + + -1 + + + + PART + + + + + PART + + + + -1 + + + -1 + + + + + 0x9 + + + 5.0 + + + 5.0 + + + + + 1.0 + + + + + 0x9 + + + + + 0.30000001 + + + 0.69999999 + + + 0.0 + + + 3.0 + + + 50 + + + 0 + + + 2.5 + + + 1.0 + + + 0.69999999 + + + 0.40000001 + + + 0.69999999 + + + 0.69999999 + + + 10.0 + + + 6.0 + + + 5 + + + 0.0 + + + 1.0 + + + 0.0 + + + + + 2.0 + + + 2.0 + + + + + + -1 + + + -1 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/WallWalker.xml b/templates/mp2demo/Script/WallWalker.xml index 8452199b..cf7d74bb 100644 --- a/templates/mp2demo/Script/WallWalker.xml +++ b/templates/mp2demo/Script/WallWalker.xml @@ -1,80 +1,96 @@ - - WallWalker - - WallCrawler.rel - WallWalker.rel - - - - - - - 1 - - - - - - - 2.5 - - - 1080.0 - - - 0.4 - - - 40.0 - - - - - - - 4.0 - - - 0.5 - - - 5 - - - -1 - - - -1 - - - 2.0 - - - 5.0 - - - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + WallCrawler.rel + WallWalker.rel + + + WallWalker + + + + + + 1 + + + + + + + 2.5 + + + 1080.0 + + + 0.40000001 + + + 40.0 + + + + + PART + + + + + PART + + + + + PART + + + + 4.0 + + + 0.5 + + + 5 + + + -1 + + + -1 + + + 2.0 + + + 5.0 + + + + WPSC + + + + + + PART + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/Water.xml b/templates/mp2demo/Script/Water.xml index 2ae9c838..7626836a 100644 --- a/templates/mp2demo/Script/Water.xml +++ b/templates/mp2demo/Script/Water.xml @@ -1,121 +1,185 @@ - - Water - - - - - 0.0 - - - 0.0 - - - 5.0 - - - 5.0 - - - 0 - - - - - - - - 1.0 - - - - -1 - - - -1 - - - 0.0, 0.0, 0.498039, 1.0 - - - 0.6 - - - 0.2 - - - 1.0 - - - 1.0 - - - 0.0 - - - - - - - - 10.0 - - - 0.0 - - - 0.0, 0.498039, 1.0, 1.0 - - - 1.0, 1.0, 1.0, 1.0 - - - - - - - - - -1 - - - - - - 1.0, 1.0, 1.0, 1.0 - - - 0.0 - - - 0.0 - - - 1.0 - - - 0.5 - - - true - - - 0.3 - - - - - - - - - - - - - - enabled - volume - - - + + + Water + + + + + 0.0 + + + 0.0 + + + 5.0 + + + 5.0 + + + 0 + + + + TXTR + + + + + TXTR + + + + + TXTR + + + + + TXTR + + + + + TXTR + + + + 1.0 + + + + TXTR + + + + -1 + + + -1 + + + + 0.0 + 0.0 + 0.49803901 + + + + 0.60000002 + + + 0.2 + + + 1.0 + + + 1.0 + + + 0.0 + + + + + + + + 10.0 + + + 0.0 + + + + 0.0 + 0.49803901 + 1.0 + + + + + 1.0 + 1.0 + 1.0 + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + + PART + + + + 0 + + + -1 + + + 0 + + + 0 + + + 0 + + + + 1.0 + 1.0 + 1.0 + + + + 0.0 + + + 0.0 + + + 1.0 + + + 0.5 + + + true + + + 0.30000001 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + BoxShape + diff --git a/templates/mp2demo/Script/Waypoint.xml b/templates/mp2demo/Script/Waypoint.xml index fa695e25..e9df83e6 100644 --- a/templates/mp2demo/Script/Waypoint.xml +++ b/templates/mp2demo/Script/Waypoint.xml @@ -1,23 +1,19 @@ - - Waypoint - - - - - - - - - - - - - - - script/common/Waypoint.CMDL - - enabled - enabled - - + + + Waypoint + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/mp2demo/Script/WispTentacle.xml b/templates/mp2demo/Script/WispTentacle.xml index 8cae5f7e..0ed24541 100644 --- a/templates/mp2demo/Script/WispTentacle.xml +++ b/templates/mp2demo/Script/WispTentacle.xml @@ -1,62 +1,58 @@ - - WispTentacle - - WispTentacle.rel - - - - - 30.0 - - - 20.0 - - - 10.0 - - - 0.0 - - - - - 9 - - - 5.0 - - - - - false - - - 2.0 - - - 0.2 - - - - - - - - - - - - - - - - - 0xB3774750:0xE25FB08C - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + WispTentacle.rel + + + WispTentacle + + + + 30.0 + + + 20.0 + + + 10.0 + + + 0.0 + + + + + 0x9 + + + 5.0 + + + + + false + + + 2.0 + + + 0.2 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp2demo/Script/WorldLightFader.xml b/templates/mp2demo/Script/WorldLightFader.xml index fb13041e..d61ac03b 100644 --- a/templates/mp2demo/Script/WorldLightFader.xml +++ b/templates/mp2demo/Script/WorldLightFader.xml @@ -1,28 +1,23 @@ - - WorldLightFader - - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + WorldLightFader + + + + 1.0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Script/WorldTeleporter.xml b/templates/mp2demo/Script/WorldTeleporter.xml index f1dc6fb5..3fbf315b 100644 --- a/templates/mp2demo/Script/WorldTeleporter.xml +++ b/templates/mp2demo/Script/WorldTeleporter.xml @@ -1,79 +1,112 @@ - - WorldTeleporter - - - - - - - 1.0, 1.0, 1.0 - - - - 1.0, 1.0, 1.0 - - - - 1.0, 1.0, 1.0 - - - true - - - - 127 - - - 64 - - - false - - - - - false - - - 0.01 - - - 8.0 - - - 0.0 - - - - false - - - 0.0 - - - 2.0 - - - 3.0 - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + WorldTeleporter + + + + + MLVL + + + + + MREA + + + + + + 1.0 + 1.0 + 1.0 + + + + + CMDL + + + + + 1.0 + 1.0 + 1.0 + + + + + CMDL + + + + + 1.0 + 1.0 + 1.0 + + + + true + + + 0 + + + 127 + + + 64 + + + false + + + + FONT + + + + + STRG + + + + false + + + 0.0099999998 + + + 8.0 + + + 0.0 + + + + false + + + 0.0 + + + 2.0 + + + 3.0 + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp2demo/Structs/ActorParameters.xml b/templates/mp2demo/Structs/ActorParameters.xml index 0ee95a68..bbabfd44 100644 --- a/templates/mp2demo/Structs/ActorParameters.xml +++ b/templates/mp2demo/Structs/ActorParameters.xml @@ -1,30 +1,49 @@ - - - - - - - - - - true - - - 1.0 - - - 1.0 - - - - false - - - false - - - false - - - + + + ActorParameters + + + + + + CMDL + + + + + CSKR + + + + + CMDL + + + + + CSKR + + + + true + + + 1.0 + + + 1.0 + + + + false + + + false + + + false + + + + diff --git a/templates/mp2demo/Structs/BehaveChance.xml b/templates/mp2demo/Structs/BehaveChance.xml index a10123b5..e6d2159d 100644 --- a/templates/mp2demo/Structs/BehaveChance.xml +++ b/templates/mp2demo/Structs/BehaveChance.xml @@ -1,26 +1,29 @@ - - - - 25.0 - - - 25.0 - - - 25.0 - - - 25.0 - - - 2.0 - - - 50.0 - - - 1 - - - + + + BehaveChance + + + 25.0 + + + 25.0 + + + 25.0 + + + 25.0 + + + 2.0 + + + 50.0 + + + 1 + + + + diff --git a/templates/mp2demo/Structs/CameraHintStructA.xml b/templates/mp2demo/Structs/CameraHintStructA.xml index 2c16c5ad..7b2a15b3 100644 --- a/templates/mp2demo/Structs/CameraHintStructA.xml +++ b/templates/mp2demo/Structs/CameraHintStructA.xml @@ -1,11 +1,14 @@ - - - - false - - - 8.0 - - - + + + CameraHintStructA + + + false + + + 8.0 + + + + diff --git a/templates/mp2demo/Structs/CameraHintStructB.xml b/templates/mp2demo/Structs/CameraHintStructB.xml index 71d5e541..a68694b5 100644 --- a/templates/mp2demo/Structs/CameraHintStructB.xml +++ b/templates/mp2demo/Structs/CameraHintStructB.xml @@ -1,11 +1,14 @@ - - - - false - - - 90.0 - - - + + + CameraHintStructB + + + false + + + 90.0 + + + + diff --git a/templates/mp2demo/Structs/CameraShakerData.xml b/templates/mp2demo/Structs/CameraShakerData.xml index 4a3d1bd5..1bfc126e 100644 --- a/templates/mp2demo/Structs/CameraShakerData.xml +++ b/templates/mp2demo/Structs/CameraShakerData.xml @@ -1,18 +1,23 @@ - - - - 16 - - - 5.0 - - - - - - 1.0 - - - - + + + CameraShakerData + + + 16 + + + 5.0 + + + + + + 1.0 + + + 0 + + + + diff --git a/templates/mp2demo/Structs/ConditionalTest.xml b/templates/mp2demo/Structs/ConditionalTest.xml index d8d6cb94..85d3b4fb 100644 --- a/templates/mp2demo/Structs/ConditionalTest.xml +++ b/templates/mp2demo/Structs/ConditionalTest.xml @@ -1,20 +1,23 @@ - - - - 1 - - - 0 - - - 0 - - - 0 - - - 0 - - - + + + ConditionalTest + + + 1 + + + 0 + + + 0 + + + 0 + + + 0 + + + + diff --git a/templates/mp2demo/Structs/DamageInfo.xml b/templates/mp2demo/Structs/DamageInfo.xml index 95ee0a7a..3d5b6604 100644 --- a/templates/mp2demo/Structs/DamageInfo.xml +++ b/templates/mp2demo/Structs/DamageInfo.xml @@ -1,17 +1,20 @@ - - - - 0 - - - 0.0 - - - 0.0 - - - 0.0 - - - + + + DamageInfo + + + 0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + diff --git a/templates/mp2demo/Structs/DamageVulnerability.xml b/templates/mp2demo/Structs/DamageVulnerability.xml index dd69b732..c95d5b6a 100644 --- a/templates/mp2demo/Structs/DamageVulnerability.xml +++ b/templates/mp2demo/Structs/DamageVulnerability.xml @@ -1,106 +1,109 @@ - - - - - - - 0.0 - - - - - - - 0.0 - - - - - - - 0.0 - - - - - - - - 0.0 - - - - - - - - - - - - - - 0.0 - - - - - - - 0.0 - - - - - - - 0.0 - - - - - - - 0.0 - - - - - - - 0.0 - - - - - - - 0.0 - - - - - - - 0.0 - - - - - - - - - - - - - - - 0.0 - - - - - + + + DamageVulnerability + + + + + + 0.0 + + + + + + + 0.0 + + + + + + + 0.0 + + + + + + + + 0.0 + + + + + + + + + + + + + + 0.0 + + + + + + + 0.0 + + + + + + + 0.0 + + + + + + + 0.0 + + + + + + + 0.0 + + + + + + + 0.0 + + + + + + + 0.0 + + + + + + + + + + + + + + + 0.0 + + + + + + diff --git a/templates/mp2demo/Structs/DarkSamusStruct.xml b/templates/mp2demo/Structs/DarkSamusStruct.xml index c674554e..8faf17aa 100644 --- a/templates/mp2demo/Structs/DarkSamusStruct.xml +++ b/templates/mp2demo/Structs/DarkSamusStruct.xml @@ -1,51 +1,54 @@ - - - - -1.0 - - - 2.5 - - - 4.0 - - - 2.5 - - - 4.0 - - - 3.5 - - - 20.0 - - - 1.5 - - - 3.0 - - - - - - - - - - - - - - - - - - - - - - + + + DarkSamusStruct + + + -1.0 + + + 2.5 + + + 4.0 + + + 2.5 + + + 4.0 + + + 3.5 + + + 20.0 + + + 1.5 + + + 3.0 + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/mp2demo/Structs/DigitalGuardianHeadStruct.xml b/templates/mp2demo/Structs/DigitalGuardianHeadStruct.xml index f037c8c6..7bab505e 100644 --- a/templates/mp2demo/Structs/DigitalGuardianHeadStruct.xml +++ b/templates/mp2demo/Structs/DigitalGuardianHeadStruct.xml @@ -1,7 +1,10 @@ - - - - - - + + + DigitalGuardianHeadStruct + + + + + + diff --git a/templates/mp2demo/Structs/EditorProperties.xml b/templates/mp2demo/Structs/EditorProperties.xml index eb76ae92..a93fa69d 100644 --- a/templates/mp2demo/Structs/EditorProperties.xml +++ b/templates/mp2demo/Structs/EditorProperties.xml @@ -1,10 +1,13 @@ - - - - - - true - - - + + + EditorProperties + + + + + true + + + + diff --git a/templates/mp2demo/Structs/FlareDef.xml b/templates/mp2demo/Structs/FlareDef.xml index b5ca88af..443634d3 100644 --- a/templates/mp2demo/Structs/FlareDef.xml +++ b/templates/mp2demo/Structs/FlareDef.xml @@ -1,15 +1,26 @@ - - - - - 0.0 - - - 1.0 - - - 1.0, 1.0, 1.0, 1.0 - - - + + + FlareDef + + + + TXTR + + + + 0.0 + + + 1.0 + + + + 1.0 + 1.0 + 1.0 + + + + + diff --git a/templates/mp2demo/Structs/GrappleParameters.xml b/templates/mp2demo/Structs/GrappleParameters.xml index 3c9cb645..04a19d45 100644 --- a/templates/mp2demo/Structs/GrappleParameters.xml +++ b/templates/mp2demo/Structs/GrappleParameters.xml @@ -1,41 +1,44 @@ - - - - 10.0 - - - 10.0 - - - 1.0 - - - 1.0 - - - 1.0 - - - 1.0 - - - 1.0 - - - 45.0 - - - 90.0 - - - 0.0 - - - 0.0 - - - false - - - + + + GrappleParameters + + + 10.0 + + + 10.0 + + + 1.0 + + + 1.0 + + + 1.0 + + + 1.0 + + + 1.0 + + + 45.0 + + + 90.0 + + + 0.0 + + + 0.0 + + + false + + + + diff --git a/templates/mp2demo/Structs/GuiWidgetProperties.xml b/templates/mp2demo/Structs/GuiWidgetProperties.xml index 1afad396..c9dbccd2 100644 --- a/templates/mp2demo/Structs/GuiWidgetProperties.xml +++ b/templates/mp2demo/Structs/GuiWidgetProperties.xml @@ -1,12 +1,15 @@ - - - - - 1 - - - false - - - + + + GuiWidgetProperties + + + + 1 + + + false + + + + diff --git a/templates/mp2demo/Structs/HealthInfo.xml b/templates/mp2demo/Structs/HealthInfo.xml index 46c7fa61..1d644213 100644 --- a/templates/mp2demo/Structs/HealthInfo.xml +++ b/templates/mp2demo/Structs/HealthInfo.xml @@ -1,11 +1,14 @@ - - - - 5.0 - - - 1.0 - - - + + + HealthInfo + + + 5.0 + + + 1.0 + + + + diff --git a/templates/mp2demo/Structs/IngPossessionData.xml b/templates/mp2demo/Structs/IngPossessionData.xml index 50acd5d7..fb591f09 100644 --- a/templates/mp2demo/Structs/IngPossessionData.xml +++ b/templates/mp2demo/Structs/IngPossessionData.xml @@ -1,31 +1,34 @@ - - - - false - - - -1 - - - -1 - - - - - 150.0 - - - 2.0 - - - - - 2.0 - - - -1 - - - - + + + IngPossessionData + + + false + + + -1 + + + -1 + + + + + 150.0 + + + 2.0 + + + + + 2.0 + + + -1 + + + + + diff --git a/templates/mp2demo/Structs/LayerInfo.xml b/templates/mp2demo/Structs/LayerInfo.xml index 49f1ab6f..fa0a31ca 100644 --- a/templates/mp2demo/Structs/LayerInfo.xml +++ b/templates/mp2demo/Structs/LayerInfo.xml @@ -1,20 +1,23 @@ - - - - 0 - - - 5.0 - - - 0.0 - - - 0.15 - - - 10.0 - - - + + + LayerInfo + + + 0 + + + 5.0 + + + 0.0 + + + 0.15000001 + + + 10.0 + + + + diff --git a/templates/mp2demo/Structs/LayerSwitch.xml b/templates/mp2demo/Structs/LayerSwitch.xml index 56237535..9d2f4257 100644 --- a/templates/mp2demo/Structs/LayerSwitch.xml +++ b/templates/mp2demo/Structs/LayerSwitch.xml @@ -1,9 +1,16 @@ - - - - - 0 - - - + + + LayerSwitch + true + + + Area ID + + + Layer # + 0 + + + + diff --git a/templates/mp2demo/Structs/LightParameters.xml b/templates/mp2demo/Structs/LightParameters.xml index 13ff5d33..b04055e7 100644 --- a/templates/mp2demo/Structs/LightParameters.xml +++ b/templates/mp2demo/Structs/LightParameters.xml @@ -1,56 +1,67 @@ - - - - true - - - 1.0 - - - 0 - - - 1.0 - - - 20.0 - - - 1.0, 1.0, 1.0, 1.0 - - - true - - - 0x00000001 - - - - - - - - - 1 - - - 0.0, 0.0, 0.0 - - - 4 - - - 4 - - - false - - - false - - - 0 - - - + + + LightParameters + + + true + + + 1.0 + + + 0 + + + 1.0 + + + 20.0 + + + + 1.0 + 1.0 + 1.0 + + + + true + + + 0x1 + + + + + + + + + 1 + + + + 0.0 + 0.0 + 0.0 + + + + 4 + + + 4 + + + false + + + false + + + 0 + + + + diff --git a/templates/mp2demo/Structs/MayaSpline.xml b/templates/mp2demo/Structs/MayaSpline.xml deleted file mode 100644 index d8759fcf..00000000 --- a/templates/mp2demo/Structs/MayaSpline.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/templates/mp2demo/Structs/PatternedInfo.xml b/templates/mp2demo/Structs/PatternedInfo.xml deleted file mode 100644 index f54da614..00000000 --- a/templates/mp2demo/Structs/PatternedInfo.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - 150.0 - - - 1.0 - - - 120.0 - - - 100.0 - - - 0.0 - - - 60.0 - - - 6.0 - - - 11.0 - - - 2.0 - - - 1.0 - - - 50.0 - - - 25.0 - - - 5.0 - - - - 2.0 - - - - - 2.0 - - - - - - 1.0 - - - 2.0 - - - 0.0, 0.0, 0.0 - - - 0.1 - - - 1000.0 - - - 1000.0 - - - 0.0 - - - -1 - - - - - - 0.1 - - - 0.1 - - - 2.0 - - - 0 - - - 0.0, 0.0, 0.0 - - - - - 0.0, 0.0, 0.0 - - - - -1 - - - - 0 - - - diff --git a/templates/mp2demo/Structs/PlasmaBeamInfo.xml b/templates/mp2demo/Structs/PlasmaBeamInfo.xml index ab2e0b56..f456d119 100644 --- a/templates/mp2demo/Structs/PlasmaBeamInfo.xml +++ b/templates/mp2demo/Structs/PlasmaBeamInfo.xml @@ -1,47 +1,84 @@ - - - - 0 - - - - - - - - 10.0 - - - 0.1 - - - 1.0 - - - 10.0 - - - 10.0 - - - 1.0 - - - 1.0 - - - 1.0 - - - 10.0 - - - 1.0, 1.0, 1.0, 0.0 - - - 0.0, 0.0, 0.0, 0.0 - - - - + + + PlasmaBeamInfo + + + 0 + + + + WPSC + + + + + PART + + + + + PART + + + + + TXTR + + + + + TXTR + + + + 10.0 + + + 0.1 + + + 1.0 + + + 10.0 + + + 10.0 + + + 1.0 + + + 1.0 + + + 1.0 + + + 10.0 + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + PART + + + + + diff --git a/templates/mp2demo/Structs/SafeZoneStruct.xml b/templates/mp2demo/Structs/SafeZoneStruct.xml index 92196198..94e94fcd 100644 --- a/templates/mp2demo/Structs/SafeZoneStruct.xml +++ b/templates/mp2demo/Structs/SafeZoneStruct.xml @@ -1,48 +1,81 @@ - - - - - 0.0 - - - - - - 50.0 - - - - -0.04 - - - 0.0 - - - 4.0 - - - 2.0 - - - - 0.0 - - - 0.03 - - - 4.0 - - - 2.0 - - - - 0.094118, 0.498039, 0.498039, 1.0 - - - 0.74902, 0.74902, 0.74902, 1.0 - - - + + + SafeZoneStruct + + + 0 + + + 0.0 + + + 0 + + + 0 + + + + TXTR + + + + 50.0 + + + + TXTR + + + + -0.039999999 + + + 0.0 + + + 4.0 + + + 2.0 + + + + TXTR + + + + 0.0 + + + 0.029999999 + + + 4.0 + + + 2.0 + + + + TXTR + + + + + 0.094117999 + 0.49803901 + 0.49803901 + + + + + 0.74901998 + 0.74901998 + 0.74901998 + + + + + diff --git a/templates/mp2demo/Structs/SandwormStruct.xml b/templates/mp2demo/Structs/SandwormStruct.xml index 245bfb22..0e0cbbfb 100644 --- a/templates/mp2demo/Structs/SandwormStruct.xml +++ b/templates/mp2demo/Structs/SandwormStruct.xml @@ -1,20 +1,23 @@ - - - - -10.0 - - - 15.0 - - - 15.0 - - - 15.0 - - - 15.0 - - - + + + SandwormStruct + + + -10.0 + + + 15.0 + + + 15.0 + + + 15.0 + + + 15.0 + + + + diff --git a/templates/mp2demo/Structs/ScannableParameters.xml b/templates/mp2demo/Structs/ScannableParameters.xml index d6cdf47b..e35c86a9 100644 --- a/templates/mp2demo/Structs/ScannableParameters.xml +++ b/templates/mp2demo/Structs/ScannableParameters.xml @@ -1,6 +1,13 @@ - - - - - + + + ScannableParameters + + + + SCAN + + + + + diff --git a/templates/mp2demo/Structs/ShockWaveInfo.xml b/templates/mp2demo/Structs/ShockWaveInfo.xml index d6d0d157..9888d3b7 100644 --- a/templates/mp2demo/Structs/ShockWaveInfo.xml +++ b/templates/mp2demo/Structs/ShockWaveInfo.xml @@ -1,26 +1,37 @@ - - - - - - 0.0 - - - 1.0 - - - 0.5 - - - 1.0 - - - 0.0 - - - - -1 - - - + + + ShockWaveInfo + + + + PART + + + + + 0.0 + + + 1.0 + + + 0.5 + + + 1.0 + + + 0.0 + + + + ELSC + + + + -1 + + + + diff --git a/templates/mp2demo/Structs/SpawnPointStruct.xml b/templates/mp2demo/Structs/SpawnPointStruct.xml index 5f1fa62c..7c86f469 100644 --- a/templates/mp2demo/Structs/SpawnPointStruct.xml +++ b/templates/mp2demo/Structs/SpawnPointStruct.xml @@ -1,248 +1,251 @@ - - - - 1 - - - 0 - - - 0 - - - 0 - - - 1 - - - 0 - - - 0 - - - 0 - - - 1 - - - 1 - - - 1 - - - 1 - - - 1 - - - 0 - - - 0 - - - 1 - - - 1 - - - 1 - - - 1 - - - 1 - - - 1 - - - 1 - - - 1 - - - 0 - - - 1 - - - 1 - - - 1 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 5 - - - 5 - - - 5 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - + + + SpawnPointStruct + + + 1 + + + 0 + + + 0 + + + 0 + + + 1 + + + 0 + + + 0 + + + 0 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 0 + + + 0 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 0 + + + 1 + + + 1 + + + 1 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 5 + + + 5 + + + 5 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + diff --git a/templates/mp2demo/Structs/SpindleCameraStruct.xml b/templates/mp2demo/Structs/SpindleCameraStruct.xml index 64d5e6dc..1827f057 100644 --- a/templates/mp2demo/Structs/SpindleCameraStruct.xml +++ b/templates/mp2demo/Structs/SpindleCameraStruct.xml @@ -1,9 +1,12 @@ - - - - 0 - - - - + + + SpindleCameraStruct + + + 0 + + + + + diff --git a/templates/mp2demo/Structs/SplineType.xml b/templates/mp2demo/Structs/SplineType.xml index b798d00f..c6ee17aa 100644 --- a/templates/mp2demo/Structs/SplineType.xml +++ b/templates/mp2demo/Structs/SplineType.xml @@ -1,8 +1,11 @@ - - - - 0 - - - + + + SplineType + + + 0 + + + + diff --git a/templates/mp2demo/Structs/TextProperties.xml b/templates/mp2demo/Structs/TextProperties.xml index 40788459..60254db1 100644 --- a/templates/mp2demo/Structs/TextProperties.xml +++ b/templates/mp2demo/Structs/TextProperties.xml @@ -1,30 +1,49 @@ - - - - 1 - - - 1 - - - 1.0, 1.0, 1.0, 1.0 - - - 0.0, 0.0, 0.0, 1.0 - - - 1.0, 1.0, 1.0, 1.0 - - - - 0 - - - 0 - - - true - - - + + + TextProperties + + + 1 + + + 1 + + + + 1.0 + 1.0 + 1.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + 1.0 + 1.0 + 1.0 + + + + + FONT + + + + 0 + + + 0 + + + true + + + + diff --git a/templates/mp2demo/Structs/Transform.xml b/templates/mp2demo/Structs/Transform.xml index 5fe91767..3bb6c223 100644 --- a/templates/mp2demo/Structs/Transform.xml +++ b/templates/mp2demo/Structs/Transform.xml @@ -1,14 +1,33 @@ - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - 1.0, 1.0, 1.0 - - - + + + Transform + true + + + Position + + 0.0 + 0.0 + 0.0 + + + + Rotation + + 0.0 + 0.0 + 0.0 + + + + Scale + + 1.0 + 1.0 + 1.0 + + + + + diff --git a/templates/mp2demo/Structs/TriggerInfo.xml b/templates/mp2demo/Structs/TriggerInfo.xml index 547d45fd..95f8246a 100644 --- a/templates/mp2demo/Structs/TriggerInfo.xml +++ b/templates/mp2demo/Structs/TriggerInfo.xml @@ -1,43 +1,50 @@ - - - - - 0.0, 0.0, 0.0 - - - 0x00007806 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + TriggerInfo + + + + + 0.0 + 0.0 + 0.0 + + + + 30726 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/mp2demo/Structs/UnknownStruct1.xml b/templates/mp2demo/Structs/UnknownStruct1.xml index 5a4fb911..50560587 100644 --- a/templates/mp2demo/Structs/UnknownStruct1.xml +++ b/templates/mp2demo/Structs/UnknownStruct1.xml @@ -1,8 +1,11 @@ - - - - false - - - + + + UnknownStruct1 + + + false + + + + diff --git a/templates/mp2demo/Structs/UnknownStruct2.xml b/templates/mp2demo/Structs/UnknownStruct2.xml index 042696a4..d16b18b3 100644 --- a/templates/mp2demo/Structs/UnknownStruct2.xml +++ b/templates/mp2demo/Structs/UnknownStruct2.xml @@ -1,11 +1,14 @@ - - - - false - - - 0 - - - + + + UnknownStruct2 + + + false + + + 0 + + + + diff --git a/templates/mp2demo/Structs/UnknownStruct4.xml b/templates/mp2demo/Structs/UnknownStruct4.xml index 5891c71e..987eea50 100644 --- a/templates/mp2demo/Structs/UnknownStruct4.xml +++ b/templates/mp2demo/Structs/UnknownStruct4.xml @@ -1,14 +1,17 @@ - - - - 0 - - - 4 - - - 0.2 - - - + + + UnknownStruct4 + + + 0 + + + 4 + + + 0.2 + + + + diff --git a/templates/mp2demo/Structs/Vector2f.xml b/templates/mp2demo/Structs/Vector2f.xml index 3be26a5e..94e9473a 100644 --- a/templates/mp2demo/Structs/Vector2f.xml +++ b/templates/mp2demo/Structs/Vector2f.xml @@ -1,11 +1,14 @@ - - - - 0.0 - - - 0.0 - - - + + + Vector2f + + + 0.0 + + + 0.0 + + + + diff --git a/templates/mp2demo/Structs/VisorParameters.xml b/templates/mp2demo/Structs/VisorParameters.xml index 78b920e9..d4415711 100644 --- a/templates/mp2demo/Structs/VisorParameters.xml +++ b/templates/mp2demo/Structs/VisorParameters.xml @@ -1,11 +1,14 @@ - - - - false - - - 15 - - - + + + VisorParameters + + + false + + + 15 + + + + diff --git a/templates/mp2demo/Structs/WeaponVulnerability.xml b/templates/mp2demo/Structs/WeaponVulnerability.xml index 544b4c16..6f62b6a8 100644 --- a/templates/mp2demo/Structs/WeaponVulnerability.xml +++ b/templates/mp2demo/Structs/WeaponVulnerability.xml @@ -1,15 +1,18 @@ - - - - 100.0 - % - - - 0 - - - false - - - + + + WeaponVulnerability + + + % + 100.0 + + + 0 + + + false + + + + diff --git a/templates/mp3/Enums/BerserkerEnum.xml b/templates/mp3/Enums/BerserkerEnum.xml index 4d9941f2..3a2949a3 100644 --- a/templates/mp3/Enums/BerserkerEnum.xml +++ b/templates/mp3/Enums/BerserkerEnum.xml @@ -1,9 +1,13 @@ - - - - - - - - + + + BerserkerEnum + 0x0 + + + + + + + + diff --git a/templates/mp3/Enums/CableEnum.xml b/templates/mp3/Enums/CableEnum.xml index a8be0790..5153248e 100644 --- a/templates/mp3/Enums/CableEnum.xml +++ b/templates/mp3/Enums/CableEnum.xml @@ -1,8 +1,12 @@ - - - - - - - + + + CableEnum + 0x0 + + + + + + + diff --git a/templates/mp3/Enums/DamageableTriggerEnum.xml b/templates/mp3/Enums/DamageableTriggerEnum.xml index d15aa38d..98638b59 100644 --- a/templates/mp3/Enums/DamageableTriggerEnum.xml +++ b/templates/mp3/Enums/DamageableTriggerEnum.xml @@ -1,9 +1,13 @@ - - - - - - - - + + + DamageableTriggerEnum + 0x0 + + + + + + + + diff --git a/templates/mp3/Enums/Item.xml b/templates/mp3/Enums/Item.xml deleted file mode 100644 index f4a7aa6d..00000000 --- a/templates/mp3/Enums/Item.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/templates/mp3/Enums/UnknownEnum1.xml b/templates/mp3/Enums/UnknownEnum1.xml index 4fe31617..6e60a78b 100644 --- a/templates/mp3/Enums/UnknownEnum1.xml +++ b/templates/mp3/Enums/UnknownEnum1.xml @@ -1,8 +1,12 @@ - - - - - - - + + + UnknownEnum1 + 0x0 + + + + + + + diff --git a/templates/mp3/MasterTemplate.xml b/templates/mp3/MasterTemplate.xml deleted file mode 100644 index 51e78c04..00000000 --- a/templates/mp3/MasterTemplate.xml +++ /dev/null @@ -1,471 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/templates/mp3/Script/AIFuse.xml b/templates/mp3/Script/AIFuse.xml index 885b7cd4..5c559059 100644 --- a/templates/mp3/Script/AIFuse.xml +++ b/templates/mp3/Script/AIFuse.xml @@ -1,58 +1,23 @@ - - AIFuse - - RSO_ScriptAIFuse.rso - - - - - - - - - 1.0, 1.0, 0.0, 1.0 - - - 500.0 - - - 0.02 - - - 2.0 - - - 0.0 - - - 3.0 - - - 10.0 - - - 30.0 - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RSO_ScriptAIFuse.rso + + + AIFuse + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + 0.5 + diff --git a/templates/mp3/Script/AIHint.xml b/templates/mp3/Script/AIHint.xml index b4127028..dc9f8fbb 100644 --- a/templates/mp3/Script/AIHint.xml +++ b/templates/mp3/Script/AIHint.xml @@ -1,36 +1,31 @@ - - AIHint - - - - 0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - enabled - enabled - - + + + AIHint + + + + 0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/mp3/Script/AIKeyframe.xml b/templates/mp3/Script/AIKeyframe.xml index ca1a56df..bdaa4579 100644 --- a/templates/mp3/Script/AIKeyframe.xml +++ b/templates/mp3/Script/AIKeyframe.xml @@ -1,40 +1,35 @@ - - AIKeyframe - - - - -1 - - - -1 - - - false - - - 0.0 - - - 0 - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + AIKeyframe + + + + -1 + + + -1 + + + false + + + 0.0 + + + 0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/AITaskPoint.xml b/templates/mp3/Script/AITaskPoint.xml index c2a0b28e..866589cb 100644 --- a/templates/mp3/Script/AITaskPoint.xml +++ b/templates/mp3/Script/AITaskPoint.xml @@ -1,94 +1,89 @@ - - AITaskPoint - - - - false - - - 1.0 - - - 30.0 - - - false - - - -1 - - - -1 - - - -1 - - - 5.0 - - - 10.0 - - - -1 - - - -1 - - - -1 - - - -1 - - - -1 - - - -1 - - - -1 - - - -1 - - - 8 - - - false - - - false - - - false - - - true - - - false - - - true - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + AITaskPoint + + + + false + + + 1.0 + + + 30.0 + + + false + + + -1 + + + -1 + + + -1 + + + 5.0 + + + 10.0 + + + -1 + + + -1 + + + -1 + + + -1 + + + -1 + + + -1 + + + -1 + + + -1 + + + 8 + + + false + + + false + + + false + + + true + + + false + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/AIWaypoint.xml b/templates/mp3/Script/AIWaypoint.xml index 66ab534f..3a70a3db 100644 --- a/templates/mp3/Script/AIWaypoint.xml +++ b/templates/mp3/Script/AIWaypoint.xml @@ -1,38 +1,34 @@ - - AIWaypoint - - - - 1.0 - - - 0.0 - - - 0 - - - 0 - - - 0 - - - - - - - - - - - - - - script/common/AIWaypoint.CMDL - - enabled - enabled - - + + + AIWaypoint + + + + 1.0 + + + 0.0 + + + 0 + + + 0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/mp3/Script/AVIS.xml b/templates/mp3/Script/AVIS.xml index 89b01c87..a6cb1b11 100644 --- a/templates/mp3/Script/AVIS.xml +++ b/templates/mp3/Script/AVIS.xml @@ -1,24 +1,27 @@ - - AVIS - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + AVIS + + + + + CAAD + + + + + TXTR + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/AVMC.xml b/templates/mp3/Script/AVMC.xml index 0fb8bd2d..d22bcd2c 100644 --- a/templates/mp3/Script/AVMC.xml +++ b/templates/mp3/Script/AVMC.xml @@ -1,26 +1,25 @@ - - AVMC - - - - - 2 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + AVMC + + + + + MLVL + + + + 2 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/Achievement.xml b/templates/mp3/Script/Achievement.xml index 42b14096..48b4ab2b 100644 --- a/templates/mp3/Script/Achievement.xml +++ b/templates/mp3/Script/Achievement.xml @@ -1,138 +1,124 @@ - - Achievement - - RSO_ScriptAchievement.rso - - - - - - - 0xBF93CA38 - - - - - - - - - - - - 0x9165E2BE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RSO_ScriptAchievement.rso + + + Achievement + + + + + 0x9165E2BE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + true + + + true + + + + STRG + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/Actor.xml b/templates/mp3/Script/Actor.xml index 65d0e470..28f36f73 100644 --- a/templates/mp3/Script/Actor.xml +++ b/templates/mp3/Script/Actor.xml @@ -1,97 +1,121 @@ - - Actor - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - 1.0 - - - 0.0 - - - - - - - - - true - - - true - - - true - - - false - - - 0 - - - false - - - false - - - true - - - false - - - false - - - 1.0 - - - false - - - 1.0, 1.0, 1.0, 1.0 - - - - 0.0 - - - - - - 0.0, 0.0, 0.0 - - - true - - - - - - - - - - - - - - - 0xA244C9D8 - 0xC27FFA8F - 0x7E397FED:0xBB52F0BE - 0x0FC966DC - - enabled - enabled - - + + + Actor + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + 1.0 + + + 0.0 + + + + + + CMDL + + + + + DCLN + + + + + + true + + + true + + + true + + + false + + + 0 + + + false + + + false + + + true + + + false + + + false + + + 1.0 + + + false + + + + 1.0 + 1.0 + 1.0 + + + + + 0.0 + + + + WPSC + + + + + + + 0.0 + 0.0 + 0.0 + + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp3/Script/ActorKeyframe.xml b/templates/mp3/Script/ActorKeyframe.xml index ce292083..fe2516cf 100644 --- a/templates/mp3/Script/ActorKeyframe.xml +++ b/templates/mp3/Script/ActorKeyframe.xml @@ -1,41 +1,36 @@ - - ActorKeyframe - - - - -1 - never - - - -1 - - - false - - - 0.0 - - - 0 - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ActorKeyframe + + + + Never + -1 + + + -1 + + + false + + + 0.0 + + + 0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/ActorMorph.xml b/templates/mp3/Script/ActorMorph.xml index 99f1b7a9..d51b0e83 100644 --- a/templates/mp3/Script/ActorMorph.xml +++ b/templates/mp3/Script/ActorMorph.xml @@ -1,44 +1,39 @@ - - ActorMorph - - RSO_ScriptActorMorph.rso - - - - - 0.5 - - - 0.5 - - - 0.1 - - - 0.1 - - - - 1.0 - - - true - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RSO_ScriptActorMorph.rso + + + ActorMorph + + + + 0.5 + + + 0.5 + + + 0.1 + + + 0.1 + + + + 1.0 + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/ActorTransform.xml b/templates/mp3/Script/ActorTransform.xml index a33ce602..7217073b 100644 --- a/templates/mp3/Script/ActorTransform.xml +++ b/templates/mp3/Script/ActorTransform.xml @@ -1,50 +1,27 @@ - - ActorTransform - - - - 20 - - - 10.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ActorTransform + + + + 20 + + + 10.0 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/AlarmController.xml b/templates/mp3/Script/AlarmController.xml index cc6f5e6b..89d7e943 100644 --- a/templates/mp3/Script/AlarmController.xml +++ b/templates/mp3/Script/AlarmController.xml @@ -1,25 +1,20 @@ - - AlarmController - - - - 30.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + AlarmController + + + + 30.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/AmbientAI.xml b/templates/mp3/Script/AmbientAI.xml index 8ef66fd1..89183902 100644 --- a/templates/mp3/Script/AmbientAI.xml +++ b/templates/mp3/Script/AmbientAI.xml @@ -1,49 +1,53 @@ - - AmbientAI - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - 1.0 - - - - - - - 7.0 - - - 1.5 - - - -1 - - - -1 - - - - - - - - - - - - - - - 0xA244C9D8 - - enabled - enabled - - + + + AmbientAI + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + 1.0 + + + + + + + 7.0 + + + 1.5 + + + -1 + + + -1 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3/Script/AreaAttributes.xml b/templates/mp3/Script/AreaAttributes.xml index 14f50c0b..8ddafcf2 100644 --- a/templates/mp3/Script/AreaAttributes.xml +++ b/templates/mp3/Script/AreaAttributes.xml @@ -1,112 +1,81 @@ - - AreaAttributes - - - - - never - - - - - false - Show the skybox. If no Skybox Model is specified, it will show the World's default skybox. - - - 0xF9A89E57 - - - - - - - - - - - - - 1.0, 1.0, 1.0, 0.14902 - - - -40.0 - - - 1.0 - - - 3.0 - - - 6.0 - - - 6.0 - - - 50.0 - - - - - true - - - - - - - -1 - - - 1.0 - - - 1.0 - - - 42.0 - - - - true - - - false - - - 0xF1183492 - - - - - - - - true - - - false - - - - - - - - - - - - - - - - script/common/AreaAttributes.TXTR - - 0.5 - enabled - enabled - - + + + AreaAttributes + + + + + Never + + + + + Show the skybox. If no Skybox Model is specified, it will show the World's default skybox. + false + + + 0xF9A89E57 + + + + + + + + + + + + -1 + + + 1.0 + + + 1.0 + + + 42.0 + + + + CMDL + + + + true + + + false + + + 0xF1183492 + + + + + + + + true + + + false + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/AreaDamage.xml b/templates/mp3/Script/AreaDamage.xml index 751aefc0..11cdbfa3 100644 --- a/templates/mp3/Script/AreaDamage.xml +++ b/templates/mp3/Script/AreaDamage.xml @@ -1,29 +1,24 @@ - - AreaDamage - - - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + AreaDamage + + + + + 1.0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/AreaStreamedAudioState.xml b/templates/mp3/Script/AreaStreamedAudioState.xml index 97b7e6b1..bb3b7dcb 100644 --- a/templates/mp3/Script/AreaStreamedAudioState.xml +++ b/templates/mp3/Script/AreaStreamedAudioState.xml @@ -1,43 +1,38 @@ - - AreaStreamedAudioState - - - - 0xCBF698CA - - - - - - - - - - - - - - - false - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + AreaStreamedAudioState + + + + 0xCBF698CA + + + + + + + + + + + + + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/AtomicAlpha.xml b/templates/mp3/Script/AtomicAlpha.xml index cd9da7eb..13c46587 100644 --- a/templates/mp3/Script/AtomicAlpha.xml +++ b/templates/mp3/Script/AtomicAlpha.xml @@ -1,49 +1,53 @@ - - AtomicAlpha - - RSO_AtomicAlpha.rso - - - - - - - - - - 3.0 - - - 2.0 - - - 1.5 - - - false - - - true - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - 0xC75F9516 - - enabled - enabled - - + + + RSO_AtomicAlpha.rso + + + AtomicAlpha + + + + + + + WPSC + + + + + CMDL + + + + + 3.0 + + + 2.0 + + + 1.5 + + + false + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp3/Script/AudioOccluder.xml b/templates/mp3/Script/AudioOccluder.xml index 2f748fb1..bb8d5771 100644 --- a/templates/mp3/Script/AudioOccluder.xml +++ b/templates/mp3/Script/AudioOccluder.xml @@ -1,28 +1,24 @@ - - AudioOccluder - - - - 1.0 - - - 32000 - - - - - - - - - - - - - - enabled - volume - - - + + + AudioOccluder + + + + 1.0 + + + 32000 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + BoxShape + diff --git a/templates/mp3/Script/AuroraUnit1.xml b/templates/mp3/Script/AuroraUnit1.xml index ed6576a5..ee59a171 100644 --- a/templates/mp3/Script/AuroraUnit1.xml +++ b/templates/mp3/Script/AuroraUnit1.xml @@ -1,54 +1,50 @@ - - AuroraUnit1 - - RSO_AuroraUnit1.rso - - - - - - - 360.0 - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x93AEDAC3:0x5B514E8C:0xC107A48A - 0x93AEDAC3:0x5B514E8C:0xA229FF6A - 0x867AB15E:0x5B514E8C:0xC107A48A - 0x867AB15E:0x5B514E8C:0xA229FF6A - 0xB3C5F11B:0x5B514E8C:0xC107A48A - 0xB3C5F11B:0x5B514E8C:0xA229FF6A - 0x7E397FED:0xBB52F0BE - 0x93AEDAC3:0x073842E7 - 0x93AEDAC3:0xDDD72AAD - 0x93AEDAC3:0x828C2238:0xDC89CC3C:0x2245A396 - 0x867AB15E:0x073842E7 - 0x867AB15E:0xDDD72AAD - 0x867AB15E:0x828C2238:0xDC89CC3C:0x2245A396 - 0xB3C5F11B:0x073842E7 - 0xB3C5F11B:0xDDD72AAD - 0xB3C5F11B:0x828C2238:0xDC89CC3C:0x2245A396 - - enabled - enabled - - + + + RSO_AuroraUnit1.rso + + + AuroraUnit1 + + + + + + 360.0 + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/mp3/Script/AuroraUnit2.xml b/templates/mp3/Script/AuroraUnit2.xml index b344bf7f..d0adfd06 100644 --- a/templates/mp3/Script/AuroraUnit2.xml +++ b/templates/mp3/Script/AuroraUnit2.xml @@ -1,54 +1,50 @@ - - AuroraUnit2 - - RSO_AuroraUnit2.rso - - - - - - - 360.0 - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - 0x26594DEB:0xAD62C993:0x19AAF8F3 - 0x26594DEB:0xAD62C993:0x5FCA665E - 0x26594DEB:0xAD62C993:0xC628005F - 0x26594DEB:0xAD62C993:0x07A6DF9F - 0x26594DEB:0xAD62C993:0x2E9DCA1C - 0x857BEE96:0xAD62C993:0x19AAF8F3 - 0x857BEE96:0xAD62C993:0x5FCA665E - 0x857BEE96:0xAD62C993:0xC628005F - 0x857BEE96:0xAD62C993:0x07A6DF9F - 0x857BEE96:0xAD62C993:0x2E9DCA1C - 0xE74DB2B8:0xAD62C993:0x19AAF8F3 - 0xE74DB2B8:0xAD62C993:0x5FCA665E - 0xE74DB2B8:0xAD62C993:0xC628005F - 0xE74DB2B8:0xAD62C993:0x07A6DF9F - 0xE74DB2B8:0xAD62C993:0x2E9DCA1C - - enabled - enabled - - + + + RSO_AuroraUnit2.rso + + + AuroraUnit2 + + + + + + 360.0 + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/mp3/Script/BallTrigger.xml b/templates/mp3/Script/BallTrigger.xml index 5a9f5a7c..2d873e4b 100644 --- a/templates/mp3/Script/BallTrigger.xml +++ b/templates/mp3/Script/BallTrigger.xml @@ -1,44 +1,44 @@ - - BallTrigger - - - - 20.0 - - - 60.0 - - - 20.0 - - - 1.0, 0.0, 0.0 - - - false - - - 1.0 - - - false - - - - - - - - - - - - - - - enabled - volume - - - + + + BallTrigger + + + + 20.0 + + + 60.0 + + + 20.0 + + + + 1.0 + 0.0 + 0.0 + + + + false + + + 1.0 + + + false + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + BoxShape + diff --git a/templates/mp3/Script/Beam.xml b/templates/mp3/Script/Beam.xml index 0fad822d..a7f281ec 100644 --- a/templates/mp3/Script/Beam.xml +++ b/templates/mp3/Script/Beam.xml @@ -1,28 +1,18 @@ - - Beam - - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Beam + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/BeastRider.xml b/templates/mp3/Script/BeastRider.xml index 3abd7c34..66ddc8e3 100644 --- a/templates/mp3/Script/BeastRider.xml +++ b/templates/mp3/Script/BeastRider.xml @@ -1,41 +1,29 @@ - - BeastRider - - RSO_BeastRider.rso - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x56C48141:0xB3A26A80 - 0x56C48141:0xB3343F83 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_BeastRider.rso + + + BeastRider + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp3/Script/Berserker.xml b/templates/mp3/Script/Berserker.xml index 48fdda83..1cd7d4e8 100644 --- a/templates/mp3/Script/Berserker.xml +++ b/templates/mp3/Script/Berserker.xml @@ -1,114 +1,104 @@ - - Berserker - - RSO_Berserker.rso - - - - - - - - - - 20.0 - - - 10.0 - - - - - 3.0 - - - - - 1000.0 - - - 5.0 - - - - - 1.0 - - - 2 - - - 180.0 - - - 50.0 - - - 90.0 - - - 4.0 - - - 1.0 - - - 0.5 - - - - - - - - - - 0xF12A35C6 - - - - - - - - - - - - - - - - - 0x43BBB1DD:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - 0x54F9FFA5:0x04547D34 - 0x54F9FFA5:0x82C00F9A - 0x54F9FFA5:0x499CDC3F - 0x54F9FFA5:0x5499EC87 - 0x54F9FFA5:0x9FC53F22 - 0x54F9FFA5:0x4AE57FEB - 0x54F9FFA5:0x650BA238 - 0x54F9FFA5:0x68865410 - 0x2D8DC0AF:0x04547D34 - 0x2D8DC0AF:0x82C00F9A - 0x2D8DC0AF:0x499CDC3F - 0x2D8DC0AF:0x5499EC87 - 0x2D8DC0AF:0x9FC53F22 - 0x2D8DC0AF:0x4AE57FEB - 0x2D8DC0AF:0x650BA238 - 0x2D8DC0AF:0x68865410 - 0xE10CE828:0x04547D34 - 0xE10CE828:0x82C00F9A - 0xE10CE828:0x499CDC3F - 0xE10CE828:0x5499EC87 - 0xE10CE828:0x9FC53F22 - 0xE10CE828:0x4AE57FEB - 0xE10CE828:0x650BA238 - 0xE10CE828:0x68865410 - - enabled - enabled - - + + + RSO_Berserker.rso + + + Berserker + + + + + + + + + 20.0 + + + 10.0 + + + + + 3.0 + + + + + 1000.0 + + + 5.0 + + + + + 1.0 + + + 2 + + + 180.0 + + + 50.0 + + + 90.0 + + + 4.0 + + + 1.0 + + + 0.5 + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/mp3/Script/BlinkWolf.xml b/templates/mp3/Script/BlinkWolf.xml index 5a2b83e8..0379ac04 100644 --- a/templates/mp3/Script/BlinkWolf.xml +++ b/templates/mp3/Script/BlinkWolf.xml @@ -1,314 +1,52 @@ - - BlinkWolf - - RSO_BlinkWolf.rso - - - - - - - false - - - false - - - 20.0 - - - 2.0 - - - 0.5 - - - 5.0 - - - 10.0 - - - 1.0 - - - 15.0 - - - 15.0 - - - 5 - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - - 70.0 - - - 180.0 - - - 20.0 - - - 15.0 - - - 24.0 - - - 3.0 - - - 1.0 - - - 3.0 - - - 15.0 - - - - 1.0 - - - 0.5 - - - 2.0 - - - 4.0 - - - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 2.0 - - - 1.0 - - - 1.0 - - - 5.0 - - - 1.0 - - - 1.0 - - - 5.0 - - - 100.0 - - - 1.0 - - - 5.0 - - - 5.0 - - - 2.0 - - - 5.0 - - - 2.0 - - - 1.0 - - - 10.0 - - - 2.0 - - - 5.0 - - - 10.0 - - - 15.0 - - - 10.0 - - - 60.0 - - - - - - - - - 50.0 - - - 2.0 - - - - - 1 - - - 50.0 - - - 10.0 - - - 20.0 - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_BlinkWolf.rso + + + BlinkWolf + + + + + + + + + 50.0 + + + 2.0 + + + + + 1 + + + 50.0 + + + 10.0 + + + 20.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/Cable.xml b/templates/mp3/Script/Cable.xml index 5d72bc5d..072bb5f7 100644 --- a/templates/mp3/Script/Cable.xml +++ b/templates/mp3/Script/Cable.xml @@ -1,125 +1,25 @@ - - Cable - - RSO_ScriptCable.rso - - - - - - - - - 0x436F402A - - - - - - - - - - 0x2C8482EE - - - - - - - - 0xD6629DCA - - - - - - - 0xB9B7640F - - - - - - - - false - - - 10 - - - 4.0 - - - 4.0 - - - 0x80DD21B4 - - - 0x23363FD3 - - - 0x24CF38F1 - - - 1.0 - - - false - - - false - - - - - false - - - true - - - true - - - - - 0.0 - - - 15.0 - - - 0.0167 - - - 0x23363FD3 - - - - - - - - - - - - - - - - - - - - - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_ScriptCable.rso + + + Cable + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3/Script/CameraBlurKeyframe.xml b/templates/mp3/Script/CameraBlurKeyframe.xml index 3f0d5739..7f12f5c4 100644 --- a/templates/mp3/Script/CameraBlurKeyframe.xml +++ b/templates/mp3/Script/CameraBlurKeyframe.xml @@ -1,39 +1,35 @@ - - CameraBlurKeyframe - - - - 0 - - - 0.0 - - - 0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - script/common/CameraBlurKeyframe.TXTR - - 0.5 - enabled - enabled - - + + + CameraBlurKeyframe + + + + 0 + + + 0.0 + + + 0 + + + 0.0 + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/CameraFilterKeyframe.xml b/templates/mp3/Script/CameraFilterKeyframe.xml index 05f66839..5ad477fd 100644 --- a/templates/mp3/Script/CameraFilterKeyframe.xml +++ b/templates/mp3/Script/CameraFilterKeyframe.xml @@ -1,47 +1,55 @@ - - CameraFilterKeyframe - - - - 0 - - - 0 - - - 0 - - - 0 - - - 1.0, 1.0, 1.0, 1.0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - - - script/common/CameraFilterKeyframe.TXTR - - 0.5 - enabled - enabled - - + + + CameraFilterKeyframe + + + + 0 + + + 0 + + + 0 + + + 0 + + + + 1.0 + 1.0 + 1.0 + + + + 0.0 + + + 0.0 + + + + TXTR + + + + + CMDL + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/CameraHint.xml b/templates/mp3/Script/CameraHint.xml index ae1e5439..e57d707f 100644 --- a/templates/mp3/Script/CameraHint.xml +++ b/templates/mp3/Script/CameraHint.xml @@ -1,294 +1,35 @@ - - CameraHint - - - - 50 - - - 0.0 - - - 30853 - - - - - 1 - - - - - - - 0xC239D6DB - - - - - - - - - - - - 2 - - - - - 0xB745A689 - - - - - - 5.0 - - - 10.0 - - - 2.736 - - - - - - - 0.01 - - - - - - - - - - - 80.0 - - - 4.0 - - - - - - - - - - - 30.0 - - - 8.0 - - - 2.5 - - - - - - - - - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - - 0 - - - 0xD25FBD92 - - - - - - - - - - - 4.0 - - - 3.0 - - - - - - - - - - 320 - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - 0x95BBB57E - - - - - - - - - - - - - - - - - 0 - - - - - - - - 0xB1059189 - - - - - - - - - - - - - - - - - - 0xA93DE248 - - - - - - - - 0x0D2CFE11 - - - - - - - - 60.0 - - - - - - - - - 3 - - - 100.0 - - - 135.0 - - - - - - 3 - - - 100.0 - - - 135.0 - - - - - - 3 - - - 100.0 - - - 135.0 - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + CameraHint + + + + 50 + + + 0.0 + + + 30853 + + + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/CameraPitch.xml b/templates/mp3/Script/CameraPitch.xml index 0d47f95d..5aa24813 100644 --- a/templates/mp3/Script/CameraPitch.xml +++ b/templates/mp3/Script/CameraPitch.xml @@ -1,32 +1,27 @@ - - CameraPitch - - - - - - false - - - 20.0 - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + CameraPitch + + + + + + false + + + 20.0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/CameraShaker.xml b/templates/mp3/Script/CameraShaker.xml index 591a7b02..4d8d2569 100644 --- a/templates/mp3/Script/CameraShaker.xml +++ b/templates/mp3/Script/CameraShaker.xml @@ -1,41 +1,21 @@ - - CameraShaker - - - - - - 48 - - - 5.0 - - - 1.0 - - - - - - - - - - - - - - - - - - - - script/common/CameraShaker.TXTR - - 0.5 - enabled - enabled - - + + + CameraShaker + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/CannonBall.xml b/templates/mp3/Script/CannonBall.xml index 91f0ee04..463a8bbb 100644 --- a/templates/mp3/Script/CannonBall.xml +++ b/templates/mp3/Script/CannonBall.xml @@ -1,23 +1,22 @@ - - CannonBall - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + CannonBall + + + + + PART + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/CinematicCamera.xml b/templates/mp3/Script/CinematicCamera.xml index 896b3fd7..7cb6ccd0 100644 --- a/templates/mp3/Script/CinematicCamera.xml +++ b/templates/mp3/Script/CinematicCamera.xml @@ -1,91 +1,81 @@ - - CinematicCamera - - - - - 0x85F15E1D - - - - - - - false - - - - 0xC1A4F436 - - - - - - - - - - - - - - - - - 0x639D1F97 - - - - - - - - - 10.0 - - - 2132 - - - - - - - 0x26AD4A6B - - - 12 - - - - - true - - - - - - - - - - - - - - - - - - - - - - - script/common/Camera.CMDL - - enabled - enabled - - + + + CinematicCamera + + + + + 0x85F15E1D + + + + + + + false + + + + 0xC1A4F436 + + + + + + + + + + + 0x639D1F97 + + + + + + + + + 10.0 + + + 2132 + + + + + + + 0x26AD4A6B + + + 12 + + + + + true + + + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/mp3/Script/ColorModulate.xml b/templates/mp3/Script/ColorModulate.xml index 035310bb..f9e38402 100644 --- a/templates/mp3/Script/ColorModulate.xml +++ b/templates/mp3/Script/ColorModulate.xml @@ -1,86 +1,91 @@ - - ColorModulate - - - - 1.0, 1.0, 1.0, 0.0 - - - 1.0, 1.0, 1.0, 1.0 - - - 0xE51B07EB - - - - - - - - - - - - - - - - 1.0 - - - 1.0 - - - false - - - false - - - true - - - true - - - false - - - false - - - true - - - false - - - false - - - false - - - false - - - - - - - - - - - - - - - script/common/ColorModulate.TXTR - - 0.5 - enabled - enabled - - + + + ColorModulate + + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + + 1.0 + 1.0 + 1.0 + + + + 0xE51B07EB + + + + + + + + + + + + + + + + 1.0 + + + 1.0 + + + false + + + false + + + true + + + true + + + false + + + false + + + true + + + false + + + false + + + false + + + false + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/CombatTrooper.xml b/templates/mp3/Script/CombatTrooper.xml index 5d7e7974..ccf45b29 100644 --- a/templates/mp3/Script/CombatTrooper.xml +++ b/templates/mp3/Script/CombatTrooper.xml @@ -1,179 +1,59 @@ - - CombatTrooper - - RSO_CombatTrooper.rso - - - - - - - - 1.0 - - - 1 - - - never - - - never - - - never - - - never - - - 100.0 - - - never - - - never - - - - - - - false - - - - false - - - false - - - true - - - false - - - false - - - 10.0 - - - false - - - 30.0 - - - 2.0 - - - 2.0 - - - 1.0 - - - false - - - - - - - 5.0 - - - - - - - - - true - - - 10.0 - - - 1000.0 - - - false - - - false - - - 60.0 - - - 90.0 - - - true - - - false - - - true - - - - - - - false - - - 25.0 - - - 2.0 - - - 5.0 - - - 1.0 - - - 2.0 - - - 1.0 - - - 2.0 - - - 0 - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - 0xBF9BA6CC:0x50340852 - - enabled - enabled - - + + + RSO_CombatTrooper.rso + + + CombatTrooper + + + + + + + 1.0 + + + 1 + + + Never + + + Never + + + Never + + + Never + + + 100.0 + + + Never + + + Never + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp3/Script/ConditionalRelay.xml b/templates/mp3/Script/ConditionalRelay.xml index f2327569..2a544a04 100644 --- a/templates/mp3/Script/ConditionalRelay.xml +++ b/templates/mp3/Script/ConditionalRelay.xml @@ -1,52 +1,48 @@ - - ConditionalRelay - - - - false - - - 7 - - - - - - 0 - - - - - - - 0 - - - - - - - 0 - - - - - - - - - - - - - - - - script/common/ConditionalRelay.TXTR - - 0.5 - enabled - enabled - - + + + ConditionalRelay + + + + false + + + 7 + + + + + + 0x0 + + + + + + + 0x0 + + + + + + + 0x0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/ContextActionButtonPressing.xml b/templates/mp3/Script/ContextActionButtonPressing.xml index adaa364d..5dc75ee2 100644 --- a/templates/mp3/Script/ContextActionButtonPressing.xml +++ b/templates/mp3/Script/ContextActionButtonPressing.xml @@ -1,47 +1,25 @@ - - ContextActionButtonPressing - - RSO_ScriptContextActionButtonPressing.rso - - - - - - - -0.75 - - - 0.75 - - - 0.75 - - - -0.75 - - - 0.1 - - - - - - - - - - - - - - - - - 0x4044D9E5 - - 0.5 - enabled - enabled - - + + + RSO_ScriptContextActionButtonPressing.rso + + + ContextActionButtonPressing + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/ContextActionCombinationLock.xml b/templates/mp3/Script/ContextActionCombinationLock.xml index 4fa04f77..917e2c60 100644 --- a/templates/mp3/Script/ContextActionCombinationLock.xml +++ b/templates/mp3/Script/ContextActionCombinationLock.xml @@ -1,44 +1,55 @@ - - ContextActionCombinationLock - - - - 2.0 - - - 1.0 - - - 0.075 - - - 1.5 - - - true - - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ContextActionCombinationLock + + + + 2.0 + + + 1.0 + + + 0.075000003 + + + 1.5 + + + true + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/ContextActionImageFocus.xml b/templates/mp3/Script/ContextActionImageFocus.xml index 50d0d423..36aa0962 100644 --- a/templates/mp3/Script/ContextActionImageFocus.xml +++ b/templates/mp3/Script/ContextActionImageFocus.xml @@ -1,56 +1,55 @@ - - ContextActionImageFocus - - - - 0.0 - - - -90.0 - - - 90.0 - - - 2.0 - - - 0.0 - - - 1.0 - - - 2.0 - - - 4.0 - - - 1.0 - - - 0.075 - - - - -1 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ContextActionImageFocus + + + + 0.0 + + + -90.0 + + + 90.0 + + + 2.0 + + + 0.0 + + + 1.0 + + + 2.0 + + + 4.0 + + + 1.0 + + + 0.075000003 + + + + CAUD + + + + -1 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/ContextActionWelding.xml b/templates/mp3/Script/ContextActionWelding.xml index 98e8778f..ac6770eb 100644 --- a/templates/mp3/Script/ContextActionWelding.xml +++ b/templates/mp3/Script/ContextActionWelding.xml @@ -1,71 +1,27 @@ - - ContextActionWelding - - RSO_ScriptContextActionWelding.rso - - - - - - - - - - - - - - - - - - - 1.0, 0.0, 0.0, 1.0 - - - 1.0, 1.0, 1.0, 1.0 - - - - - - - - - - - 0.25 - - - 0.4 - - - 100.0 - - - 10.0 - - - - - - - - - - - - - - - - - 0x2F74DC89:0x6ADE8B91 - 0x7E397FED:0xBB52F0BE - 0x2F74DC89:0xCECAD2C3 - - enabled - enabled - - + + + RSO_ScriptContextActionWelding.rso + + + ContextActionWelding + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp3/Script/ContextSensitiveAction.xml b/templates/mp3/Script/ContextSensitiveAction.xml index 03599443..455292a4 100644 --- a/templates/mp3/Script/ContextSensitiveAction.xml +++ b/templates/mp3/Script/ContextSensitiveAction.xml @@ -1,58 +1,53 @@ - - ContextSensitiveAction - - RSO_ScriptContextSensitiveAction.rso - - - - - -1 - - - 0xE20A1F5E - - - - - - - - 0x42F04E89 - - - - - - - - 0xB44651B4 - - - - - - - - 1.0 - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RSO_ScriptContextSensitiveAction.rso + + + ContextSensitiveAction + + + + -1 + + + 0xE20A1F5E + + + + + + + + 0x42F04E89 + + + + + + + + 0xB44651B4 + + + + + + + + 1.0 + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/ContextSensitiveActivator.xml b/templates/mp3/Script/ContextSensitiveActivator.xml index eef0ba7a..22f09d59 100644 --- a/templates/mp3/Script/ContextSensitiveActivator.xml +++ b/templates/mp3/Script/ContextSensitiveActivator.xml @@ -1,47 +1,42 @@ - - ContextSensitiveActivator - - RSO_ScriptContextSensitiveActivator.rso - - - - - 5.0 - - - 90.0 - - - 20.0 - - - false - - - 0x62792E89 - - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RSO_ScriptContextSensitiveActivator.rso + + + ContextSensitiveActivator + + + + 5.0 + + + 90.0 + + + 20.0 + + + false + + + 0x62792E89 + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/ControlHint.xml b/templates/mp3/Script/ControlHint.xml index abaab025..de4f6fde 100644 --- a/templates/mp3/Script/ControlHint.xml +++ b/templates/mp3/Script/ControlHint.xml @@ -1,54 +1,49 @@ - - ControlHint - - - - 10 - - - 0.0 - - - 0 - - - 0 - - - 0.0 - - - 0.0 - - - 0.01 - - - 0 - - - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ControlHint + + + + 10 + + + 0.0 + + + 0 + + + 0 + + + 0.0 + + + 0.0 + + + 0.0099999998 + + + 0 + + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/ControllerAction.xml b/templates/mp3/Script/ControllerAction.xml index d4690314..cb9f8722 100644 --- a/templates/mp3/Script/ControllerAction.xml +++ b/templates/mp3/Script/ControllerAction.xml @@ -1,35 +1,30 @@ - - ControllerAction - - - - - false - - - false - - - false - - - 0.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ControllerAction + + + + + false + + + false + + + false + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/Counter.xml b/templates/mp3/Script/Counter.xml index 4c1f2b6a..f4f8dfb3 100644 --- a/templates/mp3/Script/Counter.xml +++ b/templates/mp3/Script/Counter.xml @@ -1,70 +1,33 @@ - - Counter - - - - 0 - - - 4 - - - false - - - false - - - - - 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - 9 - - - 10 - - - - - - - - - - - - - - - - script/common/Counter.TXTR - - 0.5 - enabled - enabled - - + + + Counter + + + + 0 + + + 4 + + + false + + + false + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/CoverPoint.xml b/templates/mp3/Script/CoverPoint.xml index 293e1e86..e1ec4803 100644 --- a/templates/mp3/Script/CoverPoint.xml +++ b/templates/mp3/Script/CoverPoint.xml @@ -1,49 +1,44 @@ - - CoverPoint - - - - 1 - - - true - - - 180.0 - - - 90.0 - - - 5.0 - - - 500.0 - - - 10.0 - - - true - - - 0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + CoverPoint + + + + 1 + + + true + + + 180.0 + + + 90.0 + + + 5.0 + + + 500.0 + + + 10.0 + + + true + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/CrossAreaRelay.xml b/templates/mp3/Script/CrossAreaRelay.xml index 3ada6089..c937939f 100644 --- a/templates/mp3/Script/CrossAreaRelay.xml +++ b/templates/mp3/Script/CrossAreaRelay.xml @@ -1,23 +1,18 @@ - - CrossAreaRelay - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + CrossAreaRelay + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/DamageActor.xml b/templates/mp3/Script/DamageActor.xml index 55a4adb9..f3790274 100644 --- a/templates/mp3/Script/DamageActor.xml +++ b/templates/mp3/Script/DamageActor.xml @@ -1,23 +1,18 @@ - - DamageActor - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + DamageActor + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/DamageableTrigger.xml b/templates/mp3/Script/DamageableTrigger.xml index 9454c78a..8c9ef28f 100644 --- a/templates/mp3/Script/DamageableTrigger.xml +++ b/templates/mp3/Script/DamageableTrigger.xml @@ -1,48 +1,45 @@ - - DamageableTrigger - - - - - - false - - - false - - - false - - - false - - - - 0x1DB35D5F - - - false - - - false - - - - - - - - - - - - - - script/common/DamageableTrigger.TXTR - - enabled - volume - - - + + + DamageableTrigger + + + + + + false + + + false + + + false + + + false + + + + 0x1DB35D5F + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + ScaleVolume + AxisAlignedBoxShape + diff --git a/templates/mp3/Script/DamageableTriggerOrientated.xml b/templates/mp3/Script/DamageableTriggerOrientated.xml index e87e9754..5a12c8eb 100644 --- a/templates/mp3/Script/DamageableTriggerOrientated.xml +++ b/templates/mp3/Script/DamageableTriggerOrientated.xml @@ -1,44 +1,40 @@ - - DamageableTriggerOrientated - - - - - - false - - - false - - - false - - - false - - - - 0x1DB35D5F - - - - false - - - - - - - - - - - - - - enabled - volume - - - + + + DamageableTriggerOrientated + + + + + + false + + + false + + + false + + + false + + + + 0x1DB35D5F + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + BoxShape + diff --git a/templates/mp3/Script/DarkSamus.xml b/templates/mp3/Script/DarkSamus.xml index 00db5ccd..db4469f9 100644 --- a/templates/mp3/Script/DarkSamus.xml +++ b/templates/mp3/Script/DarkSamus.xml @@ -1,124 +1,35 @@ - - DarkSamus - - RSO_DarkSamus.rso - - - - - - - 80.0 - - - 60.0 - - - 40.0 - - - 20.0 - - - -1.0 - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - - - - - - - - - - - - - - - 100.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x0214A7EB:0x5377D4B5 - 0xB3774750:0xA244C9D8 - 0x1464AE05:0xA244C9D8 - 0x24D00673:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_DarkSamus.rso + + + DarkSamus + + + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + diff --git a/templates/mp3/Script/DarkSamusEcho.xml b/templates/mp3/Script/DarkSamusEcho.xml index 8b30233e..fd0ab170 100644 --- a/templates/mp3/Script/DarkSamusEcho.xml +++ b/templates/mp3/Script/DarkSamusEcho.xml @@ -1,45 +1,41 @@ - - DarkSamusEcho - - RSO_DarkSamusEcho.rso - - - - - - - 360.0 - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x6D8A6608:0x26B752E1 - 0x35C49DDD:0x26B752E1 - 0xA1178BCF:0x26B752E1 - 0x7E397FED:0xBB52F0BE - 0x6D8A6608:0xDC89CC3C:0x2245A396 - 0x35C49DDD:0xDC89CC3C:0x2245A396 - 0xA1178BCF:0xDC89CC3C:0x2245A396 - - enabled - enabled - - + + + RSO_DarkSamusEcho.rso + + + DarkSamusEcho + + + + + + 360.0 + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + + diff --git a/templates/mp3/Script/Debris.xml b/templates/mp3/Script/Debris.xml index 1aa32c61..02b77168 100644 --- a/templates/mp3/Script/Debris.xml +++ b/templates/mp3/Script/Debris.xml @@ -1,201 +1,29 @@ - - Debris - - - - - false - - - - - - - - 180.0 - - - 180.0 - - - 0.0, 0.0, 1.0 - - - 0.0, 0.0, 0.0 - - - true - - - 5.0 - - - 15.0 - - - -1.0, -1.0, -1.0 - - - 1.0, 1.0, 1.0 - - - 2.0 - - - 3.0 - - - 0.0 - - - 10.0 - - - 80.0 - - - 1.0, 1.0, 1.0, 0.0 - - - 1.0, 1.0, 1.0, 1.0 - - - 1.0, 1.0, 1.0, 0.0 - - - false - - - false - - - 80.0 - - - 1.0, 1.0, 1.0 - - - 0.375 - - - 0.1 - - - 25.0 - - - 1.0 - - - - 0.0, 0.0, 0.0 - - - - 1 - - - 1.0 - - - 1.0 - - - 0.1 - - - 0.1 - - - 0.1 - - - 0.1 - - - 0.1 - - - - 1.0, 1.0, 1.0 - - - false - - - false - - - true - - - - - 1.0, 1.0, 1.0 - - - false - - - false - - - true - - - - true - - - true - - - false - - - 1.0, 1.0, 1.0 - - - false - - - false - - - true - - - false - - - false - - - false - - - true - - - - - - - - - - - - - - - - - 0x7E397FED:0xBB52F0BE - 0x8A1C821D:0xC27FFA8F - - enabled - enabled - - + + + Debris + + + + + false + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/DefenseMechanoid.xml b/templates/mp3/Script/DefenseMechanoid.xml index 28b38082..4cfd50b2 100644 --- a/templates/mp3/Script/DefenseMechanoid.xml +++ b/templates/mp3/Script/DefenseMechanoid.xml @@ -1,103 +1,38 @@ - - DefenseMechanoid - - RSO_DefenseMechanoid.rso - - - - - - - - - - - - - - - - - - - - - - - 40.0 - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x1464AE05:0xA244C9D8 - 0x24D00673:0xA244C9D8 - 0xF0CE5372:0xC47A5224 - 0xF0CE5372:0x38FABDE9 - 0xF0CE5372:0x4BA2833E - 0xF0CE5372:0xC60FB911 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_DefenseMechanoid.rso + + + DefenseMechanoid + + + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + + diff --git a/templates/mp3/Script/DialogueMenu.xml b/templates/mp3/Script/DialogueMenu.xml index 5e5ceb71..cc8d0aed 100644 --- a/templates/mp3/Script/DialogueMenu.xml +++ b/templates/mp3/Script/DialogueMenu.xml @@ -1,51 +1,68 @@ - - DialogueMenu - - - - - - 100 - - - 100 - - - 1.0, 1.0, 1.0, 1.0 - - - 0.0, 0.0, 0.0, 0.0 - - - - 110 - - - 0x29EF53A1 - - - - - - - - - - - - - - - - - - - - - 0xD1B74151 - - enabled - enabled - - + + + DialogueMenu + + + + + + 100 + + + 100 + + + + 1.0 + 1.0 + 1.0 + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + CMDL + + + + 110 + + + 0x29EF53A1 + + + + + + + + + CAUD + + + + + CAUD + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/mp3/Script/DistanceFog.xml b/templates/mp3/Script/DistanceFog.xml index 8b4bb6bb..f1cd0f55 100644 --- a/templates/mp3/Script/DistanceFog.xml +++ b/templates/mp3/Script/DistanceFog.xml @@ -1,62 +1,66 @@ - - DistanceFog - - - - - false - - - - - 0xD863C36B - - - - - - - 0 - - - 0.0, 1.0, 0.0, 1.0 - - - - 0.0 - - - - false - - - false - - - 0.0, 1.0, 0.0, 1.0 - - - - 0.0 - - - - - - - - - - - - - - - script/common/DistanceFog.TXTR - - 0.5 - enabled - enabled - - + + + DistanceFog + + + + + false + + + + + 0xD863C36B + + + + + + + 0 + + + + 0.0 + 1.0 + 0.0 + + + + + 0.0 + + + + false + + + false + + + + 0.0 + 1.0 + 0.0 + + + + + 0.0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/Dock.xml b/templates/mp3/Script/Dock.xml index 38d98633..bd350289 100644 --- a/templates/mp3/Script/Dock.xml +++ b/templates/mp3/Script/Dock.xml @@ -1,39 +1,36 @@ - - Dock - - - - 0 - - - 0 - - - false - - - true - - - true - - - - - - - - - - - - - - script/common/Dock.TXTR - - enabled - volume - - - + + + Dock + + + + 0 + + + 0 + + + false + + + true + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + ScaleVolume + AxisAlignedBoxShape + diff --git a/templates/mp3/Script/Door.xml b/templates/mp3/Script/Door.xml index d2f603f2..e9d62930 100644 --- a/templates/mp3/Script/Door.xml +++ b/templates/mp3/Script/Door.xml @@ -1,88 +1,112 @@ - - Door - - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - false - - - - - true - - - true - - - - - - 0.0, 1.0, 1.0, 1.0 - - - - - 0.0, 0.0, 0.0 - - - false - - - false - - - false - - - false - - - 0.5 - - - 0.5 - - - 0.5 - - - 0.5 - - - 0.5 - - - false - - - - - - - - - - - - - - - - - 0x4044D9E5 - 0xB20CC271 - 0xAE5B2114 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + Door + + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + false + + + + + true + + + true + + + + + CMDL + + + + + CMDL + + + + + 0.0 + 1.0 + 1.0 + + + + + TXTR + + + + + + 0.0 + 0.0 + 0.0 + + + + false + + + false + + + false + + + false + + + 0.5 + + + 0.5 + + + 0.5 + + + 0.5 + + + 0.5 + + + false + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp3/Script/DynamicLight.xml b/templates/mp3/Script/DynamicLight.xml index f0da6e97..a04a83d4 100644 --- a/templates/mp3/Script/DynamicLight.xml +++ b/templates/mp3/Script/DynamicLight.xml @@ -1,105 +1,47 @@ - - DynamicLight - - - - 2 - - - true - - - true - - - true - - - true - - - true - - - 1.0, 1.0, 1.0, 1.0 - - - - - - 0.0 - - - false - - - - - - - 0 - - - - 0.0 - - - false - - - - - - - - 0.0 - - - false - - - - - - - false - - - - - 10.0 - - - - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - - false - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + DynamicLight + + + + 2 + + + true + + + true + + + true + + + true + + + true + + + + 1.0 + 1.0 + 1.0 + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/Effect.xml b/templates/mp3/Script/Effect.xml index c253e0d2..01948746 100644 --- a/templates/mp3/Script/Effect.xml +++ b/templates/mp3/Script/Effect.xml @@ -1,99 +1,102 @@ - - Effect - - - - - true - - - false - - - false - - - false - - - 5.0 - - - 0.5 - - - 0.2 - - - 0.1 - - - false - - - 20.0 - - - 30.0 - - - 0.0 - - - 5.0 - - - 10.0 - - - true - - - true - - - true - - - false - - - 0 - - - - false - - - false - - - - - 10.0 - - - false - - - false - - - - - - - - - - - - - - script/common/Effect.TXTR - - enabled - enabled - - + + + Effect + + + + + PART + ELSC + SPSC + SWHC + + + + true + + + false + + + false + + + false + + + 5.0 + + + 0.5 + + + 0.2 + + + 0.1 + + + false + + + 20.0 + + + 30.0 + + + 0.0 + + + 5.0 + + + 10.0 + + + true + + + true + + + true + + + false + + + 0 + + + + false + + + false + + + + + 10.0 + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/mp3/Script/EffectRepulsor.xml b/templates/mp3/Script/EffectRepulsor.xml index 289a5801..ddb7d748 100644 --- a/templates/mp3/Script/EffectRepulsor.xml +++ b/templates/mp3/Script/EffectRepulsor.xml @@ -1,39 +1,38 @@ - - EffectRepulsor - - - - 0xFB73F2B8 - - - - 0.1 - - - 0.1 - - - - - 1.0 - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + EffectRepulsor + + + + 0xFB73F2B8 + + + + PART + + + + 0.1 + + + 0.1 + + + + + 1.0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/ElectroMagneticPulse.xml b/templates/mp3/Script/ElectroMagneticPulse.xml index e4c48013..2eb88199 100644 --- a/templates/mp3/Script/ElectroMagneticPulse.xml +++ b/templates/mp3/Script/ElectroMagneticPulse.xml @@ -1,50 +1,49 @@ - - ElectroMagneticPulse - - - - - false - - - - - 0.1 - - - 34.0 - - - 1.333 - - - 1.0 - - - 3.0 - - - 0.4 - - - 0.8 - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ElectroMagneticPulse + + + + + false + + + + + 0.1 + + + 34.0 + + + 1.3329999 + + + 1.0 + + + 3.0 + + + 0.40000001 + + + 0.80000001 + + + + PART + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/EnvFxDensityController.xml b/templates/mp3/Script/EnvFxDensityController.xml index 9bc9d147..9e8be30d 100644 --- a/templates/mp3/Script/EnvFxDensityController.xml +++ b/templates/mp3/Script/EnvFxDensityController.xml @@ -1,28 +1,23 @@ - - EnvFxDensityController - - - - 0.5 - - - 500 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + EnvFxDensityController + + + + 0.5 + + + 500 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/EyePod.xml b/templates/mp3/Script/EyePod.xml index 1f3200b9..6be70b1b 100644 --- a/templates/mp3/Script/EyePod.xml +++ b/templates/mp3/Script/EyePod.xml @@ -1,131 +1,59 @@ - - EyePod - - RSO_EyePod.rso - - - - - - - - 20.0 - - - 40.0 - - - 5.0 - - - 2.0 - - - 5.0 - - - 1 - - - 4 - - - 0.25 - - - 0.5 - - - 0.25 - - - 0.5 - - - 5.0 - - - 7.0 - - - - - - - 5.0 - - - true - - - 20.0 - - - 2.0 - - - - - - false - - - false - - - - - - - - - - 100.0 - - - 2.0 - - - - - 1.0 - - - never - - - never - - - 100.0 - - - never - - - never - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_EyePod.rso + + + EyePod + + + + + + + + + + 100.0 + + + 2.0 + + + + + 1.0 + + + Never + + + Never + + + 100.0 + + + Never + + + Never + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/FalsePerspective.xml b/templates/mp3/Script/FalsePerspective.xml index ad8ebbf3..072641bd 100644 --- a/templates/mp3/Script/FalsePerspective.xml +++ b/templates/mp3/Script/FalsePerspective.xml @@ -1,31 +1,26 @@ - - FalsePerspective - - - - 0.0 - - - 20.0 - - - 8192.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + FalsePerspective + + + + 0.0 + + + 20.0 + + + 8192.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/FargullHatcher.xml b/templates/mp3/Script/FargullHatcher.xml index a1e5445e..d566557b 100644 --- a/templates/mp3/Script/FargullHatcher.xml +++ b/templates/mp3/Script/FargullHatcher.xml @@ -1,85 +1,46 @@ - - FargullHatcher - - RSO_FargullHatcher.rso - - - - - - - false - - - 20.0 - - - 20.0 - - - 20.0 - - - - - 1.0 - - - 5 - - - 10.0 - - - 20.0 - - - 0.5 - - - 2.0 - - - - - - - - - 100.0 - - - 2.0 - - - - - 1.0 - - - 100.0 - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_FargullHatcher.rso + + + FargullHatcher + + + + + + + + + 100.0 + + + 2.0 + + + + + 1.0 + + + 100.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/FargullHatcherSwarm.xml b/templates/mp3/Script/FargullHatcherSwarm.xml index 4098934d..818ce6e6 100644 --- a/templates/mp3/Script/FargullHatcherSwarm.xml +++ b/templates/mp3/Script/FargullHatcherSwarm.xml @@ -1,46 +1,34 @@ - - FargullHatcherSwarm - - RSO_FargullHatcherSwarm.rso - - - - - - - true - - - - - - - 4.0 - - - 25.0 - - - - - - - - - - - - - - - - - 0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - volume - - - + + + RSO_FargullHatcherSwarm.rso + + + FargullHatcherSwarm + + + + + + true + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + ScaleVolume + BoxShape + diff --git a/templates/mp3/Script/FishCloud.xml b/templates/mp3/Script/FishCloud.xml index a38458b2..7b97c415 100644 --- a/templates/mp3/Script/FishCloud.xml +++ b/templates/mp3/Script/FishCloud.xml @@ -1,175 +1,171 @@ - - FishCloud - - - - - - 20 - - - 0.0 - - - 3.0 - - - 0.0 - - - 2.0 - - - 0.4 - - - 0.9 - - - 1.0 - - - 1.0 - - - 0.4 - - - 0.2 - - - 0.0 - - - 0.0 - - - 0.0 - - - 30.0 - - - 0.1 - - - 0.1 - - - 0.5 - - - 3 - - - 0xC22624A2 - - - - - - - - 1.0, 1.0, 1.0, 1.0 - - - false - - - 0.0 - - - 0.0 - - - 0.0 - - - - 0 - - - 1.0 - - - - 0 - - - 1.0 - - - - 0 - - - 1.0 - - - - 0 - - - 1.0 - - - - - 20.0 - - - 25.0 - - - true - - - true - - - - - 2.0 - - - 30.0 - - - 1.0 - - - 2.0 - - - - 0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - - - 0xA244C9D8 - 0x7990A3B6 - - enabled - volume - - - + + + FishCloud + + + + + CMDL + + + + + 20 + + + 0.0 + + + 3.0 + + + 0.0 + + + 2.0 + + + 0.40000001 + + + 0.89999998 + + + 1.0 + + + 1.0 + + + 0.40000001 + + + 0.2 + + + 0.0 + + + 0.0 + + + 0.0 + + + 30.0 + + + 0.1 + + + 0.1 + + + 0.5 + + + 3 + + + 0xC22624A2 + + + + + + + + + 1.0 + 1.0 + 1.0 + + + + false + + + 0.0 + + + 0.0 + + + 0.0 + + + + PART + + + + 0 + + + 1.0 + + + + PART + + + + 0 + + + 1.0 + + + + 0 + + + 1.0 + + + + 0 + + + 1.0 + + + + CAUD + + + + + CAUD + + + + 20.0 + + + 25.0 + + + true + + + true + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + + ScaleVolume + BoxShape + diff --git a/templates/mp3/Script/FishCloudModifier.xml b/templates/mp3/Script/FishCloudModifier.xml index ba804819..2175fc83 100644 --- a/templates/mp3/Script/FishCloudModifier.xml +++ b/templates/mp3/Script/FishCloudModifier.xml @@ -1,34 +1,29 @@ - - FishCloudModifier - - - - false - - - false - - - 8.0 - - - 0.4 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + FishCloudModifier + + + + false + + + false + + + 8.0 + + + 0.40000001 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/FlyerSwarm.xml b/templates/mp3/Script/FlyerSwarm.xml index a4c03ecc..e642529c 100644 --- a/templates/mp3/Script/FlyerSwarm.xml +++ b/templates/mp3/Script/FlyerSwarm.xml @@ -1,33 +1,30 @@ - - FlyerSwarm - - - - - - true - - - - - - - - - - - - - - - - - 0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - volume - - - + + + FlyerSwarm + + + + + + true + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + ScaleVolume + BoxShape + diff --git a/templates/mp3/Script/FlyingPirate.xml b/templates/mp3/Script/FlyingPirate.xml index 7a415b48..0b7913b6 100644 --- a/templates/mp3/Script/FlyingPirate.xml +++ b/templates/mp3/Script/FlyingPirate.xml @@ -1,281 +1,45 @@ - - FlyingPirate - - RSO_FlyingPirate.rso - - - - - - - 360.0 - - - - - - - - false - - - true - - - false - - - false - - - false - - - 7.0 - - - 50.0 - - - 30.0 - - - 5.0 - - - 1.0 - - - 10.0 - - - 50.0 - - - 2.0 - - - 100.0 - - - - - 15.0 - - - 30.0 - - - 20.0 - - - 5.0 - - - 15.0 - - - 90.0 - - - 20.0 - - - 20.0 - - - 30.0 - - - 4.0 - - - 80.0 - - - 80.0 - - - 20.0 - - - 30.0 - - - 100.0 - - - 30.0 - - - 3.0 - - - - - - - - - - - 50.0 - - - 3.0 - - - 1.0 - - - 0.1 - - - - - - - - - - - - - 10.0 - - - 20.0 - - - 50.0 - - - 3.0 - - - 1.0 - - - - - - - - - - - false - - - - - 100.0 - - - 5.0 - - - - - - - - - - - - - - - - - - - 120.0 - - - 5.0 - - - 1.0 - - - 2.0 - - - - - - - - - - - false - - - false - - - - - 5.0 - - - 5.0 - - - 10.0 - - - 5.0 - - - 15.0 - - - 30.0 - - - 30.0 - - - - - 60.0 - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - 0xB327E803:0x95C8719D - 0xB327E803:0xA0705491 - 0xB327E803:0x2263E77F:0x2245A396 - 0xB327E803:0x70B96A25:0x68002BD7 - 0xB327E803:0x70B96A25:0xAD315C7C - 0xB327E803:0x70B96A25:0x042A25ED - 0xB327E803:0x70B96A25:0xE39B8B1E - 0xB327E803:0x70B96A25:0x356C166A - 0xB327E803:0x70B96A25:0x1CA4A298 - 0xB327E803:0x70B96A25:0xDF44507E - 0xB327E803:0x70B96A25:0xD2C9A656 - 0xB327E803:0x70B96A25:0xD4E26A8E - - enabled - enabled - - + + + RSO_FlyingPirate.rso + + + FlyingPirate + + + + + + 360.0 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + + + + + + + + diff --git a/templates/mp3/Script/FogOverlay.xml b/templates/mp3/Script/FogOverlay.xml index b212c63c..77618765 100644 --- a/templates/mp3/Script/FogOverlay.xml +++ b/templates/mp3/Script/FogOverlay.xml @@ -1,67 +1,71 @@ - - FogOverlay - - - - 1.0 - - - 1.0 - - - 1.0 - - - false - - - 1.0, 1.0, 1.0, 0.0 - - - 0.5 - - - 0.2 - - - 0.1 - - - 0.1 - - - 1.0 - - - 1.0 - - - 0.0, 0.0, 0.0 - - - 0.1 - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + FogOverlay + + + + 1.0 + + + 1.0 + + + 1.0 + + + false + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + 0.5 + + + 0.2 + + + 0.1 + + + 0.1 + + + 1.0 + + + 1.0 + + + + 0.0 + 0.0 + 0.0 + + + + 0.1 + + + 1.0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/FogVolume.xml b/templates/mp3/Script/FogVolume.xml index 6405b313..0cf02228 100644 --- a/templates/mp3/Script/FogVolume.xml +++ b/templates/mp3/Script/FogVolume.xml @@ -1,40 +1,43 @@ - - FogVolume - - - - - - - 2.0, 2.0, 2.0 - - - - - - - 0.0 - - - 1.0 - - - 1.0, 1.0, 1.0, 1.0 - - - - - - - - - - - - - - enabled - enabled - - + + + FogVolume + + + + + + + + 2.0 + 2.0 + 2.0 + + + + + + + + 0.0 + + + 1.0 + + + + 1.0 + 1.0 + 1.0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/mp3/Script/Friendly.xml b/templates/mp3/Script/Friendly.xml index bf322e2d..02f82f91 100644 --- a/templates/mp3/Script/Friendly.xml +++ b/templates/mp3/Script/Friendly.xml @@ -1,183 +1,59 @@ - - Friendly - - RSO_Friendly.rso - - - - - - - - 1.0 - - - 1 - - - never - - - never - - - never - - - never - - - 100.0 - - - never - - - never - - - - - - - false - - - - false - - - false - - - true - - - false - - - false - - - 10.0 - - - false - - - 30.0 - - - 2.0 - - - 2.0 - - - 1.0 - - - false - - - - - - - 5.0 - - - - - - - - - true - - - 10.0 - - - 1000.0 - - - false - - - false - - - 60.0 - - - 90.0 - - - true - - - false - - - true - - - - - - - true - - - - - true - - - 2.0 - - - 6.0 - - - 3 - - - 0.1 - - - 0.5 - - - 20.0 - - - - - false - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - 0xBF9BA6CC:0x50340852 - - enabled - enabled - - + + + RSO_Friendly.rso + + + Friendly + + + + + + + 1.0 + + + 1 + + + Never + + + Never + + + Never + + + Never + + + 100.0 + + + Never + + + Never + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp3/Script/Gandrayda.xml b/templates/mp3/Script/Gandrayda.xml index f018946a..9411000a 100644 --- a/templates/mp3/Script/Gandrayda.xml +++ b/templates/mp3/Script/Gandrayda.xml @@ -1,58 +1,54 @@ - - Gandrayda - - RSO_Gandrayda.rso - - - - - - - - - 100.0 - - - 2.0 - - - - - 1.0 - - - 1 - - - 60.0 - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - 0xFEE49B25:0x4A426BB3 - 0x49B975E6:0x4A426BB3 - 0x82439CBA:0x4A426BB3 - - enabled - enabled - - + + + RSO_Gandrayda.rso + + + Gandrayda + + + + + + + + 100.0 + + + 2.0 + + + + + 1.0 + + + 1 + + + 60.0 + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + diff --git a/templates/mp3/Script/GellSac.xml b/templates/mp3/Script/GellSac.xml index cc26607d..7c088ba4 100644 --- a/templates/mp3/Script/GellSac.xml +++ b/templates/mp3/Script/GellSac.xml @@ -1,84 +1,52 @@ - - GellSac - - RSO_GellSac.rso - - - - - - - 10.0 - - - - - - - - 0.2 - - - 120.0 - - - 1.5 - - - 200.0 - - - 0.5 - - - - - - - 0 - - - 0.35 - - - 0.5 - - - 0.02 - - - 0.3 - - - 3.0 - - - 20.0 - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_GellSac.rso + + + GellSac + + + + + + 10.0 + + + + + + + + 0.2 + + + 120.0 + + + 1.5 + + + 200.0 + + + 0.5 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/GeneratedObjectDeleter.xml b/templates/mp3/Script/GeneratedObjectDeleter.xml index b5b048a6..0e82f3c7 100644 --- a/templates/mp3/Script/GeneratedObjectDeleter.xml +++ b/templates/mp3/Script/GeneratedObjectDeleter.xml @@ -1,35 +1,24 @@ - - GeneratedObjectDeleter - - - - - false - - - - - - - true - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + GeneratedObjectDeleter + + + + + false + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/Generator.xml b/templates/mp3/Script/Generator.xml index 160e9f10..4afc86b7 100644 --- a/templates/mp3/Script/Generator.xml +++ b/templates/mp3/Script/Generator.xml @@ -1,54 +1,54 @@ - - Generator - - - - 1 - - - 1 - - - false - - - false - - - false - - - false - - - 0.0, 0.0, 0.0 - - - false - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - script/common/Generator.TXTR - - 0.5 - enabled - enabled - - + + + Generator + + + + 1 + + + 1 + + + false + + + false + + + false + + + false + + + + 0.0 + 0.0 + 0.0 + + + + false + + + 1.0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/GhorLowerBody.xml b/templates/mp3/Script/GhorLowerBody.xml index 248d34be..8e9c9e04 100644 --- a/templates/mp3/Script/GhorLowerBody.xml +++ b/templates/mp3/Script/GhorLowerBody.xml @@ -1,104 +1,39 @@ - - GhorLowerBody - - RSO_Ghor.rso - - - - - - - - - - false - - - 4.0 - - - - - - - - - - - - - - - - - - - - 25.0 - - - 14.0 - - - - - 15.0 - - - 50.0 - - - 40.0 - - - 15.0 - - - 20.0 - - - 20.0 - - - 1.0 - - - 3.0 - - - 8.0 - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - 0x99FD196F:0xAEC7546E:0x8B5DB983:0xF8BEDB63 - 0x99FD196F:0xAEC7546E:0x8B5DB983:0x1D5CCC2D - 0x99FD196F:0xAEC7546E:0x04CDC6A6:0xF8BEDB63 - 0x99FD196F:0xAEC7546E:0x04CDC6A6:0x1D5CCC2D - 0x99FD196F:0xAEC7546E:0xE451D02C:0xF8BEDB63 - 0x99FD196F:0xAEC7546E:0xE451D02C:0x1D5CCC2D - 0x99FD196F:0xAEC7546E:0x72F708F2:0xF8BEDB63 - 0x99FD196F:0xAEC7546E:0x72F708F2:0x1D5CCC2D - 0x99FD196F:0xAEC7546E:0x8CB41734:0xF8BEDB63 - 0x99FD196F:0xAEC7546E:0x8CB41734:0x1D5CCC2D - 0x99FD196F:0x810EC49A:0xC27FFA8F - - enabled - enabled - - + + + RSO_Ghor.rso + + + GhorLowerBody + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + + + + + + + diff --git a/templates/mp3/Script/GhorUpperBody.xml b/templates/mp3/Script/GhorUpperBody.xml index 2e75e0db..10cec1eb 100644 --- a/templates/mp3/Script/GhorUpperBody.xml +++ b/templates/mp3/Script/GhorUpperBody.xml @@ -1,235 +1,49 @@ - - GhorUpperBody - - RSO_Ghor.rso - - - - - - - - - - false - - - - - false - - - - - - - - - - 10.0 - - - 50.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 4.0 - - - 3.0 - - - 5.0 - - - 100.0 - - - 1.5 - - - 0.5 - - - 4.0 - - - - - - - - - - 12.0 - - - 40.0 - - - 3.0 - - - 5.0 - - - 8.0 - - - - - - - 20.0 - - - - - 3 - - - 20.0 - - - 10.0 - - - 3.0 - - - 5.0 - - - 25.0 - - - 1.0 - - - 10.0 - - - 20.0 - - - 10.0 - - - 25.0 - - - 40.0 - - - 12.0 - - - - - - 40.0 - - - 10.0 - - - 8.0 - - - - - - - - - - - - - 10.0 - - - 20.0 - - - 0.0, 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0, 0.0 - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - 0xFC135E9B:0x832C442E:0xA82B5DAA:0xC27FFA8F - 0xFC135E9B:0xA0D0963B:0xFDEA5D06:0xC27FFA8F - 0xFC135E9B:0x81CC0D22:0x17386C2C:0xF8BEDB63 - 0xFC135E9B:0x81CC0D22:0x17386C2C:0x1D5CCC2D - 0xFC135E9B:0x81CC0D22:0xD171838C:0xF8BEDB63 - 0xFC135E9B:0x81CC0D22:0xD171838C:0x1D5CCC2D - 0xFC135E9B:0x81CC0D22:0x017549CB:0xF8BEDB63 - 0xFC135E9B:0x81CC0D22:0x017549CB:0x1D5CCC2D - 0xFC135E9B:0x81CC0D22:0x08F6BDC5:0xF8BEDB63 - 0xFC135E9B:0x81CC0D22:0x08F6BDC5:0x1D5CCC2D - 0xFC135E9B:0x81CC0D22:0x7B589DD6:0xF8BEDB63 - 0xFC135E9B:0x81CC0D22:0x7B589DD6:0x1D5CCC2D - 0xFC135E9B:0xD345F07F:0xC27FFA8F - 0xFC135E9B:0x391A32AE:0xC27FFA8F - 0xFC135E9B:0xAFB9313A:0xC27FFA8F - 0xFC135E9B:0x305CDAD2:0xC2376579 - 0xFC135E9B:0x305CDAD2:0x05032ED4 - 0xFC135E9B:0x305CDAD2:0x671DBFB5 - 0xFC135E9B:0x810EC49A:0xC27FFA8F - 0xFC135E9B:0x0E07B299:0xDAE21374:0x3D313DA6 - 0xFC135E9B:0x73E98B8F:0xDAE21374:0x3D313DA6 - - enabled - enabled - - + + + RSO_Ghor.rso + + + GhorUpperBody + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/mp3/Script/GragnolFlyer.xml b/templates/mp3/Script/GragnolFlyer.xml index 20fddc2f..77e04d13 100644 --- a/templates/mp3/Script/GragnolFlyer.xml +++ b/templates/mp3/Script/GragnolFlyer.xml @@ -1,312 +1,43 @@ - - GragnolFlyer - - RSO_GragnolFlyer.rso - - - - - - - - - 100.0 - - - 2.0 - - - - - 1 - - - - - - - - false - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - 0.0, 0.0, 0.0 - - - 20.0 - - - 120.0 - - - - - never - - - - - - - -1.0 - - - 5.0 - - - - - never - - - never - - - - - 5.0 - - - - - 50.0 - - - never - - - - - - - never - - - - - - - never - - - - - - 5.0 - - - 2.0 - - - 10.0 - - - 1.0 - - - 5.0 - - - false - - - true - - - 5.0 - - - - - 1 - - - never - - - 10.0 - - - false - - - - - 1 - - - 180.0 - - - false - - - - - - - 180.0 - - - false - - - - - never - - - never - - - never - - - 180.0 - never - - - never - - - never - - - never - - - never - - - never - - - false - never - - - never - - - - - never - - - never - - - never - - - 180.0 - never - - - never - - - never - - - never - - - never - - - never - - - false - never - - - never - - - - - - - 180.0 - - - false - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_GragnolFlyer.rso + + + GragnolFlyer + + + + + + + + 100.0 + + + 2.0 + + + + + 1 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/GrapplePoint.xml b/templates/mp3/Script/GrapplePoint.xml index 33b6ac14..5e37948e 100644 --- a/templates/mp3/Script/GrapplePoint.xml +++ b/templates/mp3/Script/GrapplePoint.xml @@ -1,156 +1,142 @@ - - GrapplePoint - - RSO_ScriptGrapplePoint.rso - - - - - - - 5.0 - - - 20.0 - - - 180.0 - - - false - - - false - - - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - - false - - - false - - - 1.0, 1.0, 1.0, 1.0 - - - 1.0, 1.0, 1.0, 1.0 - - - false - - - 0.5 - - - 1.0 - - - 0.5 - - - 1.0 - - - false - - - false - - - false - - - - - - - - - - - - - - script/common/GrapplePoint.TXTR - - 0.5 - enabled - enabled - - + + + RSO_ScriptGrapplePoint.rso + + + GrapplePoint + + + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + + false + + + false + + + + 1.0 + 1.0 + 1.0 + + + + + 1.0 + 1.0 + 1.0 + + + + false + + + 0.5 + + + 1.0 + + + 0.5 + + + 1.0 + + + false + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/GuiMenu.xml b/templates/mp3/Script/GuiMenu.xml index 0e3eb55f..5314288e 100644 --- a/templates/mp3/Script/GuiMenu.xml +++ b/templates/mp3/Script/GuiMenu.xml @@ -1,38 +1,37 @@ - - GuiMenu - - - - - true - - - true - - - true - - - true - - - true - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + GuiMenu + + + + + STRG + + + + true + + + true + + + true + + + true + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/GuiScreen.xml b/templates/mp3/Script/GuiScreen.xml index 2bb1dca7..4af297c2 100644 --- a/templates/mp3/Script/GuiScreen.xml +++ b/templates/mp3/Script/GuiScreen.xml @@ -1,29 +1,28 @@ - - GuiScreen - - RSO_ScriptGUIScreenFrontEndUI.rso - - - - - 0 - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RSO_ScriptGUIScreenFrontEndUI.rso + + + GuiScreen + + + + 0 + + + + STRG + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/GuiSlider.xml b/templates/mp3/Script/GuiSlider.xml index f200aef6..f717c43c 100644 --- a/templates/mp3/Script/GuiSlider.xml +++ b/templates/mp3/Script/GuiSlider.xml @@ -1,45 +1,40 @@ - - GuiSlider - - - - - false - - - - - - 0.0 - - - 255.0 - - - 1.0 - - - 1.0 - - - - 127 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + GuiSlider + + + + + false + + + + + + 0.0 + + + 255.0 + + + 1.0 + + + 1.0 + + + + 127 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/GuiWidget.xml b/templates/mp3/Script/GuiWidget.xml index 723d6a7f..72b9d745 100644 --- a/templates/mp3/Script/GuiWidget.xml +++ b/templates/mp3/Script/GuiWidget.xml @@ -1,29 +1,24 @@ - - GuiWidget - - - - - false - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + GuiWidget + + + + + false + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/GunTurretBase.xml b/templates/mp3/Script/GunTurretBase.xml index 408ba9c0..3294c5fc 100644 --- a/templates/mp3/Script/GunTurretBase.xml +++ b/templates/mp3/Script/GunTurretBase.xml @@ -1,96 +1,58 @@ - - GunTurretBase - - RSO_GunTurret.rso - - - - - - - false - - - false - - - false - - - false - - - 2.0 - - - 5.0 - - - 1.0 - - - 10.0 - - - 10.0 - - - 0.7 - - - - - - - - - - 100.0 - - - 2.0 - - - - - 1.0 - - - never - - - never - - - 100.0 - - - never - - - never - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_GunTurret.rso + + + GunTurretBase + + + + + + + + + 100.0 + + + 2.0 + + + + + 1.0 + + + Never + + + Never + + + 100.0 + + + Never + + + Never + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/GunTurretTop.xml b/templates/mp3/Script/GunTurretTop.xml index 1acc520e..0fcd9cca 100644 --- a/templates/mp3/Script/GunTurretTop.xml +++ b/templates/mp3/Script/GunTurretTop.xml @@ -1,120 +1,58 @@ - - GunTurretTop - - RSO_GunTurret.rso - - - - - - - false - - - false - - - false - - - true - - - 100.0 - - - - 180.0 - - - 10.0 - - - 0.0 - - - 0.0 - - - 1.0 - - - 3.0 - - - 1.0 - - - 1.0 - - - 1 - - - 5 - - - - - - 10.0 - - - 5.0 - - - - - - - - - 100.0 - - - 2.0 - - - - - 1.0 - - - never - - - never - - - 100.0 - - - never - - - never - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_GunTurret.rso + + + GunTurretTop + + + + + + + + + 100.0 + + + 2.0 + + + + + 1.0 + + + Never + + + Never + + + 100.0 + + + Never + + + Never + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/HUDHint.xml b/templates/mp3/Script/HUDHint.xml index a9fb4140..d0f658b2 100644 --- a/templates/mp3/Script/HUDHint.xml +++ b/templates/mp3/Script/HUDHint.xml @@ -1,41 +1,40 @@ - - HUDHint - - - - - 15.0 - - - 16.0 - - - 1.0 - - - 0.0 - - - 0 - - - 15 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + HUDHint + + + + + TXTR + + + + 15.0 + + + 16.0 + + + 1.0 + + + 0.0 + + + 0 + + + 15 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/HUDMemo.xml b/templates/mp3/Script/HUDMemo.xml index 590d3049..e29e8041 100644 --- a/templates/mp3/Script/HUDMemo.xml +++ b/templates/mp3/Script/HUDMemo.xml @@ -1,78 +1,94 @@ - - HUDMemo - - - - 3.0 - - - true - - - true - - - 0 - - - 0x35E07A31 - - - - - - - - - false - - - 1 - - - - 0 - - - 1.0 - - - true - - - false - - - false - - - false - - - - - - - 0.0 - - - - - - - - - - - - - - - script/common/HUDMemo.TXTR - - 0.5 - enabled - enabled - - + + + HUDMemo + + + + 3.0 + + + true + + + true + + + 0 + + + 0x35E07A31 + + + + + + + + + false + + + 1 + + + + STRG + + + + 0 + + + 1.0 + + + true + + + false + + + false + + + false + + + + + CMDL + + + + + CAAD + + + + + TXTR + + + + 0.0 + + + + STRM + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/IFT.xml b/templates/mp3/Script/IFT.xml index e868f1bb..7c0faed1 100644 --- a/templates/mp3/Script/IFT.xml +++ b/templates/mp3/Script/IFT.xml @@ -1,25 +1,20 @@ - - IFT - - - - true - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + IFT + + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/Korakk.xml b/templates/mp3/Script/Korakk.xml index ced75323..e6607465 100644 --- a/templates/mp3/Script/Korakk.xml +++ b/templates/mp3/Script/Korakk.xml @@ -1,189 +1,66 @@ - - Korakk - - RSO_BeastRider.rso - - - - - - - - - - - - - - 25.0 - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - - - - - - - - - - 65.0 - - - 5.0 - - - - - - - - 65.0 - - - 5.0 - - - - - - - - 65.0 - - - 5.0 - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x1464AE05:0xA244C9D8 - 0x24D00673:0xA244C9D8 - 0x85BB6891:0xA8C2AC76 - 0x85BB6891:0x2E56DED8 - 0x85BB6891:0xF47476CE - 0x85BB6891:0x470306BE - 0x85BB6891:0x87952FC5 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_BeastRider.rso + + + Korakk + + + + + + + + 65.0 + + + 5.0 + + + + + + + + 65.0 + + + 5.0 + + + + + + + + 65.0 + + + 5.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + + + diff --git a/templates/mp3/Script/KorbaMaw.xml b/templates/mp3/Script/KorbaMaw.xml index f4595e5a..5a9a6185 100644 --- a/templates/mp3/Script/KorbaMaw.xml +++ b/templates/mp3/Script/KorbaMaw.xml @@ -1,90 +1,73 @@ - - KorbaMaw - - RSO_KorbaMaw.rso - - - - - - - - 0.5 - - - 3.0 - - - 2.8 - - - - - - - - - 100.0 - - - 2.0 - - - - - 0.5 - - - 0.5 - - - 1.0 - - - 1 - - - never - - - never - - - never - - - never - - - 100.0 - - - never - - - never - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_KorbaMaw.rso + + + KorbaMaw + + + + + + + + + 100.0 + + + 2.0 + + + + + 0.5 + + + 0.5 + + + 1.0 + + + 1 + + + Never + + + Never + + + Never + + + Never + + + 100.0 + + + Never + + + Never + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/KorbaSnatcherSwarm.xml b/templates/mp3/Script/KorbaSnatcherSwarm.xml index aebaf40e..4687b086 100644 --- a/templates/mp3/Script/KorbaSnatcherSwarm.xml +++ b/templates/mp3/Script/KorbaSnatcherSwarm.xml @@ -1,82 +1,45 @@ - - KorbaSnatcherSwarm - - RSO_KorbaMaw.rso - - - - - - - 0.8 - - - 5 - - - 8 - - - 1.0 - - - 2.5 - - - 2000.0 - - - 0.1 - - - 0.3 - - - 1.0 - - - 30.0 - - - - - - - - true - - - - 0.45 - - - -1 - - - -1 - - - -1 - - - - - - - - - - - - - - - 0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - volume - - - + + + RSO_KorbaMaw.rso + + + KorbaSnatcherSwarm + + + + + + + true + + + + 0.44999999 + + + -1 + + + -1 + + + -1 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + ScaleVolume + BoxShape + diff --git a/templates/mp3/Script/LODController.xml b/templates/mp3/Script/LODController.xml index 94d361c7..14c5740e 100644 --- a/templates/mp3/Script/LODController.xml +++ b/templates/mp3/Script/LODController.xml @@ -1,71 +1,66 @@ - - LODController - - RSO_ScriptLODController.rso - - - - - 1 - - - - 0.0 - - - - 0.0 - - - - 0.0 - - - - 0.0 - - - - 0.0 - - - - 0.0 - - - - 0.0 - - - - 0.0 - - - - 0.0 - - - - 0.0 - - - true - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RSO_ScriptLODController.rso + + + LODController + + + + 1 + + + + 0.0 + + + + 0.0 + + + + 0.0 + + + + 0.0 + + + + 0.0 + + + + 0.0 + + + + 0.0 + + + + 0.0 + + + + 0.0 + + + + 0.0 + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/LUAScript.xml b/templates/mp3/Script/LUAScript.xml index de0c4641..61c8ce71 100644 --- a/templates/mp3/Script/LUAScript.xml +++ b/templates/mp3/Script/LUAScript.xml @@ -1,28 +1,31 @@ - - LUAScript - - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + LUAScript + + + + + MLVL + + + + + MLVL + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/LightVolume.xml b/templates/mp3/Script/LightVolume.xml index 766b7fb5..496e34b0 100644 --- a/templates/mp3/Script/LightVolume.xml +++ b/templates/mp3/Script/LightVolume.xml @@ -1,28 +1,28 @@ - - LightVolume - - - - 1.0, 1.0, 1.0, 1.0 - - - 10 - - - - - - - - - - - - - - enabled - volume - - - + + + LightVolume + + + + + 1.0 + 1.0 + 1.0 + + + + 10 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + BoxShape + diff --git a/templates/mp3/Script/MemoryRelay.xml b/templates/mp3/Script/MemoryRelay.xml index 6bae990d..6002f85b 100644 --- a/templates/mp3/Script/MemoryRelay.xml +++ b/templates/mp3/Script/MemoryRelay.xml @@ -1,31 +1,27 @@ - - MemoryRelay - - - - - false - - - false - - - - - - - - - - - - - - script/common/MemoryRelay.TXTR - - 0.5 - enabled - enabled - - + + + MemoryRelay + + + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/Metaree.xml b/templates/mp3/Script/Metaree.xml index 3eb18295..33668738 100644 --- a/templates/mp3/Script/Metaree.xml +++ b/templates/mp3/Script/Metaree.xml @@ -1,63 +1,33 @@ - - Metaree - - RSO_Metaree.rso - - - - - - - 30.0 - - - - - - - - 15.0 - - - 2.0 - - - 2.0 - - - 5.0 - - - 5.0 - - - - 0.0, 0.0, 0.0 - - - - 1.0 - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_Metaree.rso + + + Metaree + + + + + + 30.0 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/MetroidHatcher.xml b/templates/mp3/Script/MetroidHatcher.xml index 9ebf8756..b6b5357c 100644 --- a/templates/mp3/Script/MetroidHatcher.xml +++ b/templates/mp3/Script/MetroidHatcher.xml @@ -1,202 +1,210 @@ - - MetroidHatcher - - RSO_MetroidHatcher.rso - - - - - - - 1000.0 - - - - - 5.0 - - - 5.0 - - - - - - - 500.0 - - - 20.0 - - - - - 3.0 - - - 9.0 - - - 0.0, 0.0, -1.8 - - - 1.0 - - - 3.0 - - - 2 - - - 100.0 - - - 1000000.0 - - - - - - - 1000.0 - - - - - 5.0 - - - 5.0 - - - - - - - 500.0 - - - 20.0 - - - - - 3.0 - - - 9.0 - - - 0.0, 0.0, -1.8 - - - 1.0 - - - 3.0 - - - 2 - - - 100.0 - - - 1000000.0 - - - - - - - 1000.0 - - - - - 5.0 - - - 5.0 - - - - - - - 500.0 - - - 20.0 - - - - - 3.0 - - - 9.0 - - - 0.0, 0.0, -1.8 - - - 1.0 - - - 3.0 - - - 2 - - - 100.0 - - - 1000000.0 - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x5C056CEF:0xA244C9D8 - 0x8BE7ECB7:0xA244C9D8 - 0x42E95705:0xFD38A106 - 0x42E95705:0x4D7DBEAB - 0x42E95705:0xA17C09BB - 0x42E95705:0x11DC2DAB - 0x42E95705:0xFDDD9ABB - 0x266B7D6B:0xFD38A106 - 0x266B7D6B:0x4D7DBEAB - 0x266B7D6B:0xA17C09BB - 0x266B7D6B:0x11DC2DAB - 0x266B7D6B:0xFDDD9ABB - 0xF189FD33:0xFD38A106 - 0xF189FD33:0x4D7DBEAB - 0xF189FD33:0xA17C09BB - 0xF189FD33:0x11DC2DAB - 0xF189FD33:0xFDDD9ABB - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_MetroidHatcher.rso + + + MetroidHatcher + + + + + + 1000.0 + + + + + 5.0 + + + 5.0 + + + + + + + 500.0 + + + 20.0 + + + + + 3.0 + + + 9.0 + + + + 0.0 + 0.0 + -1.8 + + + + 1.0 + + + 3.0 + + + 2 + + + 100.0 + + + 1000000.0 + + + + + + + 1000.0 + + + + + 5.0 + + + 5.0 + + + + + + + 500.0 + + + 20.0 + + + + + 3.0 + + + 9.0 + + + + 0.0 + 0.0 + -1.8 + + + + 1.0 + + + 3.0 + + + 2 + + + 100.0 + + + 1000000.0 + + + + + + + 1000.0 + + + + + 5.0 + + + 5.0 + + + + + + + 500.0 + + + 20.0 + + + + + 3.0 + + + 9.0 + + + + 0.0 + 0.0 + -1.8 + + + + 1.0 + + + 3.0 + + + 2 + + + 100.0 + + + 1000000.0 + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/mp3/Script/MetroidHopper.xml b/templates/mp3/Script/MetroidHopper.xml index 585a68a1..9eb2124a 100644 --- a/templates/mp3/Script/MetroidHopper.xml +++ b/templates/mp3/Script/MetroidHopper.xml @@ -1,126 +1,27 @@ - - MetroidHopper - - RSO_MetroidHopper.rso - - - - - - - - - 1.0 - - - 100.0 - - - 1.0 - - - false - - - 1.0 - - - 30.0 - - - 8.0 - - - 11.0 - - - 0.5 - - - - - 0.1 - - - 20.0 - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - 0.6 - - - 0.3 - - - - - - - - 5.0 - - - - - - - 0xFC1B1B4F - - - - - - - - - - - false - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_MetroidHopper.rso + + + MetroidHopper + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/MetroidPhazeoid.xml b/templates/mp3/Script/MetroidPhazeoid.xml index b21c8d59..151b6172 100644 --- a/templates/mp3/Script/MetroidPhazeoid.xml +++ b/templates/mp3/Script/MetroidPhazeoid.xml @@ -1,263 +1,33 @@ - - MetroidPhazeoid - - RSO_MetroidPhazeoid.rso - - - - - - - false - - - false - - - false - - - 0.66 - - - 0.1 - - - 0.1 - - - 1.0 - - - 5.0 - - - 0.5 - - - - - - - - never - - - - - - - never - - - - - - - never - - - - - - - - - 5.0 - - - - - - - - - - 1.0 - - - 0.1 - - - 0.1 - - - 0.2 - - - 0.5 - - - 1.0 - - - 0.4 - - - 0.6 - - - 0.5 - - - 1.0 - - - 50.0 - - - -50.0 - - - 25.0 - - - 5.0 - - - 0.0 - - - 15.0 - - - 5.0 - - - 10.0 - - - - - never - - - - - 0.0 - - - 25.0 - - - 1.0 - - - - 15.0 - - - 0.5 - - - 0.5 - - - 1.0 - - - 0.0 - - - 15.0 - - - 1.0 - - - 2.0 - - - 0.0 - - - false - - - false - - - false - - - 3.0 - - - 10.0 - - - 5.0 - - - 1.0 - - - - - - 5 - - - 4.0 - - - 0.1 - - - 0.021 - - - 0.1 - - - 0.021 - - - 3.0 - - - -3.0 - - - 1.0 - - - 3.0 - - - 10.0 - - - 0.5 - - - - - - - 50.0 - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_MetroidPhazeoid.rso + + + MetroidPhazeoid + + + + + + + 50.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/MiiAccessory.xml b/templates/mp3/Script/MiiAccessory.xml index 5226f973..b39a030e 100644 --- a/templates/mp3/Script/MiiAccessory.xml +++ b/templates/mp3/Script/MiiAccessory.xml @@ -1,24 +1,20 @@ - - MiiAccessory - - - - - - - - - - - - - - - - 0xD29C031D:0xBB52F0BE - - enabled - enabled - - + + + MiiAccessory + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/mp3/Script/MinorIng.xml b/templates/mp3/Script/MinorIng.xml index 6bdbd8f5..7f3790f6 100644 --- a/templates/mp3/Script/MinorIng.xml +++ b/templates/mp3/Script/MinorIng.xml @@ -1,253 +1,42 @@ - - MinorIng - - RSO_MinorIng.rso - - - - - - - 4.0 - - - 4.5 - - - 30.0 - - - 3.0 - - - - - - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - 1.0 - - - 10.0 - - - 5.0 - - - 5.0 - - - - 1.0 - - - - 1.0 - - - 5.0 - - - 0.3 - - - 0.2 - - - 1.0 - - - 20.0 - - - 0.1 - - - 1.0 - - - 2.0 - - - 30.0 - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - never - - - - - 1 - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_MinorIng.rso + + + MinorIng + + + + + + 4.0 + + + 4.5 + + + 30.0 + + + 3.0 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/MultiModelActor.xml b/templates/mp3/Script/MultiModelActor.xml index 4bea603f..9e0c1d72 100644 --- a/templates/mp3/Script/MultiModelActor.xml +++ b/templates/mp3/Script/MultiModelActor.xml @@ -1,90 +1,89 @@ - - MultiModelActor - - RSO_ScriptMultiModelActor.rso - - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - - - - - 0 - - - false - - - 0.0 - - - - - - - - - - - - - - - false - - - false - - - 1.0, 1.0, 1.0, 1.0 - - - - 0.0, 0.0, 0.0 - - - true - - - true - - - true - - - - - - - - - - - - - - - 0xC27FFA8F - 0x1960932D:0x681C4457:0xC27FFA8F - 0x1960932D:0xC674D5C6:0xC27FFA8F - 0x1960932D:0x3B8D2DB3:0xC27FFA8F - 0x1960932D:0x95E5BC22:0xC27FFA8F - 0x1960932D:0xBC2D08D0:0xC27FFA8F - 0x1960932D:0x12459941:0xC27FFA8F - 0x1960932D:0x9CAFFE7B:0xC27FFA8F - 0x1960932D:0x32C76FEA:0xC27FFA8F - 0x1960932D:0x681AAA77:0xC27FFA8F - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_ScriptMultiModelActor.rso + + + MultiModelActor + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + DCLN + + + + + CMDL + + + + + + false + + + false + + + + 1.0 + 1.0 + 1.0 + + + + + + 0.0 + 0.0 + 0.0 + + + + true + + + true + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + + + + + diff --git a/templates/mp3/Script/MysteryFlyer.xml b/templates/mp3/Script/MysteryFlyer.xml index dd8297ba..d3fb4213 100644 --- a/templates/mp3/Script/MysteryFlyer.xml +++ b/templates/mp3/Script/MysteryFlyer.xml @@ -1,70 +1,37 @@ - - MysteryFlyer - - RSO_MysteryFlyer.rso - - - - - - - - - 2.0 - - - - - - - - - - - - - 0xFFFFFFFF - - - 5.0 - - - - - 10.0 - - - 2.0 - - - 5.0 - - - true - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_MysteryFlyer.rso + + + MysteryFlyer + + + + + + + + 2.0 + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/Nightbarb.xml b/templates/mp3/Script/Nightbarb.xml index b8dd6885..adf81ac5 100644 --- a/templates/mp3/Script/Nightbarb.xml +++ b/templates/mp3/Script/Nightbarb.xml @@ -1,42 +1,28 @@ - - Nightbarb - - - - - - true - - - - - - - 45.0 - - - - 2.0 - - - - - - - - - - - - - - - - - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + Nightbarb + + + + + + true + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3/Script/NoseTurret.xml b/templates/mp3/Script/NoseTurret.xml index 8faafab2..2e1d08f0 100644 --- a/templates/mp3/Script/NoseTurret.xml +++ b/templates/mp3/Script/NoseTurret.xml @@ -1,125 +1,61 @@ - - NoseTurret - - RSO_NoseTurret.rso - - - - - - - 0.5 - - - -90.0 - - - 90.0 - - - 90.0 - - - 90.0 - - - 0.0 - - - 15.0 - - - 360.0 - - - 135.0 - - - -135.0 - - - 360.0 - - - 45.0 - - - -45.0 - - - - - 1.0 - - - 3 - - - 0.1 - - - 2 - - - - false - - - - - - - - - 100.0 - - - 2.0 - - - - - 1.0 - - - 50.0 - - - 5.0 - - - 25.0 - - - 100.0 - - - never - - - never - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_NoseTurret.rso + + + NoseTurret + + + + + + + + + 100.0 + + + 2.0 + + + + + 1.0 + + + 50.0 + + + 5.0 + + + 25.0 + + + 100.0 + + + Never + + + Never + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/OptionalAreaAsset.xml b/templates/mp3/Script/OptionalAreaAsset.xml index 0423f572..e44f9e9e 100644 --- a/templates/mp3/Script/OptionalAreaAsset.xml +++ b/templates/mp3/Script/OptionalAreaAsset.xml @@ -1,30 +1,19 @@ - - OptionalAreaAsset - - - - - - 0 - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + OptionalAreaAsset + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/Parasite.xml b/templates/mp3/Script/Parasite.xml index 730f2aab..c722569a 100644 --- a/templates/mp3/Script/Parasite.xml +++ b/templates/mp3/Script/Parasite.xml @@ -1,131 +1,127 @@ - - Parasite - - RSO_Parasite.rso - - - - - 0 - - - - - 25.0 - - - - - 10.0 - - - 5.0 - - - - - 3.0 - - - 0.2 - - - 3.0 - - - 720.0 - - - 5.0 - - - 90.0 - - - 4.0 - - - 20.0 - - - 0.0 - - - - - - 10.0 - - - 2.5 - - - 360.0 - - - 180.0 - - - 120.0 - - - 0.2 - - - 0.4 - - - 6.0 - - - 2.6 - - - 1.0 - - - 0.8 - - - 0.7 - - - 0.9 - - - 0.2 - - - 1.3 - - - 0.2 - - - 40.0 - - - false - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_Parasite.rso + + + Parasite + + + + 0 + + + + + 25.0 + + + + + 10.0 + + + 5.0 + + + + + 3.0 + + + 0.2 + + + 3.0 + + + 720.0 + + + 5.0 + + + 90.0 + + + 4.0 + + + 20.0 + + + 0.0 + + + + + + 10.0 + + + 2.5 + + + 360.0 + + + 180.0 + + + 120.0 + + + 0.2 + + + 0.40000001 + + + 6.0 + + + 2.5999999 + + + 1.0 + + + 0.80000001 + + + 0.69999999 + + + 0.89999998 + + + 0.2 + + + 1.3 + + + 0.2 + + + 40.0 + + + false + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/PathControl.xml b/templates/mp3/Script/PathControl.xml index 25e51cf6..0a168ea1 100644 --- a/templates/mp3/Script/PathControl.xml +++ b/templates/mp3/Script/PathControl.xml @@ -1,34 +1,29 @@ - - PathControl - - - - 0 - - - 0xF56F6770 - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + PathControl + + + + 0 + + + 0xF56F6770 + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/PathMeshCtrl.xml b/templates/mp3/Script/PathMeshCtrl.xml index f1137906..f061bdc9 100644 --- a/templates/mp3/Script/PathMeshCtrl.xml +++ b/templates/mp3/Script/PathMeshCtrl.xml @@ -1,28 +1,23 @@ - - PathMeshCtrl - - - - 0 - - - 1 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + PathMeshCtrl + + + + 0 + + + 1 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/Phaazoid.xml b/templates/mp3/Script/Phaazoid.xml index 101424e7..afb9b3f9 100644 --- a/templates/mp3/Script/Phaazoid.xml +++ b/templates/mp3/Script/Phaazoid.xml @@ -1,70 +1,27 @@ - - Phaazoid - - RSO_Phaazoid.rso - - - - - - - - - 0 - - - false - - - false - - - 65.0 - - - 25.0 - - - 10.0 - - - 35.0 - - - 1.0 - - - 3.5 - - - 2.5 - - - 7.0 - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_Phaazoid.rso + + + Phaazoid + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/PhazonFlyerSwarm.xml b/templates/mp3/Script/PhazonFlyerSwarm.xml index b8b26746..07b451c1 100644 --- a/templates/mp3/Script/PhazonFlyerSwarm.xml +++ b/templates/mp3/Script/PhazonFlyerSwarm.xml @@ -1,39 +1,29 @@ - - PhazonFlyerSwarm - - - - - - true - - - - - - - 4.0 - - - - - - - - - - - - - - - - - 0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + PhazonFlyerSwarm + + + + + + true + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/PhazonHarvester.xml b/templates/mp3/Script/PhazonHarvester.xml index 5c958763..1c93192f 100644 --- a/templates/mp3/Script/PhazonHarvester.xml +++ b/templates/mp3/Script/PhazonHarvester.xml @@ -1,123 +1,38 @@ - - PhazonHarvester - - RSO_PhazonHarvester.rso - - - - - - - 15.0 - - - - - - - - true - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - 20.0 - - - 4.0 - - - 2.0 - - - 6.0 - - - 0.0 - - - -90.0 - - - 70.0 - - - 90.0 - - - 2.0 - - - 2.0 - - - - - never - - - - - - - never - - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - 0xD2DFD524:0x7A154E49 - 0xD2DFD524:0xC7426B90 - 0xD2DFD524:0xE2EFEE98 - 0xD2DFD524:0x155BF24B - 0xD2DFD524:0xD757CB94 - - enabled - enabled - - + + + RSO_PhazonHarvester.rso + + + PhazonHarvester + + + + + + 15.0 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + diff --git a/templates/mp3/Script/PhazonLeech.xml b/templates/mp3/Script/PhazonLeech.xml index 7e085e19..8c7b399b 100644 --- a/templates/mp3/Script/PhazonLeech.xml +++ b/templates/mp3/Script/PhazonLeech.xml @@ -1,130 +1,49 @@ - - PhazonLeech - - RSO_PhazonLeech.rso - - - - - - - 1.0 - - - 0.5 - - - 0.7 - - - 0.9 - - - 0.15 - - - 30.0 - - - 35.0 - - - 55.0 - - - 2.0 - - - 4.0 - - - -1.0 - - - -1.0 - - - 2.0 - - - 1.0 - - - 3.0 - - - 1.0 - - - 1.0 - - - 1.0 - - - 2.0 - - - 1.0 - - - 7.0 - - - - 0.5 - - - 0.1 - - - - false - - - - - - - - - 25.0 - - - 2.0 - - - - - 50.0 - - - 10.0 - - - 20.0 - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_PhazonLeech.rso + + + PhazonLeech + + + + + + + + + 25.0 + + + 2.0 + + + + + 50.0 + + + 10.0 + + + 20.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/PhazonPuddle.xml b/templates/mp3/Script/PhazonPuddle.xml index 57245ed6..bab8aec5 100644 --- a/templates/mp3/Script/PhazonPuddle.xml +++ b/templates/mp3/Script/PhazonPuddle.xml @@ -1,126 +1,25 @@ - - PhazonPuddle - - RSO_MinorIng.rso - - - - - - - - - - - 25.0 - - - - - 5.0 - - - - 1.0 - - - - 1.0 - - - 5.0 - - - 50 - - - 15.0 - - - 25.0 - - - 10.0 - - - 5.0 - - - 0.3 - - - 0.2 - - - 1.0 - - - 20.0 - - - 0.1 - - - 1.0 - - - 2.0 - - - 30.0 - - - - 5.0 - - - 25.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_MinorIng.rso + + + PhazonPuddle + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3/Script/PhazonPuffer.xml b/templates/mp3/Script/PhazonPuffer.xml index 3e73e8fa..af41bb1e 100644 --- a/templates/mp3/Script/PhazonPuffer.xml +++ b/templates/mp3/Script/PhazonPuffer.xml @@ -1,107 +1,27 @@ - - PhazonPuffer - - RSO_PhazonPuffer.rso - - - - - - - - - false - - - false - - - 2.0 - - - 30.0 - - - true - - - 3.0 - - - 5.0 - - - 15.0 - - - 25.0 - - - 2.0 - - - 10.0 - - - 1.0 - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_PhazonPuffer.rso + + + PhazonPuffer + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/PhazonTentacle.xml b/templates/mp3/Script/PhazonTentacle.xml index 1f4a74b6..471ef68c 100644 --- a/templates/mp3/Script/PhazonTentacle.xml +++ b/templates/mp3/Script/PhazonTentacle.xml @@ -1,30 +1,26 @@ - - PhazonTentacle - - RSO_PhazonTentacle.rso - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_PhazonTentacle.rso + + + PhazonTentacle + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/PhysicsDebris.xml b/templates/mp3/Script/PhysicsDebris.xml index a972ad25..24b3808e 100644 --- a/templates/mp3/Script/PhysicsDebris.xml +++ b/templates/mp3/Script/PhysicsDebris.xml @@ -1,177 +1,26 @@ - - PhysicsDebris - - RSO_ScriptPhysicsDebris.rso - - - - - - - - 180.0 - - - 180.0 - - - 0.0, 0.0, 1.0 - - - 0.0, 0.0, 0.0 - - - true - - - 5.0 - - - 15.0 - - - -1.0, -1.0, -1.0 - - - 1.0, 1.0, 1.0 - - - 2.0 - - - 3.0 - - - 0.0 - - - 10.0 - - - 80.0 - - - 1.0, 1.0, 1.0, 0.0 - - - 1.0, 1.0, 1.0, 1.0 - - - 1.0, 1.0, 1.0, 0.0 - - - 80.0 - - - 1.0, 1.0, 1.0 - - - 0.375 - - - 0.1 - - - 25.0 - - - 1.0 - - - - - 1 - - - 1.0 - - - 1.0 - - - 0.1 - - - 0.1 - - - 0.1 - - - 0.1 - - - 0.1 - - - - 1.0, 1.0, 1.0 - - - false - - - false - - - true - - - - - 1.0, 1.0, 1.0 - - - false - - - false - - - true - - - - true - - - false - - - false - - - false - - - true - - - false - - - false - - - - - - - - - - - - - - - - - 0x7E397FED:0xBB52F0BE - 0xD94D4CA3:0xC27FFA8F - - enabled - enabled - - + + + RSO_ScriptPhysicsDebris.rso + + + PhysicsDebris + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/Pickup.xml b/templates/mp3/Script/Pickup.xml index 97d130ef..0c576ccb 100644 --- a/templates/mp3/Script/Pickup.xml +++ b/templates/mp3/Script/Pickup.xml @@ -1,94 +1,110 @@ - - Pickup - - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - 0xFB73F2B8 - - - 1 - - - 0 - - - 1 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - 0.0 - - - - false - - - true - - - false - - - 0.0 - - - 0.0 - - - 20.0 - - - false - - - false - - - 0.0, 0.0, 0.0 - - - false - - - - - - - - - - - - - - - 0xA244C9D8 - 0xC27FFA8F - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + Pickup + + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + 0xFB73F2B8 + + + 1 + + + 0 + + + 1 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + CMDL + + + + + + 0.0 + + + + PART + + + + false + + + true + + + false + + + 0.0 + + + 0.0 + + + 20.0 + + + false + + + false + + + + 0.0 + 0.0 + 0.0 + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp3/Script/PillBug.xml b/templates/mp3/Script/PillBug.xml index d62d7aef..6377b4ee 100644 --- a/templates/mp3/Script/PillBug.xml +++ b/templates/mp3/Script/PillBug.xml @@ -1,99 +1,72 @@ - - PillBug - - RSO_PillBug.rso - - - - - - - - - 2.5 - - - 4.0 - - - - - - - 25.0 - - - - - 10.0 - - - 30.0 - - - - - - - - 0.2 - - - 120.0 - - - 1.5 - - - 200.0 - - - 0.5 - - - - - - - 0 - - - - - 0.35 - - - 0.5 - - - 0.02 - - - 0.3 - - - 1.5 - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_PillBug.rso + + + PillBug + + + + + + + + 2.5 + + + 4.0 + + + + + + + 25.0 + + + + + 10.0 + + + 30.0 + + + + + + + + 0.2 + + + 120.0 + + + 1.5 + + + 200.0 + + + 0.5 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/PirateDrone.xml b/templates/mp3/Script/PirateDrone.xml index b6ece890..802d6b28 100644 --- a/templates/mp3/Script/PirateDrone.xml +++ b/templates/mp3/Script/PirateDrone.xml @@ -1,347 +1,52 @@ - - PirateDrone - - RSO_PirateDrone.rso - - - - - - - false - - - false - - - - - - - 0.7 - - - true - - - 5.0 - - - 0.0 - - - 5.0 - - - 0.0 - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - true - - - 0.5 - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - false - - - - - - - - - never - - - - - - - never - - - - - 3.0 - - - 2.0 - - - 0.0 - - - 1.0 - - - 1.0 - - - 1080.0 - - - 8.0 - - - 1.0 - - - 10.0 - - - 2.0 - - - 10.0 - - - 1.0 - - - 12.0 - - - 3.0 - - - 10.0 - - - 15.0 - - - 10.0 - - - 15.0 - - - false - - - 5 - - - 3 - - - 5.0 - - - 4.0 - - - 0.3 - - - 0.5 - - - 1.0 - - - 5.0 - - - 10.0 - - - true - - - 0.5 - - - true - - - true - - - 0.5 - - - 0.1 - - - false - - - 90.0 - - - 30.0 - - - 1.0 - - - 0 - - - 1 - - - 0 - - - 2 - - - 3.0 - - - 10.0 - - - - - - - - - - 50.0 - - - 2.0 - - - - - 1 - - - 50.0 - - - 0.0 - - - 10.0 - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_PirateDrone.rso + + + PirateDrone + + + + + + + + + 50.0 + + + 2.0 + + + + + 1 + + + 50.0 + + + 0.0 + + + 10.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/PlantScarabSwarm.xml b/templates/mp3/Script/PlantScarabSwarm.xml index 9ca0dfec..8ed33de6 100644 --- a/templates/mp3/Script/PlantScarabSwarm.xml +++ b/templates/mp3/Script/PlantScarabSwarm.xml @@ -1,47 +1,42 @@ - - PlantScarabSwarm - - - - - - true - - - - -1 - - - -1 - - - 30.0 - - - 1.0 - - - 1.0 - - - - 1.0 - - - - - - - - - - - - - - - enabled - enabled - - + + + PlantScarabSwarm + + + + + + true + + + + -1 + + + -1 + + + 30.0 + + + 1.0 + + + 1.0 + + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + diff --git a/templates/mp3/Script/Platform.xml b/templates/mp3/Script/Platform.xml index 833d8b40..8db1cf54 100644 --- a/templates/mp3/Script/Platform.xml +++ b/templates/mp3/Script/Platform.xml @@ -1,73 +1,93 @@ - - Platform - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - - - - - - - 1.0 - - - 200 - - - 20 - - - false - - - false - - - - 0.0, 0.15, 0.0 - - - 0.0 - - - true - - - 0.0, 0.0, 0.0 - - - 1800.0 - - - 30.0 - - - - - - - - - - - - - - - 0xA3D63F44 - 0xC27FFA8F - 0x7E397FED:0xBB52F0BE - 0x0FC966DC - - enabled - enabled - - + + + Platform + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + CMDL + + + + + + + DCLN + + + + + + 1.0 + + + 200 + + + 20 + + + false + + + false + + + + + 0.0 + 0.15000001 + 0.0 + + + + 0.0 + + + true + + + + 0.0 + 0.0 + 0.0 + + + + 1800.0 + + + 30.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp3/Script/PlayerActor.xml b/templates/mp3/Script/PlayerActor.xml index 85b75976..c69cba11 100644 --- a/templates/mp3/Script/PlayerActor.xml +++ b/templates/mp3/Script/PlayerActor.xml @@ -1,88 +1,156 @@ - - PlayerActor - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - 1.0 - - - 0.0 - - - - - - - - true - - - true - - - true - - - - - - - - - - - - - - - - - - - - - 16388 - - - 0 - - - - - - - - - - - - - - - - 0x7E397FED:0xBB52F0BE - 0x846397A8 - 0x9834ECC9 - 0x134A81E3 - 0x9BF030DC - 0x8A8D5AA5 - 0x3376814D - 0x0EBEC440 - 0xA8778E57 - 0x1098D091:0xF7FFBD07 - 0x1098D091:0x50340852 - 0xC7385390:0xF7FFBD07 - 0xC7385390:0x50340852 - 0xA3D63F44 - - enabled - enabled - - + + + PlayerActor + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + 1.0 + + + 0.0 + + + + + + + + true + + + true + + + true + + + + CMDL + + + + + CSKR + + + + + CMDL + + + + + CSKR + + + + + CMDL + + + + + CSKR + + + + + CMDL + + + + + CSKR + + + + + CMDL + + + + + CSKR + + + + + CMDL + + + + + CSKR + + + + + CMDL + + + + + CSKR + + + + + CMDL + + + + + CSKR + + + + + + 16388 + + + 0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + + + + + + + + diff --git a/templates/mp3/Script/PlayerGravityScalar.xml b/templates/mp3/Script/PlayerGravityScalar.xml index 2f77db4f..0aa4b690 100644 --- a/templates/mp3/Script/PlayerGravityScalar.xml +++ b/templates/mp3/Script/PlayerGravityScalar.xml @@ -1,28 +1,23 @@ - - PlayerGravityScalar - - - - 0.42 - - - 0.6 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + PlayerGravityScalar + + + + 0.41999999 + + + 0.60000002 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/PlayerHint.xml b/templates/mp3/Script/PlayerHint.xml index 4cf1142a..f94c1068 100644 --- a/templates/mp3/Script/PlayerHint.xml +++ b/templates/mp3/Script/PlayerHint.xml @@ -1,38 +1,33 @@ - - PlayerHint - - - - 10 - - - 0.0 - - - 1 - - - 180.0 - - - 180.0 - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + PlayerHint + + + + 10 + + + 0.0 + + + 1 + + + 180.0 + + + 180.0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/PlayerProxy.xml b/templates/mp3/Script/PlayerProxy.xml index d752751c..f94211af 100644 --- a/templates/mp3/Script/PlayerProxy.xml +++ b/templates/mp3/Script/PlayerProxy.xml @@ -1,45 +1,44 @@ - - PlayerProxy - - - - 0xD43A816B - - - - - - - - - - - - - - false - - - false - - - 0.0, 0.0, 0.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + PlayerProxy + + + + 0xD43A816B + + + + + + + + + + + + + + false + + + false + + + + 0.0 + 0.0 + 0.0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/PlayerUserAnimPoint.xml b/templates/mp3/Script/PlayerUserAnimPoint.xml index 5e5070a4..40a994e9 100644 --- a/templates/mp3/Script/PlayerUserAnimPoint.xml +++ b/templates/mp3/Script/PlayerUserAnimPoint.xml @@ -1,39 +1,35 @@ - - PlayerUserAnimPoint - - - - - 0.75 - - - 1.0 - - - 0.0 - - - 0.1 - - - 5 - - - - - - - - - - - - - - 0xA3D63F44 - - enabled - enabled - - + + + PlayerUserAnimPoint + + + + + 0.75 + + + 1.0 + + + 0.0 + + + 0.1 + + + 5 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/mp3/Script/PointOfInterest.xml b/templates/mp3/Script/PointOfInterest.xml index f9e32730..f49295f7 100644 --- a/templates/mp3/Script/PointOfInterest.xml +++ b/templates/mp3/Script/PointOfInterest.xml @@ -1,34 +1,34 @@ - - PointOfInterest - - - - - 0.0, 0.0, 0.0 - - - false - - - true - - - - - - - - - - - - - - script/common/PointOfInterest.TXTR - - 0.5 - enabled - enabled - - + + + PointOfInterest + + + + + + 0.0 + 0.0 + 0.0 + + + + false + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/PositionRelay.xml b/templates/mp3/Script/PositionRelay.xml index 642bcbe0..bffd8d23 100644 --- a/templates/mp3/Script/PositionRelay.xml +++ b/templates/mp3/Script/PositionRelay.xml @@ -1,25 +1,20 @@ - - PositionRelay - - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + PositionRelay + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/Puffer.xml b/templates/mp3/Script/Puffer.xml index 90c7a74a..9efca504 100644 --- a/templates/mp3/Script/Puffer.xml +++ b/templates/mp3/Script/Puffer.xml @@ -1,60 +1,72 @@ - - Puffer - - RSO_Puffer.rso - - - - - - - - 0.0 - - - - - true - - - 3.0 - - - - - - 0.5 - - - true - - - false - - - false - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_Puffer.rso + + + Puffer + + + + + + + 0.0 + + + + + true + + + 3.0 + + + + PART + + + + + + TXTR + + + + 0.5 + + + true + + + false + + + false + + + + + CAUD + + + + + CAUD + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/RSPL.xml b/templates/mp3/Script/RSPL.xml index 6ac9177e..bfb27681 100644 --- a/templates/mp3/Script/RSPL.xml +++ b/templates/mp3/Script/RSPL.xml @@ -1,37 +1,32 @@ - - RSPL - - - - 1.0 - - - 20 - - - 2 - - - 1.0 - - - 0.125 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RSPL + + + + 1.0 + + + 20 + + + 2 + + + 1.0 + + + 0.125 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/RadialDamage.xml b/templates/mp3/Script/RadialDamage.xml index 7900bb6e..8d3481b9 100644 --- a/templates/mp3/Script/RadialDamage.xml +++ b/templates/mp3/Script/RadialDamage.xml @@ -1,37 +1,33 @@ - - RadialDamage - - - - - 15.0 - - - false - - - false - - - false - - - - - - - - - - - - - - script/common/RadialDamage.TXTR - - 0.5 - enabled - enabled - - + + + RadialDamage + + + + + 15.0 + + + false + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/RandomRelay.xml b/templates/mp3/Script/RandomRelay.xml index 9545f787..f4871dff 100644 --- a/templates/mp3/Script/RandomRelay.xml +++ b/templates/mp3/Script/RandomRelay.xml @@ -1,39 +1,35 @@ - - RandomRelay - - - - 1 - - - 0 - - - false - - - false - - - false - - - - - - - - - - - - - - script/common/RandomRelay.TXTR - - 0.5 - enabled - enabled - - + + + RandomRelay + + + + 1 + + + 0 + + + false + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/Relay.xml b/templates/mp3/Script/Relay.xml index dd23d686..8697ebf3 100644 --- a/templates/mp3/Script/Relay.xml +++ b/templates/mp3/Script/Relay.xml @@ -1,27 +1,23 @@ - - Relay - - - - false - - - - - - - - - - - - - - script/common/Relay.TXTR - - 0.5 - enabled - enabled - - + + + Relay + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/ReptilicusHunter.xml b/templates/mp3/Script/ReptilicusHunter.xml index 789d1d80..8391eefb 100644 --- a/templates/mp3/Script/ReptilicusHunter.xml +++ b/templates/mp3/Script/ReptilicusHunter.xml @@ -1,186 +1,35 @@ - - ReptilicusHunter - - RSO_ReptilicusHunter.rso - - - - - - - 360.0 - - - - - - - - true - - - true - - - false - - - false - - - 15.0 - - - 20.0 - - - 40.0 - - - 2.0 - - - 4.0 - - - 1.0 - - - 0.25 - - - - - 2.0 - - - 300.0 - - - 0.0 - - - 10.0 - - - 0.0 - - - 1.0 - - - 1.0 - - - 1.0 - - - 7.5 - - - 25.0 - - - 10.0 - - - 10.0 - - - - - - - - - - 5.0 - - - - 1.0 - - - 25.0 - - - - - - - - - - - 2.5 - - - 15.0 - - - - - false - - - - - - - - - - - - - - - - 50.0 - - - 50.0 - - - 720.0 - - - 0.5 - - - - 1.0 - - - 20.0 - - - 60.0 - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x3B7085AD:0xD7548E97:0x5C1FFC8D - 0x7E397FED:0xBB52F0BE - 0x3B7085AD:0x19A58C31:0x66AB57A4 - - enabled - enabled - - + + + RSO_ReptilicusHunter.rso + + + ReptilicusHunter + + + + + + 360.0 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp3/Script/Repulsor.xml b/templates/mp3/Script/Repulsor.xml index 3f3e3e14..80d39271 100644 --- a/templates/mp3/Script/Repulsor.xml +++ b/templates/mp3/Script/Repulsor.xml @@ -1,34 +1,29 @@ - - Repulsor - - - - 0 - - - 1.0 - - - -1.0 - - - 0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Repulsor + + + + 0 + + + 1.0 + + + -1.0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/Ridley1.xml b/templates/mp3/Script/Ridley1.xml index c15a256e..65b23678 100644 --- a/templates/mp3/Script/Ridley1.xml +++ b/templates/mp3/Script/Ridley1.xml @@ -1,89 +1,34 @@ - - Ridley1 - - RSO_Ridley1.rso - - - - - - - - - - - - - 100.0 - - - - - - - - - - - - - - - - 15.0 - - - - 25.0 - - - - - - - 500.0 - - - - 250.0 - - - - 100.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x1464AE05:0xA244C9D8 - 0x24D00673:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_Ridley1.rso + + + Ridley1 + + + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp3/Script/Ripple.xml b/templates/mp3/Script/Ripple.xml index e0d64c52..eb483ea9 100644 --- a/templates/mp3/Script/Ripple.xml +++ b/templates/mp3/Script/Ripple.xml @@ -1,31 +1,26 @@ - - Ripple - - RSO_ScriptWater.rso - - - - - 0.2 - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RSO_ScriptWater.rso + + + Ripple + + + + 0.2 + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/RoomAcoustics.xml b/templates/mp3/Script/RoomAcoustics.xml index 89a82853..f0d36924 100644 --- a/templates/mp3/Script/RoomAcoustics.xml +++ b/templates/mp3/Script/RoomAcoustics.xml @@ -1,54 +1,28 @@ - - RoomAcoustics - - - - 0x3AAA1114 - - - - - - - - - - - - 0.01 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.3 - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RoomAcoustics + + + + 0x3AAA1114 + + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/RumbleEffect.xml b/templates/mp3/Script/RumbleEffect.xml index 14b15c05..c2bc1b0e 100644 --- a/templates/mp3/Script/RumbleEffect.xml +++ b/templates/mp3/Script/RumbleEffect.xml @@ -1,32 +1,27 @@ - - RumbleEffect - - - - 20.0 - - - 0 - - - 0 - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RumbleEffect + + + + 20.0 + + + 0 + + + 0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/Rundas.xml b/templates/mp3/Script/Rundas.xml index 833e9cd5..301b5320 100644 --- a/templates/mp3/Script/Rundas.xml +++ b/templates/mp3/Script/Rundas.xml @@ -1,232 +1,118 @@ - - Rundas - - RSO_Rundas.rso - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 25.0 - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - - - - - - - - - never - - - never - - - never - - - never - - - 100.0 - - - never - - - never - - - - - - - - never - - - never - - - never - - - never - - - 100.0 - - - never - - - never - - - - - - - - never - - - never - - - never - - - never - - - 100.0 - - - never - - - never - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x1464AE05:0xA244C9D8 - 0x24D00673:0xA244C9D8 - 0xA6790709:0x1A662787 - 0xA6790709:0x6DCB001F - 0xA6790709:0xAC0B1EA5 - 0xA6790709:0x508BF168 - 0xA6790709:0x02E83A7C - 0xA6790709:0xE7C1049E - 0xA6790709:0x2C41E9A5 - 0xA6790709:0x152658FE - 0xA6790709:0xE22A6DDA - 0xA6790709:0x1EAA8217 - 0xA6790709:0x17789D1C - 0xA6790709:0xE039C4BD - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_Rundas.rso + + + Rundas + + + + + + + + Never + + + Never + + + Never + + + Never + + + 100.0 + + + Never + + + Never + + + + + + + + Never + + + Never + + + Never + + + Never + + + 100.0 + + + Never + + + Never + + + + + + + + Never + + + Never + + + Never + + + Never + + + 100.0 + + + Never + + + Never + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + + + + + + + + + + diff --git a/templates/mp3/Script/SamusForm.xml b/templates/mp3/Script/SamusForm.xml index fcac78bd..0417649b 100644 --- a/templates/mp3/Script/SamusForm.xml +++ b/templates/mp3/Script/SamusForm.xml @@ -1,118 +1,35 @@ - - SamusForm - - RSO_Gandrayda.rso - - - - - - - - 0.0 - - - - - - - - 4.0 - - - 6.0 - - - 3.0 - - - 5.0 - - - 5.0 - - - 100.0 - - - 1.0 - - - 70.0 - - - 0.65 - - - 9.0 - - - - - - 1.3 - - - 3.5 - - - 10.0 - - - - - - - - - - - - - 80.0 - - - 80.0 - - - 20.0 - - - 72.0 - - - 90.0 - - - 30.0 - - - - - 14.0 - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7EFC051A:0x84605259:0xA3D63F44 - 0x7E397FED:0xBB52F0BE - 0x7EFC051A:0x216ED1AD - - enabled - enabled - - + + + RSO_Gandrayda.rso + + + SamusForm + + + + + + + 0.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + diff --git a/templates/mp3/Script/ScanBeam.xml b/templates/mp3/Script/ScanBeam.xml index 62864cd9..176216d7 100644 --- a/templates/mp3/Script/ScanBeam.xml +++ b/templates/mp3/Script/ScanBeam.xml @@ -1,23 +1,18 @@ - - ScanBeam - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ScanBeam + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/ScanIncoming.xml b/templates/mp3/Script/ScanIncoming.xml index 414d36a5..f3ba32b0 100644 --- a/templates/mp3/Script/ScanIncoming.xml +++ b/templates/mp3/Script/ScanIncoming.xml @@ -1,23 +1,22 @@ - - ScanIncoming - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ScanIncoming + + + + + SCAN + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/ScrewAttackWallJumpTarget.xml b/templates/mp3/Script/ScrewAttackWallJumpTarget.xml index c54e011c..aba6ce2a 100644 --- a/templates/mp3/Script/ScrewAttackWallJumpTarget.xml +++ b/templates/mp3/Script/ScrewAttackWallJumpTarget.xml @@ -1,22 +1,17 @@ - - ScrewAttackWallJumpTarget - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ScrewAttackWallJumpTarget + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/ScriptLayerController.xml b/templates/mp3/Script/ScriptLayerController.xml index b35eb871..7b63869e 100644 --- a/templates/mp3/Script/ScriptLayerController.xml +++ b/templates/mp3/Script/ScriptLayerController.xml @@ -1,31 +1,21 @@ - - ScriptLayerController - - - - - - - - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ScriptLayerController + + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/SeedBoss1.xml b/templates/mp3/Script/SeedBoss1.xml index e41ce786..5e01c64c 100644 --- a/templates/mp3/Script/SeedBoss1.xml +++ b/templates/mp3/Script/SeedBoss1.xml @@ -1,303 +1,67 @@ - - SeedBoss1 - - RSO_SeedBoss1.rso - - - - - - - - - 0.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0.0 - - - - - - 1.0 - - - - - 0.0, 0.0, 0.0 - - - - - - - - - - - - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - 0.0, 0.0, 0.0 - - - 0.0 - - - 0.0 - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - 0.0, 0.0, 0.0 - - - 0.0 - - - 0.0 - - - - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - - - - - - - - - - 20.0 - - - - - 0.0, 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0, 0.0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0xF6E66110:0xC69F691A:0x71A5A198 - 0x7E397FED:0xBB52F0BE - 0xF6E66110:0xAD0DE5AC - 0xF6E66110:0xFC128C15 - 0xF6E66110:0x299B8D33 - 0xF6E66110:0xA5BB98A6 - 0xF6E66110:0xF4A4F11F - 0xF6E66110:0xC946D250 - 0xF6E66110:0x50EDAE7F - 0xF6E66110:0x30969CFE - 0xF6E66110:0xB25E271D - 0xF6E66110:0x5D71B85C - 0xF6E66110:0x3D0A8ADD - 0xF6E66110:0x43223A97 - 0xF6E66110:0x9B76AD84 - 0xF6E66110:0xFB0D9F05 - 0xF6E66110:0x48EE50AD - 0xF6E66110:0x85635B3B - 0xF6E66110:0xE51869BA - 0xF6E66110:0x5CEA873F - 0xF6E66110:0xC288AE69 - 0xF6E66110:0xCDBD44E1 - 0xF6E66110:0x6AD6CBBA - 0xF6E66110:0x3AB79847 - 0xF6E66110:0x27B30D35 - 0xF6E66110:0xC69F691A:0xA30EE999:0xBB52F0BE - 0xF6E66110:0x2883F972:0xDCE1A940 - 0xF6E66110:0x2883F972:0xF4C318B3 - 0xF6E66110:0x2883F972:0xB3673269 - 0xF6E66110:0x2883F972:0xB9196D9E - 0xF6E66110:0x2883F972:0x8C0BEE98 - 0xF6E66110:0x2883F972:0x4D7984E6 - 0xF6E66110:0x2883F972:0x8FBE621D - 0xF6E66110:0x2883F972:0x11EA2651 - 0xF6E66110:0x2883F972:0x564E0C8B - 0xF6E66110:0x2883F972:0x807EDCC5 - 0xF6E66110:0x2883F972:0x708B0155 - 0xF6E66110:0x2883F972:0xE46803DC - 0xF6E66110:0x2883F972:0x6A975CFF - 0xF6E66110:0x2883F972:0x97E2B6C7 - 0xF6E66110:0x2883F972:0x1176C469 - - enabled - enabled - - + + + RSO_SeedBoss1.rso + + + SeedBoss1 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/mp3/Script/SeedBoss1Orb.xml b/templates/mp3/Script/SeedBoss1Orb.xml index 4bd9a982..70a54d82 100644 --- a/templates/mp3/Script/SeedBoss1Orb.xml +++ b/templates/mp3/Script/SeedBoss1Orb.xml @@ -1,57 +1,27 @@ - - SeedBoss1Orb - - RSO_SeedBoss1.rso - - - - - - - - - - - - 0.0, 1.0, 0.0, 1.0 - - - true - - - - - 0.0 - - - 25.0 - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_SeedBoss1.rso + + + SeedBoss1Orb + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/SeedBoss2BotSwarm.xml b/templates/mp3/Script/SeedBoss2BotSwarm.xml index b85cd7e4..96e86489 100644 --- a/templates/mp3/Script/SeedBoss2BotSwarm.xml +++ b/templates/mp3/Script/SeedBoss2BotSwarm.xml @@ -1,57 +1,28 @@ - - SeedBoss2BotSwarm - - RSO_Gandrayda.rso - - - - - - - - - 30 - - - 30.0 - - - 4.0 - - - - - - 0.1 - - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0xD6CC62CB:0x4C64D3A6 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_Gandrayda.rso + + + SeedBoss2BotSwarm + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp3/Script/SeedBoss2GiantForm.xml b/templates/mp3/Script/SeedBoss2GiantForm.xml index bb046d0c..c85c8662 100644 --- a/templates/mp3/Script/SeedBoss2GiantForm.xml +++ b/templates/mp3/Script/SeedBoss2GiantForm.xml @@ -1,30 +1,26 @@ - - SeedBoss2GiantForm - - RSO_SeedBoss2.rso - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_SeedBoss2.rso + + + SeedBoss2GiantForm + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/SeedBoss2PrimeBot.xml b/templates/mp3/Script/SeedBoss2PrimeBot.xml index f60dc38c..11930b7b 100644 --- a/templates/mp3/Script/SeedBoss2PrimeBot.xml +++ b/templates/mp3/Script/SeedBoss2PrimeBot.xml @@ -1,87 +1,35 @@ - - SeedBoss2PrimeBot - - RSO_SeedBoss2.rso - - - - - - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 100.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0x96782873:0x4C64D3A6 - 0xB3774750:0xA244C9D8 - 0x1464AE05:0xA244C9D8 - 0x24D00673:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_SeedBoss2.rso + + + SeedBoss2PrimeBot + + + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + diff --git a/templates/mp3/Script/SeedBoss3.xml b/templates/mp3/Script/SeedBoss3.xml index 1def0c89..451ed7de 100644 --- a/templates/mp3/Script/SeedBoss3.xml +++ b/templates/mp3/Script/SeedBoss3.xml @@ -1,178 +1,186 @@ - - SeedBoss3 - - RSO_SeedBoss3.rso - - - - - - - - - - 1000.0 - - - - - 0.1 - - - 20.0 - - - - - 0.01 - - - - - 500.0 - - - 20.0 - - - - - 2 - - - 90.0 - - - false - - - 0.0, 2.0, -0.5 - - - - - - - 1000.0 - - - - - 0.1 - - - 20.0 - - - - - 0.01 - - - - - 500.0 - - - 20.0 - - - - - 2 - - - 90.0 - - - false - - - 0.0, 2.0, -0.5 - - - - - - - 1000.0 - - - - - 0.1 - - - 20.0 - - - - - 0.01 - - - - - 500.0 - - - 20.0 - - - - - 2 - - - 90.0 - - - false - - - 0.0, 2.0, -0.5 - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x5C056CEF:0xA244C9D8 - 0x8BE7ECB7:0xA244C9D8 - 0xFD27ED67:0x4802ADD9:0x476D50F2 - 0xFD27ED67:0xA00B9AC3:0x8E13F1F6 - 0xFD27ED67:0xA00B9AC3:0x69A25F05 - 0xFD27ED67:0xA00B9AC3:0x0A366C12 - 0xFD27ED67:0xA00B9AC3:0x03B5981C - 0xFD27ED67:0xA00B9AC3:0xBB5658B3 - 0x5292969E:0x4802ADD9:0x476D50F2 - 0x5292969E:0xA00B9AC3:0x8E13F1F6 - 0x5292969E:0xA00B9AC3:0x69A25F05 - 0x5292969E:0xA00B9AC3:0x0A366C12 - 0x5292969E:0xA00B9AC3:0x03B5981C - 0x5292969E:0xA00B9AC3:0xBB5658B3 - 0xCF9D77E8:0x4802ADD9:0x476D50F2 - 0xCF9D77E8:0xA00B9AC3:0x8E13F1F6 - 0xCF9D77E8:0xA00B9AC3:0x69A25F05 - 0xCF9D77E8:0xA00B9AC3:0x0A366C12 - 0xCF9D77E8:0xA00B9AC3:0x03B5981C - 0xCF9D77E8:0xA00B9AC3:0xBB5658B3 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_SeedBoss3.rso + + + SeedBoss3 + + + + + + + + + 1000.0 + + + + + 0.1 + + + 20.0 + + + + + 0.0099999998 + + + + + 500.0 + + + 20.0 + + + + + 2 + + + 90.0 + + + false + + + + 0.0 + 2.0 + -0.5 + + + + + + + + 1000.0 + + + + + 0.1 + + + 20.0 + + + + + 0.0099999998 + + + + + 500.0 + + + 20.0 + + + + + 2 + + + 90.0 + + + false + + + + 0.0 + 2.0 + -0.5 + + + + + + + + 1000.0 + + + + + 0.1 + + + 20.0 + + + + + 0.0099999998 + + + + + 500.0 + + + 20.0 + + + + + 2 + + + 90.0 + + + false + + + + 0.0 + 2.0 + -0.5 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/mp3/Script/SequenceTimer.xml b/templates/mp3/Script/SequenceTimer.xml index e7ec244e..319fe631 100644 --- a/templates/mp3/Script/SequenceTimer.xml +++ b/templates/mp3/Script/SequenceTimer.xml @@ -1,69 +1,41 @@ - - SequenceTimer - - - - Connection - - - 0 - - - Activation Time - - - 0.0 - - - 0 - Always 0 - - - 0 - - - 0 - Always 0 - - - - - - - 0.0 - - - 60.0 - - - 0.0 - - - false - - - false - - - false - - - - - - - - - - - - - - script/common/SequenceTimer.TXTR - - 0.5 - enabled - enabled - - + + + SequenceTimer + + + + + + + 0.0 + + + 60.0 + + + 0.0 + + + false + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/ShadowProjector.xml b/templates/mp3/Script/ShadowProjector.xml index 50b0e40b..3b79d653 100644 --- a/templates/mp3/Script/ShadowProjector.xml +++ b/templates/mp3/Script/ShadowProjector.xml @@ -1,44 +1,43 @@ - - ShadowProjector - - - - 1.0 - - - 0.0, 0.0, 0.0 - - - 100.0 - - - 0.5 - - - 1.0 - - - false - - - 128 - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ShadowProjector + + + + 1.0 + + + + 0.0 + 0.0 + 0.0 + + + + 100.0 + + + 0.5 + + + 1.0 + + + false + + + 128 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/ShellBug.xml b/templates/mp3/Script/ShellBug.xml index 1bb450d7..349571b0 100644 --- a/templates/mp3/Script/ShellBug.xml +++ b/templates/mp3/Script/ShellBug.xml @@ -1,192 +1,28 @@ - - ShellBug - - RSO_ShellBug.rso - - - - - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - false - - - 0.0 - - - 0.0 - - - - true - - - false - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_ShellBug.rso + + + ShellBug + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/Ship.xml b/templates/mp3/Script/Ship.xml index 655315fe..7278a75a 100644 --- a/templates/mp3/Script/Ship.xml +++ b/templates/mp3/Script/Ship.xml @@ -1,99 +1,38 @@ - - Ship - - RSO_Ship.rso - - - - - - - - - 2.0 - - - - - - - - - - false - - - - - - 0xCD26D8F0 - - - 50.0 - - - 20.0 - - - 5.0 - - - - - - 0.5 - - - 10.0 - - - true - - - - - 90.0 - - - 90.0 - - - - - - - - - - - - true - - - 40.0 - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0xC854D4A6:0x7D38C0BE - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_Ship.rso + + + Ship + + + + + + + + 2.0 + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp3/Script/ShipBombingRun.xml b/templates/mp3/Script/ShipBombingRun.xml index 478342d5..7d367101 100644 --- a/templates/mp3/Script/ShipBombingRun.xml +++ b/templates/mp3/Script/ShipBombingRun.xml @@ -1,28 +1,35 @@ - - ShipBombingRun - - - - 2.5 - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ShipBombingRun + + + + 2.5 + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/ShipCommandIcon.xml b/templates/mp3/Script/ShipCommandIcon.xml index e7cbc061..a4bbf79f 100644 --- a/templates/mp3/Script/ShipCommandIcon.xml +++ b/templates/mp3/Script/ShipCommandIcon.xml @@ -1,58 +1,77 @@ - - ShipCommandIcon - - - - false - - - false - - - true - - - 0 - - - - - - - - - 0xFB73F2B8 - - - 0xF16CAFBC - - - - - - - - - 1.5 - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ShipCommandIcon + + + + false + + + false + + + true + + + 0 + + + + TXTR + + + + + TXTR + + + + + TXTR + + + + + + + 0xFB73F2B8 + + + 0xF16CAFBC + + + + + + + + + 1.5 + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/ShipCommandPath.xml b/templates/mp3/Script/ShipCommandPath.xml index ebf3802f..51f39a61 100644 --- a/templates/mp3/Script/ShipCommandPath.xml +++ b/templates/mp3/Script/ShipCommandPath.xml @@ -1,38 +1,33 @@ - - ShipCommandPath - - - - - false - - - false - - - true - - - 50.0 - - - 360.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ShipCommandPath + + + + + false + + + false + + + true + + + 50.0 + + + 360.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/ShipDecalController.xml b/templates/mp3/Script/ShipDecalController.xml index 3cf83698..02d087f4 100644 --- a/templates/mp3/Script/ShipDecalController.xml +++ b/templates/mp3/Script/ShipDecalController.xml @@ -1,35 +1,30 @@ - - ShipDecalController - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ShipDecalController + + + + + + + + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/ShipHudControl.xml b/templates/mp3/Script/ShipHudControl.xml index 94bf6566..93a1e291 100644 --- a/templates/mp3/Script/ShipHudControl.xml +++ b/templates/mp3/Script/ShipHudControl.xml @@ -1,65 +1,27 @@ - - ShipHudControl - - - - - - - - 0xAAF6CAA5 - - - - - - - - true - - - false - - - -1 - - - -1 - - - -1 - - - -1 - - - -1 - - - -1 - - - -1 - - - - - - - - - - - - - - - - 0xA3D63F44 - 0xC27FFA8F - - enabled - enabled - - + + + ShipHudControl + + + + + CMDL + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + + diff --git a/templates/mp3/Script/ShipProxy.xml b/templates/mp3/Script/ShipProxy.xml index 7f0aec20..68dc483d 100644 --- a/templates/mp3/Script/ShipProxy.xml +++ b/templates/mp3/Script/ShipProxy.xml @@ -1,22 +1,17 @@ - - ShipProxy - - - - - - - - - - - - - - - - enabled - enabled - - + + + ShipProxy + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/mp3/Script/SkyRipple.xml b/templates/mp3/Script/SkyRipple.xml index 0ab2f395..133d28f6 100644 --- a/templates/mp3/Script/SkyRipple.xml +++ b/templates/mp3/Script/SkyRipple.xml @@ -1,22 +1,17 @@ - - SkyRipple - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + SkyRipple + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/SkyboxModInca.xml b/templates/mp3/Script/SkyboxModInca.xml index af052d9e..c8329d45 100644 --- a/templates/mp3/Script/SkyboxModInca.xml +++ b/templates/mp3/Script/SkyboxModInca.xml @@ -1,26 +1,26 @@ - - SkyboxModInca - - - - 1.0, 1.0, 1.0, 0.0 - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + SkyboxModInca + + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/SnagVineHelper.xml b/templates/mp3/Script/SnagVineHelper.xml index b06ab9cc..cf3638cd 100644 --- a/templates/mp3/Script/SnagVineHelper.xml +++ b/templates/mp3/Script/SnagVineHelper.xml @@ -1,31 +1,26 @@ - - SnagVineHelper - - RSO_ScriptSnagVineHelper.rso - - - - - 2.0 - - - 0.6 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RSO_ScriptSnagVineHelper.rso + + + SnagVineHelper + + + + 2.0 + + + 0.60000002 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/Sound.xml b/templates/mp3/Script/Sound.xml index 390d99e9..0a9959fc 100644 --- a/templates/mp3/Script/Sound.xml +++ b/templates/mp3/Script/Sound.xml @@ -1,83 +1,74 @@ - - Sound - - - - - 0.0 - - - 0.0 - - - 0.0 - - - 1.0 - - - 0.0 - - - - - 0.0 - - - 1.0 - - - - - 0.0 - - - 0.0 - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - - - - - - - - - - - - script/common/Sound.TXTR - - 0.5 - enabled - enabled - - + + + Sound + + + + + CAUD + + + + 0.0 + + + 0.0 + + + 0.0 + + + 1.0 + + + 0.0 + + + + 0.0 + + + 0.0 + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/SoundModifier.xml b/templates/mp3/Script/SoundModifier.xml index 31726ade..be1a3954 100644 --- a/templates/mp3/Script/SoundModifier.xml +++ b/templates/mp3/Script/SoundModifier.xml @@ -1,41 +1,37 @@ - - SoundModifier - - - - 5.0 - - - false - - - false - - - false - - - - - - - - - - - - - - - - - - - script/common/SoundModifier.TXTR - - 0.5 - enabled - enabled - - + + + SoundModifier + + + + 5.0 + + + false + + + false + + + false + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/SpacePirate.xml b/templates/mp3/Script/SpacePirate.xml index ed65a317..e1970433 100644 --- a/templates/mp3/Script/SpacePirate.xml +++ b/templates/mp3/Script/SpacePirate.xml @@ -1,557 +1,109 @@ - - SpacePirate - - RSO_SpacePirate.rso - - - - - - - - - - 10.0 - - - 10.0 - - - - - 3.0 - - - - - 150.0 - - - 2.0 - - - - - 0.8 - - - 4.5 - - - 0.3 - - - 1 - - - 360.0 - - - 50.0 - - - 90.0 - - - 4.0 - - - 1.0 - - - 0.5 - - - 0.2 - - - 10.0 - - - - - - - false - - - - false - - - false - - - true - - - false - - - false - - - 10.0 - - - false - - - 30.0 - - - 2.0 - - - 2.0 - - - 1.0 - - - false - - - - - - - 5.0 - - - - - - - - - true - - - 10.0 - - - 1000.0 - - - false - - - false - - - 60.0 - - - 90.0 - - - true - - - true - - - true - - - - - - - 0 - - - true - - - false - - - false - - - false - - - false - - - 50.0 - - - 10.0 - - - false - - - true - - - 10.0 - - - 50.0 - - - 20.0 - - - 20.0 - - - 1000.0 - - - 8.0 - - - false - - - 80.0 - - - 1.0 - - - false - - - false - - - false - - - - - 10.0 - - - 5.0 - - - - - 0.1 - - - 0.05 - - - 0 - - - 1.0 - - - 0 - - - 2 - - - false - - - 0.025 - - - 1.0 - - - 0.25 - - - 100.0 - - - 100.0 - - - false - - - 10.0 - - - 5.0 - - - 150.0 - - - 3.0 - - - false - - - false - - - 30.0 - - - 15.0 - - - 50.0 - - - 2.0 - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - 1.0 - - - false - - - 5.0 - - - 10.0 - - - 2.0 - - - 25.0 - - - 16.0 - - - 4.0 - - - 3.0 - - - - - - 10000 - - - 1.5 - - - - - - - false - - - false - - - - - 100.0 - - - - - - 1 - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - false - - - - - 100.0 - - - 5.0 - - - - - - - - - - - - - - - - - - false - - - 1 - - - 2 - - - 30.0 - - - false - - - 10.0 - - - 10.0 - - - 5.0 - - - 0 - - - - - - - - - - - - - - - - - 0x43BBB1DD:0xA244C9D8 - 0xDDA1CACE:0xC699AD35 - 0x7E397FED:0xBB52F0BE - 0xE677AF2C:0x50340852 - 0xDDA1CACE:0xC3B6103B:0x2245A396 - 0xDDA1CACE:0x7579CC86 - 0xDDA1CACE:0x68002BD7 - 0xDDA1CACE:0xAD315C7C - 0xDDA1CACE:0x042A25ED - 0xDDA1CACE:0xE39B8B1E - 0xDDA1CACE:0x356C166A - 0xDDA1CACE:0x1CA4A298 - 0xDDA1CACE:0xDF44507E - 0xDDA1CACE:0xD2C9A656 - 0xDDA1CACE:0xD4E26A8E - - enabled - enabled - - + + + RSO_SpacePirate.rso + + + SpacePirate + + + + + + + + + 10.0 + + + 10.0 + + + + + 3.0 + + + + + 150.0 + + + 2.0 + + + + + 0.80000001 + + + 4.5 + + + 0.30000001 + + + 1 + + + 360.0 + + + 50.0 + + + 90.0 + + + 4.0 + + + 1.0 + + + 0.5 + + + 0.2 + + + 10.0 + + + + + + + true + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + + + + + + + + + diff --git a/templates/mp3/Script/SpawnPoint.xml b/templates/mp3/Script/SpawnPoint.xml index 607a7928..a1ea7a18 100644 --- a/templates/mp3/Script/SpawnPoint.xml +++ b/templates/mp3/Script/SpawnPoint.xml @@ -1,183 +1,36 @@ - - SpawnPoint - - - - true - - - false - - - false - - - false - - - false - - - false - - - - - - - - - 1 - - - 1 - - - - - - - 1 - - - 1 - - - - - - - - - - - true - - - false - - - false - - - false - - - - false - - - false - - - false - - - false - - - false - - - false - - - - - - - false - - - false - - - false - - - - - - - false - - - false - - - false - - - - - - - false - - - 0 - - - 0 - - - - - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - false - - - - - - - - false - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + SpawnPoint + + + + true + + + false + + + false + + + false + + + false + + + false + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/SpecialFunction.xml b/templates/mp3/Script/SpecialFunction.xml index 6b4f7e4d..64e4d2d1 100644 --- a/templates/mp3/Script/SpecialFunction.xml +++ b/templates/mp3/Script/SpecialFunction.xml @@ -1,122 +1,118 @@ - - SpecialFunction - - - - 0x98C5AED7 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0 - - - 0 - - - 0xFB73F2B8 - - - - - - 0xCC1DFCF5 - - - - - - - - - - - - - - - - - - script/common/SpecialFunction.TXTR - - 0.5 - enabled - enabled - - + + + SpecialFunction + + + + 0x98C5AED7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0 + + + 0 + + + 0xFB73F2B8 + + + + + + 0xCC1DFCF5 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/SpiderBallAttractionSurface.xml b/templates/mp3/Script/SpiderBallAttractionSurface.xml index 7a1aa962..757a6ab5 100644 --- a/templates/mp3/Script/SpiderBallAttractionSurface.xml +++ b/templates/mp3/Script/SpiderBallAttractionSurface.xml @@ -1,24 +1,21 @@ - - SpiderBallAttractionSurface - - - - - - - - - - - - - - - script/common/SpiderBallAttractionSurface.TXTR - - enabled - volume - - - + + + SpiderBallAttractionSurface + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + ScaleVolume + BoxShape + diff --git a/templates/mp3/Script/SpiderBallWaypoint.xml b/templates/mp3/Script/SpiderBallWaypoint.xml index 30a748fe..fb843ebf 100644 --- a/templates/mp3/Script/SpiderBallWaypoint.xml +++ b/templates/mp3/Script/SpiderBallWaypoint.xml @@ -1,26 +1,22 @@ - - SpiderBallWaypoint - - - - 0 - - - - - - - - - - - - - - script/common/SpiderBallWaypoint.CMDL - - enabled - enabled - - + + + SpiderBallWaypoint + + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/mp3/Script/Spinner.xml b/templates/mp3/Script/Spinner.xml index 4e050569..8df09410 100644 --- a/templates/mp3/Script/Spinner.xml +++ b/templates/mp3/Script/Spinner.xml @@ -1,52 +1,59 @@ - - Spinner - - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - false - - - false - - - false - - - true - - - false - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Spinner + + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + false + + + false + + + false + + + true + + + false + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/Sprite.xml b/templates/mp3/Script/Sprite.xml index 5eefe95d..b353b14e 100644 --- a/templates/mp3/Script/Sprite.xml +++ b/templates/mp3/Script/Sprite.xml @@ -1,80 +1,33 @@ - - Sprite - - RSO_Sprite.rso - - - - - - - - - 1.0 - - - 0.5 - - - 10.0 - - - 180.0 - - - - - - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - 50.0 - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_Sprite.rso + + + Sprite + + + + + + + 50.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/Steam.xml b/templates/mp3/Script/Steam.xml index c43ebd12..ec4dc0ac 100644 --- a/templates/mp3/Script/Steam.xml +++ b/templates/mp3/Script/Steam.xml @@ -1,50 +1,50 @@ - - Steam - - - - - - 0.35 - - - 1.0 - - - 2.0 - - - 0.0 - - - false - - - false - - - 0x56B01A4A - - - - - - - - - - - - - - - - - - - enabled - volume - - - + + + Steam + + + + + + TXTR + + + + 0.34999999 + + + 1.0 + + + 2.0 + + + 0.0 + + + false + + + false + + + 0x56B01A4A + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + BoxShape + diff --git a/templates/mp3/Script/SteamBot.xml b/templates/mp3/Script/SteamBot.xml index 1274eb38..ff6f6cc2 100644 --- a/templates/mp3/Script/SteamBot.xml +++ b/templates/mp3/Script/SteamBot.xml @@ -1,269 +1,28 @@ - - SteamBot - - RSO_SteamBot.rso - - - - - - - - 100.0 - - - 20.0 - - - 10.0 - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - 100.0 - - - 20.0 - - - 5.0 - - - 1.0, 1.0, 1.0 - - - 1.0 - - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - 0.1 - - - 0.015 - - - 30.0 - - - 5.0 - - - 0.5 - - - 1 - - - - 5.0 - - - 0.0 - - - 0.0 - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - 0.5 - - - 0.1 - - - 2.5 - - - 5.0 - - - 10.0 - - - 0.0 - - - 0.05 - - - 0.1 - - - 0.3 - - - 1.1 - - - 0.9 - - - - - - - - - - 1.0 - - - 5.0 - - - 5.0 - - - 0.5 - - - 0.0 - - - 0.0 - - - true - - - false - - - 5 - - - 4 - - - 2.1 - - - 1.9 - - - false - - - - - - 0.5 - - - 10.0 - - - 0.0 - - - 100.0 - - - true - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x11375EC0:0xBE5E86B9 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_SteamBot.rso + + + SteamBot + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp3/Script/SteamDrone.xml b/templates/mp3/Script/SteamDrone.xml index e644352a..1433ff10 100644 --- a/templates/mp3/Script/SteamDrone.xml +++ b/templates/mp3/Script/SteamDrone.xml @@ -1,260 +1,28 @@ - - SteamDrone - - RSO_SteamDrone.rso - - - - - - - - - - - - 20.0 - - - 120.0 - - - 3 - - - 0.7 - - - 15.0 - - - 10.0 - - - 25.0 - - - 5.0 - - - 3.0 - - - 1.0 - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - 2.0 - - - 2.0 - - - 2.0 - - - - - 1 - - - never - - - - - 1 - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - 25 - - - 25 - - - 25 - - - 25 - - - 25 - - - 5.0 - - - 25.0 - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0xA23F161C:0xD83B8302 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_SteamDrone.rso + + + SteamDrone + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp3/Script/SteamLord.xml b/templates/mp3/Script/SteamLord.xml index d7c35a57..113c5040 100644 --- a/templates/mp3/Script/SteamLord.xml +++ b/templates/mp3/Script/SteamLord.xml @@ -1,85 +1,27 @@ - - SteamLord - - RSO_SteamLord.rso - - - - - - - - - false - - - false - - - 1.0 - - - 0.25 - - - 2.0 - - - 10.0 - - - 25.0 - - - 10.0 - - - 2.5 - - - 5.0 - - - 5.0 - - - 10.0 - - - 50.0 - - - - - - - 15.0 - - - 5.0 - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_SteamLord.rso + + + SteamLord + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/StreamedAudio.xml b/templates/mp3/Script/StreamedAudio.xml index 9d4d7f34..6e2038e1 100644 --- a/templates/mp3/Script/StreamedAudio.xml +++ b/templates/mp3/Script/StreamedAudio.xml @@ -1,66 +1,66 @@ - - StreamedAudio - - - - - false - - - 0.25 - - - 0.25 - - - 1.0 - - - 0.0 - - - false - - - false - - - 2.0 - - - 25.0 - - - 0.0 - - - true - - - 0xFE6A473A - - - - - - - - - - - - - - - - - - - script/common/StreamedAudio.TXTR - - 0.5 - enabled - enabled - - + + + StreamedAudio + + + + + STRM + + + + false + + + 0.25 + + + 0.25 + + + 1.0 + + + 0.0 + + + false + + + false + + + 2.0 + + + 25.0 + + + 0.0 + + + true + + + 0xFE6A473A + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/StreamedAudioModifier.xml b/templates/mp3/Script/StreamedAudioModifier.xml index 1aeeb1e4..239ce60a 100644 --- a/templates/mp3/Script/StreamedAudioModifier.xml +++ b/templates/mp3/Script/StreamedAudioModifier.xml @@ -1,33 +1,29 @@ - - StreamedAudioModifier - - - - 250 - - - 250 - - - 0.0 - - - - - - - - - - - - - - script/common/StreamedAudioModifier.TXTR - - 0.5 - enabled - enabled - - + + + StreamedAudioModifier + + + + 250 + + + 250 + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/StreamedMovie.xml b/templates/mp3/Script/StreamedMovie.xml index c42aeff0..314b54d1 100644 --- a/templates/mp3/Script/StreamedMovie.xml +++ b/templates/mp3/Script/StreamedMovie.xml @@ -1,46 +1,42 @@ - - StreamedMovie - - - - - false - - - true - - - 0 - - - 127 - - - 0 - - - 0.05 - - - 1.0 - - - - - - - - - - - - - - script/common/StreamedMovie.TXTR - - 0.5 - enabled - enabled - - + + + StreamedMovie + + + + + false + + + true + + + 0 + + + 127 + + + 0 + + + 0.050000001 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/Subtitles.xml b/templates/mp3/Script/Subtitles.xml index e57e1c4e..71d5bbff 100644 --- a/templates/mp3/Script/Subtitles.xml +++ b/templates/mp3/Script/Subtitles.xml @@ -1,70 +1,69 @@ - - Subtitles - - - - - - 640 - - - 448 - - - 1 - - - - - 0 - - - 100 - - - - - 640 - - - 448 - - - 1 - - - - - 0 - - - 100 - - - - 0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Subtitles + + + + + + 640 + + + 448 + + + 1 + + + + + 0 + + + 100 + + + + + 640 + + + 448 + + + 1 + + + + + 0 + + + 100 + + + + STRG + + + + 0 + + + 0.0 + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/SurfaceControl.xml b/templates/mp3/Script/SurfaceControl.xml index 05c4e17e..550bcd0a 100644 --- a/templates/mp3/Script/SurfaceControl.xml +++ b/templates/mp3/Script/SurfaceControl.xml @@ -1,33 +1,28 @@ - - SurfaceControl - - - - 0xF07B8212 - - - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + SurfaceControl + + + + 0xF07B8212 + + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/SwarmBot.xml b/templates/mp3/Script/SwarmBot.xml index 39817cd0..226ce852 100644 --- a/templates/mp3/Script/SwarmBot.xml +++ b/templates/mp3/Script/SwarmBot.xml @@ -1,110 +1,27 @@ - - SwarmBot - - RSO_SwarmBot.rso - - - - - - - - - 8 - - - 8 - - - true - - - 3 - - - 10.0 - - - - - - - true - - - true - - - true - - - true - - - true - - - 28.0 - - - 25.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0.5 - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_SwarmBot.rso + + + SwarmBot + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/Switch.xml b/templates/mp3/Script/Switch.xml index aa0218e4..34411929 100644 --- a/templates/mp3/Script/Switch.xml +++ b/templates/mp3/Script/Switch.xml @@ -1,28 +1,23 @@ - - Switch - - - - false - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Switch + + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/TargetingPoint.xml b/templates/mp3/Script/TargetingPoint.xml index d2b3e6f4..89437ab3 100644 --- a/templates/mp3/Script/TargetingPoint.xml +++ b/templates/mp3/Script/TargetingPoint.xml @@ -1,28 +1,23 @@ - - TargetingPoint - - - - - false - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + TargetingPoint + + + + + false + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/TeamAI.xml b/templates/mp3/Script/TeamAI.xml index 81f83285..c3eff2d9 100644 --- a/templates/mp3/Script/TeamAI.xml +++ b/templates/mp3/Script/TeamAI.xml @@ -1,64 +1,59 @@ - - TeamAI - - RSO_ScriptTeamAiMgr.rso - - - - - 20 - - - 2 - - - 2 - - - 0 - - - 30 - - - 1 - - - 1 - - - 1 - - - 0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 1 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RSO_ScriptTeamAiMgr.rso + + + TeamAI + + + + 20 + + + 2 + + + 2 + + + 0 + + + 30 + + + 1 + + + 1 + + + 1 + + + 0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 1 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/TextPane.xml b/templates/mp3/Script/TextPane.xml index 13395428..18aaeaf8 100644 --- a/templates/mp3/Script/TextPane.xml +++ b/templates/mp3/Script/TextPane.xml @@ -1,87 +1,90 @@ - - TextPane - - - - - - - 80 - - - 10 - - - - - - - 80 - - - 10 - - - - - 0.0, 0.0, 0.0 - - - - - 1 - - - 0.25 - - - 0.25 - - - true - - - true - - - false - - - false - - - false - - - false - - - 0.25 - - - 5.0 - - - false - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + TextPane + + + + + + + 80 + + + 10 + + + + + + + 80 + + + 10 + + + + + + 0.0 + 0.0 + 0.0 + + + + + STRG + + + + + 1 + + + 0.25 + + + 0.25 + + + true + + + true + + + false + + + false + + + false + + + false + + + 0.25 + + + 5.0 + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/TimeKeyframe.xml b/templates/mp3/Script/TimeKeyframe.xml index 43121e91..f2df6d84 100644 --- a/templates/mp3/Script/TimeKeyframe.xml +++ b/templates/mp3/Script/TimeKeyframe.xml @@ -1,25 +1,20 @@ - - TimeKeyframe - - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + TimeKeyframe + + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/Timer.xml b/templates/mp3/Script/Timer.xml index e9ba0a20..c1bf1aa9 100644 --- a/templates/mp3/Script/Timer.xml +++ b/templates/mp3/Script/Timer.xml @@ -1,38 +1,34 @@ - - Timer - - - - 5.0 - - - 0.0 - A random value between this number and 0 will be added to the timer's start time. - - - false - If enabled, the timer will start ticking automatically on load. Otherwise, it will need to be started with a script message. - - - false - - - - - - - - - - - - - - script/common/Timer.TXTR - - 0.5 - enabled - enabled - - + + + Timer + + + + 5.0 + + + A random value between this number and 0 will be added to the timer's start time. + 0.0 + + + If enabled, the timer will start ticking automatically on load. Otherwise, it will need to be started with a script message. + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/Trigger.xml b/templates/mp3/Script/Trigger.xml index 530994cf..8962f444 100644 --- a/templates/mp3/Script/Trigger.xml +++ b/templates/mp3/Script/Trigger.xml @@ -1,42 +1,53 @@ - - Trigger - - - - 0x482B22F1 - - - - - - - - - - false - - - - - - - - - - - - - - script/common/Trigger.TXTR - - enabled - volume - - - - - - - - + + + Trigger + + + + 0x482B22F1 + + + + + + + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + ScaleVolume + ConditionalShape + 0x09ECEE0C + + + 1210786545 + BoxShape + + + 2006824261 + BoxShape + + + -2087520796 + EllipsoidShape + + + 971864974 + CylinderShape + + + diff --git a/templates/mp3/Script/VenomWeed.xml b/templates/mp3/Script/VenomWeed.xml index e02ea236..7b10c938 100644 --- a/templates/mp3/Script/VenomWeed.xml +++ b/templates/mp3/Script/VenomWeed.xml @@ -1,92 +1,88 @@ - - VenomWeed - - RSO_VenomWeed.rso - - - - - - - - 1.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 3.0 - - - 2.5 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - - - 0 - - - - 0.0 - - - - - - - - - - - - - - - 0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - enabled - - + + + RSO_VenomWeed.rso + + + VenomWeed + + + + + + + 1.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 3.0 + + + 2.5 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + + + + + + 0 + + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3/Script/VisorFlare.xml b/templates/mp3/Script/VisorFlare.xml index b14ae79e..5fb97c9c 100644 --- a/templates/mp3/Script/VisorFlare.xml +++ b/templates/mp3/Script/VisorFlare.xml @@ -1,77 +1,73 @@ - - VisorFlare - - - - 0 - - - true - - - 0.1 - - - 1.0 - - - 2.0 - - - 0 - - - true - - - false - - - - - - 0.25 - - - - - - - 0.5 - - - - - - - 0.75 - - - - - - - 1.0 - - - - - - - - - - - - - - - - script/common/VisorFlare.TXTR - - 0.5 - enabled - enabled - - + + + VisorFlare + + + + 0 + + + true + + + 0.1 + + + 1.0 + + + 2.0 + + + 0 + + + true + + + false + + + + + + 0.25 + + + + + + + 0.5 + + + + + + + 0.75 + + + + + + + 1.0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/VisorGoo.xml b/templates/mp3/Script/VisorGoo.xml index 8579de52..d208fea6 100644 --- a/templates/mp3/Script/VisorGoo.xml +++ b/templates/mp3/Script/VisorGoo.xml @@ -1,51 +1,63 @@ - - VisorGoo - - - - - - 1.0 - - - 8.0 - - - 40.0 - - - 20.0 - - - 1.0, 1.0, 1.0, 1.0 - - - - false - - - false - - - true - - - - - - - - - - - - - - script/common/VisorGoo.TXTR - - 0.5 - enabled - enabled - - + + + VisorGoo + + + + + PART + + + + + ELSC + + + + 1.0 + + + 8.0 + + + 40.0 + + + 20.0 + + + + 1.0 + 1.0 + 1.0 + + + + + CAUD + + + + false + + + false + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/VolGroup.xml b/templates/mp3/Script/VolGroup.xml index c93ce8e1..4c874c72 100644 --- a/templates/mp3/Script/VolGroup.xml +++ b/templates/mp3/Script/VolGroup.xml @@ -1,26 +1,21 @@ - - VolGroup - - - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + VolGroup + + + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/WallCrawlerSwarm.xml b/templates/mp3/Script/WallCrawlerSwarm.xml index bb28a2f9..377060e9 100644 --- a/templates/mp3/Script/WallCrawlerSwarm.xml +++ b/templates/mp3/Script/WallCrawlerSwarm.xml @@ -1,34 +1,35 @@ - - WallCrawlerSwarm - - - - - - true - never - - - - - - - - - - - - - - - - - 0xA244C9D8 - 0x7E397FED:0xBB52F0BE - - enabled - volume - - - + + + WallCrawlerSwarm + + + + + + Never + true + + + + + PART + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + ScaleVolume + BoxShape + diff --git a/templates/mp3/Script/Water.xml b/templates/mp3/Script/Water.xml index 0e96c530..5493fc3c 100644 --- a/templates/mp3/Script/Water.xml +++ b/templates/mp3/Script/Water.xml @@ -1,182 +1,23 @@ - - Water - - RSO_ScriptWater.rso - - - - - - - - 0x54F30820 - - - - - - - - false - - - true - - - true - - - true - - - true - - - 0.25 - - - 1.0 - - - 5.0 - - - 5.0 - - - 0x48DC9CE2 - - - - - - - - - - - - 0.0, 0.0, 0.498039, 1.0 - - - 0.0, 0.498039, 1.0, 1.0 - - - - - - - - - 0.25 - - - 0.05 - - - 0.3 - - - 10.0 - - - 0.0 - - - - - - - - 1.0, 1.0, 1.0, 1.0 - - - - - - - - - - - - - 50.0 - - - 45000.0 - - - - - - - - 7.0 - - - -0.5 - - - -1.0 - - - 10.0 - - - 1.0, 1.0, 1.0, 1.0 - - - 0.0 - - - 0.0 - - - 1.0 - - - false - - - 6.0 - - - 8.0 - - - - - - - - - false - - - 1.0 - - - 300 - - - - - - - - - - - - - - - - - enabled - volume - - - + + + RSO_ScriptWater.rso + + + Water + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + BoxShape + diff --git a/templates/mp3/Script/Waypoint.xml b/templates/mp3/Script/Waypoint.xml index fa695e25..4da144fa 100644 --- a/templates/mp3/Script/Waypoint.xml +++ b/templates/mp3/Script/Waypoint.xml @@ -1,23 +1,19 @@ - - Waypoint - - - - - - - - - - - - - - - script/common/Waypoint.CMDL - - enabled - enabled - - + + + Waypoint + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/mp3/Script/WeaponGenerator.xml b/templates/mp3/Script/WeaponGenerator.xml index 1c3b1bcf..722377a3 100644 --- a/templates/mp3/Script/WeaponGenerator.xml +++ b/templates/mp3/Script/WeaponGenerator.xml @@ -1,51 +1,21 @@ - - WeaponGenerator - - - - - - - - - 0x9EFB69B1 - - - - - - 0x2B9C9A74 - - - - - - - - - - false - - - - - - - - - - - - - - - - - script/mp3/WeaponGenerator.TXTR - - 0.5 - enabled - enabled - - + + + WeaponGenerator + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3/Script/WorldAttributes.xml b/templates/mp3/Script/WorldAttributes.xml index 44992d14..cb3be90e 100644 --- a/templates/mp3/Script/WorldAttributes.xml +++ b/templates/mp3/Script/WorldAttributes.xml @@ -1,24 +1,19 @@ - - WorldAttributes - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + WorldAttributes + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/WorldLightFader.xml b/templates/mp3/Script/WorldLightFader.xml index fb13041e..14f6d0c9 100644 --- a/templates/mp3/Script/WorldLightFader.xml +++ b/templates/mp3/Script/WorldLightFader.xml @@ -1,28 +1,23 @@ - - WorldLightFader - - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + WorldLightFader + + + + 1.0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/WorldTeleporter.xml b/templates/mp3/Script/WorldTeleporter.xml index 20dc1959..9a6badc3 100644 --- a/templates/mp3/Script/WorldTeleporter.xml +++ b/templates/mp3/Script/WorldTeleporter.xml @@ -1,98 +1,125 @@ - - WorldTeleporter - - RSO_ScriptWorldTeleporter.rso - - - - - - - 0xF9C885FF - - - - - - - - - - - - - - - - - - - false - - - 0.01 - - - 8.0 - - - 0.0 - - - - false - - - 0.0 - - - 2.0 - - - 3.0 - - - - - - - - - - - 1.0 - - - 0.0 - - - - 1.0 - - - 0.0 - - - false - - - 5.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RSO_ScriptWorldTeleporter.rso + + + WorldTeleporter + + + + + MLVL + + + + + MREA + + + + 0xF9C885FF + + + + + + + + + + + + + CMDL + + + + + + + + + FONT + + + + + STRG + + + + false + + + 0.0099999998 + + + 8.0 + + + 0.0 + + + + false + + + 0.0 + + + 2.0 + + + 3.0 + + + + + + + + + + CMDL + + + + + CAUD + + + + 1.0 + + + 0.0 + + + + CAUD + + + + 1.0 + + + 0.0 + + + false + + + 5.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/WorldTeleporterAttributes.xml b/templates/mp3/Script/WorldTeleporterAttributes.xml index d151eb31..50b4786b 100644 --- a/templates/mp3/Script/WorldTeleporterAttributes.xml +++ b/templates/mp3/Script/WorldTeleporterAttributes.xml @@ -1,170 +1,90 @@ - - WorldTeleporterAttributes - - RSO_ScriptWorldTeleporterAttributes.rso - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - never - - - never - - - never - - - - - never - - - never - - - never - - - - - never - - - never - - - never - - - - - never - - - never - - - never - - - - - never - - - never - - - never - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RSO_ScriptWorldTeleporterAttributes.rso + + + WorldTeleporterAttributes + + + + + + + + + + + + + + + + + + + Never + + + Never + + + Never + + + + + Never + + + Never + + + Never + + + + + Never + + + Never + + + Never + + + + + Never + + + Never + + + Never + + + + + Never + + + Never + + + Never + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Script/WorldTransitionChoiceRelay.xml b/templates/mp3/Script/WorldTransitionChoiceRelay.xml index f4b049e0..9cc6dfe6 100644 --- a/templates/mp3/Script/WorldTransitionChoiceRelay.xml +++ b/templates/mp3/Script/WorldTransitionChoiceRelay.xml @@ -1,133 +1,123 @@ - - WorldTransitionChoiceRelay - - RSO_ScriptWorldTeleporter.rso - - - - - 1 - - - - - - - - - never - - - never - - - never - - - - - never - - - never - - - never - - - - - never - - - never - - - never - - - - - never - - - never - - - never - - - - - never - - - never - - - never - - - - - never - - - never - - - never - - - - - never - - - never - - - never - - - - - never - - - never - - - never - - - - - never - - - never - - - never - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RSO_ScriptWorldTeleporter.rso + + + WorldTransitionChoiceRelay + + + + 1 + + + + Never + + + Never + + + Never + + + + + Never + + + Never + + + Never + + + + + Never + + + Never + + + Never + + + + + Never + + + Never + + + Never + + + + + Never + + + Never + + + Never + + + + + Never + + + Never + + + Never + + + + + Never + + + Never + + + Never + + + + + Never + + + Never + + + Never + + + + + Never + + + Never + + + Never + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3/Structs/ActorParameters.xml b/templates/mp3/Structs/ActorParameters.xml index 0390e753..9665d5c3 100644 --- a/templates/mp3/Structs/ActorParameters.xml +++ b/templates/mp3/Structs/ActorParameters.xml @@ -1,68 +1,75 @@ - - - - - - - - true - - - 1.0 - - - 1.0 - - - - false - - - true - - - false - - - false - - - 0xD086634A - - - - - - - - - - - - - - - - - - - - - - - 0xDE8CE5BD - - - - - - - - 127 - - - false - - - + + + ActorParameters + + + + + + CMDL + + + + + true + + + 1.0 + + + 1.0 + + + + false + + + true + + + false + + + false + + + 0xD086634A + + + + + + + + + + + + + + + + + + + + + + + 0xDE8CE5BD + + + + + + + + 127 + + + false + + + + diff --git a/templates/mp3/Structs/AiDifficultySettings.xml b/templates/mp3/Structs/AiDifficultySettings.xml index c18ee748..4981859c 100644 --- a/templates/mp3/Structs/AiDifficultySettings.xml +++ b/templates/mp3/Structs/AiDifficultySettings.xml @@ -1,8 +1,11 @@ - - - - 0xF12A35C6 - - - + + + AiDifficultySettings + + + 0xF12A35C6 + + + + diff --git a/templates/mp3/Structs/AuroraUnit1Data.xml b/templates/mp3/Structs/AuroraUnit1Data.xml index 2998f2fa..5962a85d 100644 --- a/templates/mp3/Structs/AuroraUnit1Data.xml +++ b/templates/mp3/Structs/AuroraUnit1Data.xml @@ -1,297 +1,81 @@ - - - - 45.0 - - - 120.0 - - - - - - 700.0 - - - 10.0 - - - - - - 100.0 - - - - 3.0 - - - 1.0 - - - 1.0 - - - 0.5 - - - 2.0 - - - 1.0 - - - 8.0 - - - 0.0 - - - - 2 - - - - - 100.0 - - - - - 6.75 - - - 1.0 - - - 50.0 - - - 1.0 - - - 0.5 - - - 0.25 - - - 0.0 - - - 3.5 - - - 0.5 - - - 8.0 - - - 1 - - - 3 - - - 1.5 - - - 0.0 - - - 50.0 - - - 10.0 - - - 30.0 - - - 15.0 - - - 0.6 - - - 0.3 - - - 0.75 - - - 0.5 - - - 0.75 - - - 0.5 - - - never - - - never - - - never - - - never - - - never - - - - - - - - - 10.0 - - - 100.0 - - - 4.0 - - - 5.0 - - - 0.5 - - - 1.0 - - - 10.0 - - - 15.0 - - - 50.0 - - - - - - - - 30.0 - - - - - - - - - 8.0 - - - 0.5 - - - 20.0 - - - 15.0 - - - 3.0 - - - 20.0 - - - 75.0 - - - - - - - - 13.0 - - - 10.0 - - - 9.0 - - - 8.0 - - - 180.0 - - - 30.0 - - - 90.0 - - - 45.0 - - - 150.0 - - - - - - - - 40.0 - - - 40.0 - - - 20.0 - - - 0.0 - - - - - - - 20.0 - - - 20.0 - - - 20.0 - - - 40.0 - - - - - 2.0 - - - 0.0 - - - 1.0 - - - 0.5 - - - - + + + AuroraUnit1Data + + + 45.0 + + + 120.0 + + + + CMDL + + + + + CMDL + + + + + 700.0 + + + 10.0 + + + + + + + + + + 40.0 + + + 40.0 + + + 20.0 + + + 0.0 + + + + + + + 20.0 + + + 20.0 + + + 20.0 + + + 40.0 + + + + + 2.0 + + + 0.0 + + + 1.0 + + + 0.5 + + + + + diff --git a/templates/mp3/Structs/AuroraUnit2Data.xml b/templates/mp3/Structs/AuroraUnit2Data.xml index abb1e265..4fbf9977 100644 --- a/templates/mp3/Structs/AuroraUnit2Data.xml +++ b/templates/mp3/Structs/AuroraUnit2Data.xml @@ -1,167 +1,65 @@ - - - - 0.6 - - - 0.3 - - - 20.0 - - - 10.0 - - - 15.0 - - - 3.0 - - - 1.0 - - - 50.0 - - - 50.0 - - - 15.0 - - - 20.0 - - - 50.0 - - - 6.0 - - - 5.0 - - - 0.0 - - - 2.5 - - - 0.0 - - - - - - - - - 45.0 - - - - - - - - - - - 3 - - - 5 - - - 2.0 - - - 3.0 - - - 1.0 - - - 2.0 - - - 30.0 - - - 1.3 - - - 1.5 - - - - - - - - - 50.0 - - - - - - - - - - 7.0 - - - 8.0 - - - 45.0 - - - 5.0 - - - 30.0 - - - 45.0 - - - 60.0 - - - 1.3 - - - 1.5 - - - - - - - - 540.0 - - - 75.0 - - - 250.0 - - - 10.0 - - - 15.0 - - - - - - - + + + AuroraUnit2Data + + + 0.60000002 + + + 0.30000001 + + + 20.0 + + + 10.0 + + + 15.0 + + + 3.0 + + + 1.0 + + + 50.0 + + + 50.0 + + + 15.0 + + + 20.0 + + + 50.0 + + + 6.0 + + + 5.0 + + + 0.0 + + + 2.5 + + + 0.0 + + + + + + + + + + diff --git a/templates/mp3/Structs/BerserkerData.xml b/templates/mp3/Structs/BerserkerData.xml index 24f77493..abc09d85 100644 --- a/templates/mp3/Structs/BerserkerData.xml +++ b/templates/mp3/Structs/BerserkerData.xml @@ -1,302 +1,337 @@ - - - - 60.0 - - - true - - - 10.0 - - - true - - - - - - - - - 25.0 - - - 100.0 - - - 45.0 - - - 10.0 - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - 25.0 - - - 10.0 - - - 25.0 - - - 45.0 - - - - 60.0 - - - 20.0 - - - 1.0 - - - 0.5 - - - 180.0 - - - 5.0 - - - 25.0 - - - 5.0 - - - 20.0 - - - 20.0 - - - - 20.0 - - - 0.5 - - - 0.7 - - - 0.5 - - - 0.1 - - - 0.8 - - - - 500.0 - - - - - - - - 1.4 - - - - - 10.0 - - - 30.0 - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - 0.25 - - - 250.0 - - - false - - - false - - - - 100.0 - - - 0.1 - - - - - - - - false - - - - - 10.0 - - - 10.0 - - - + + + BerserkerData + + + 60.0 + + + true + + + 10.0 + + + true + + + + + + + + + 25.0 + + + 100.0 + + + 45.0 + + + 10.0 + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + 25.0 + + + 10.0 + + + 25.0 + + + 45.0 + + + + 60.0 + + + 20.0 + + + 1.0 + + + 0.5 + + + 180.0 + + + 5.0 + + + 25.0 + + + 5.0 + + + 20.0 + + + 20.0 + + + + 20.0 + + + 0.5 + + + 0.69999999 + + + 0.5 + + + 0.1 + + + 0.80000001 + + + + 500.0 + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + + CMDL + + + + 1.4 + + + + CMDL + + + + + 10.0 + + + 30.0 + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + 0.25 + + + 250.0 + + + false + + + false + + + + 100.0 + + + 0.1 + + + + CMDL + + + + + CMDL + + + + + + + false + + + + + 10.0 + + + 10.0 + + + + diff --git a/templates/mp3/Structs/CameraOrientation.xml b/templates/mp3/Structs/CameraOrientation.xml index 319ca2d5..a1a9d17d 100644 --- a/templates/mp3/Structs/CameraOrientation.xml +++ b/templates/mp3/Structs/CameraOrientation.xml @@ -1,94 +1,70 @@ - - - - 0x75A7A55F - - - - - - - - - - - - 8 - - - 0x33D21F2E - - - - - - - - - - - - 0.0 - - - - 0.0 - - - 0x5B45D51F - - - - - - - - - - - - - 20.0 - - - 5.0 - - - - - - - - - false - - - - - - - - - - - 786432 - - - - - - - - - 256 - - - - - - - - - - + + + CameraOrientation + + + 0x75A7A55F + + + + + + + + + + + + 8 + + + 0x33D21F2E + + + + + + + + + + + + 0.0 + + + + 0.0 + + + 0x5B45D51F + + + + + + + + + + + + + 20.0 + + + 5.0 + + + + + + + + + + + + + diff --git a/templates/mp3/Structs/CameraShakerEnvelope.xml b/templates/mp3/Structs/CameraShakerEnvelope.xml index 233ffb85..18681ff7 100644 --- a/templates/mp3/Structs/CameraShakerEnvelope.xml +++ b/templates/mp3/Structs/CameraShakerEnvelope.xml @@ -1,14 +1,17 @@ - - - - 0x58F1CB59 - - - - - - - - - + + + CameraShakerEnvelope + + + 0x58F1CB59 + + + + + + + + + + diff --git a/templates/mp3/Structs/CommandData.xml b/templates/mp3/Structs/CommandData.xml index 74273ab9..524b9098 100644 --- a/templates/mp3/Structs/CommandData.xml +++ b/templates/mp3/Structs/CommandData.xml @@ -1,12 +1,15 @@ - - - - false - - - - 0 - - - + + + CommandData + + + false + + + + 0 + + + + diff --git a/templates/mp3/Structs/ConditionalTest.xml b/templates/mp3/Structs/ConditionalTest.xml index 71ff6938..94e01afd 100644 --- a/templates/mp3/Structs/ConditionalTest.xml +++ b/templates/mp3/Structs/ConditionalTest.xml @@ -1,26 +1,29 @@ - - - - 1 - - - false - - - 0xFB73F2B8 - - - 0 - - - 0 - - - false - - - 0 - - - + + + ConditionalTest + + + 0x1 + + + false + + + 0xFB73F2B8 + + + 0 + + + 0 + + + false + + + 0 + + + + diff --git a/templates/mp3/Structs/ContextActionCombinationLockStruct.xml b/templates/mp3/Structs/ContextActionCombinationLockStruct.xml index 6d2675e8..e295e01b 100644 --- a/templates/mp3/Structs/ContextActionCombinationLockStruct.xml +++ b/templates/mp3/Structs/ContextActionCombinationLockStruct.xml @@ -1,17 +1,20 @@ - - - - 0.0 - - - 0.0 - - - -90.0 - - - 90.0 - - - + + + ContextActionCombinationLockStruct + + + 0.0 + + + 0.0 + + + -90.0 + + + 90.0 + + + + diff --git a/templates/mp3/Structs/ControlCommands.xml b/templates/mp3/Structs/ControlCommands.xml index 788f7c68..1ddc2d6b 100644 --- a/templates/mp3/Structs/ControlCommands.xml +++ b/templates/mp3/Structs/ControlCommands.xml @@ -1,109 +1,112 @@ - - - - 0xE88E6A10 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + ControlCommands + + + 0xE88E6A10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/mp3/Structs/Convergence.xml b/templates/mp3/Structs/Convergence.xml index cc6fccb9..4aa94d8e 100644 --- a/templates/mp3/Structs/Convergence.xml +++ b/templates/mp3/Structs/Convergence.xml @@ -1,78 +1,22 @@ - - - - 0x0BCC8352 - - - - - - - - - - - - 0.0 - - - 0.0 - - - 1.0 - - - - - - - true - - - 10.0 - - - 0.0 - - - 0.01 - - - 10.0 - - - 1.0 - - - - - - - 0x5A778792 - - - - - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - 0.0 - - - - - - + + + Convergence + + + 0xBCC8352 + + + + + + + + + + + + + + + diff --git a/templates/mp3/Structs/DamageInfo.xml b/templates/mp3/Structs/DamageInfo.xml index 20240b64..f429d2cc 100644 --- a/templates/mp3/Structs/DamageInfo.xml +++ b/templates/mp3/Structs/DamageInfo.xml @@ -1,36 +1,39 @@ - - - - 0xBC709037 - - - - - - - - - - - - - - - - 0.0 - - - 0.0 - - - 0.0 - - - 0 - - - true - - - + + + DamageInfo + + + 0xBC709037 + + + + + + + + + + + + + + + + 0.0 + + + 0.0 + + + 0.0 + + + 0 + + + true + + + + diff --git a/templates/mp3/Structs/DamageVulnerability.xml b/templates/mp3/Structs/DamageVulnerability.xml index 36e7f94f..e7549859 100644 --- a/templates/mp3/Structs/DamageVulnerability.xml +++ b/templates/mp3/Structs/DamageVulnerability.xml @@ -1,45 +1,48 @@ - - - - - - - - - - - - - - - - - - - - - - - - 0.0 - - - - - - - 0.0 - - - - - - - 0.0 - - - - - - + + + DamageVulnerability + + + + + + + + + + + + + + + + + + + + + + + 0.0 + + + + + + + 0.0 + + + + + + + 0.0 + + + + + + + diff --git a/templates/mp3/Structs/DarkSamusData.xml b/templates/mp3/Structs/DarkSamusData.xml index 3fae8899..8b3305cc 100644 --- a/templates/mp3/Structs/DarkSamusData.xml +++ b/templates/mp3/Structs/DarkSamusData.xml @@ -1,130 +1,133 @@ - - - - 0.0 - - - 625.0 - - - 625.0 - - - 510.0 - - - 400.0 - - - -1.0 - - - -1.0 - - - -1.0 - - - -1.0 - - - -1.0 - - - 11.0 - - - 11.0 - - - 10.0 - - - 10.0 - - - 9.0 - - - 0 - - - 2 - - - 2 - - - 2 - - - 0.0 - - - 0.0 - - - 100.0 - - - 100.0 - - - 100.0 - - - 0.1 - - - 0.2 - - - 0.3 - - - 0.3 - - - 0.3 - - - 4.0 - - - 3.0 - - - 1.3 - - - 0.7 - - - 0.3 - - - 750.0 - - - 375.0 - - - 21.0 - - - - - - - - - - 360.0 - - - - - - - + + + DarkSamusData + + + 0.0 + + + 625.0 + + + 625.0 + + + 510.0 + + + 400.0 + + + -1.0 + + + -1.0 + + + -1.0 + + + -1.0 + + + -1.0 + + + 11.0 + + + 11.0 + + + 10.0 + + + 10.0 + + + 9.0 + + + 0 + + + 2 + + + 2 + + + 2 + + + 0.0 + + + 0.0 + + + 100.0 + + + 100.0 + + + 100.0 + + + 0.1 + + + 0.2 + + + 0.30000001 + + + 0.30000001 + + + 0.30000001 + + + 4.0 + + + 3.0 + + + 1.3 + + + 0.69999999 + + + 0.30000001 + + + 750.0 + + + 375.0 + + + 21.0 + + + + + + + + + + 360.0 + + + + + + + + diff --git a/templates/mp3/Structs/DarkSamusEchoData.xml b/templates/mp3/Structs/DarkSamusEchoData.xml index 3cbcaf8a..a474c18e 100644 --- a/templates/mp3/Structs/DarkSamusEchoData.xml +++ b/templates/mp3/Structs/DarkSamusEchoData.xml @@ -1,48 +1,67 @@ - - - - - - - - 3.0 - - - 4.0 - - - 2.0 - - - 50.0 - - - - 0.7 - - - 0.3 - - - 5.0 - - - 20.0 - - - 135.0 - - - 5.0 - - - 3.0 - - - 3.0 - - - - - + + + DarkSamusEchoData + + + + PART + + + + + CAUD + + + + + PART + + + + + CAUD + + + + 3.0 + + + 4.0 + + + 2.0 + + + 50.0 + + + + 0.69999999 + + + 0.30000001 + + + 5.0 + + + 20.0 + + + 135.0 + + + 5.0 + + + 3.0 + + + 3.0 + + + + + + diff --git a/templates/mp3/Structs/DebrisPropertiesOrientationEnum.xml b/templates/mp3/Structs/DebrisPropertiesOrientationEnum.xml index 4316f931..54339b06 100644 --- a/templates/mp3/Structs/DebrisPropertiesOrientationEnum.xml +++ b/templates/mp3/Structs/DebrisPropertiesOrientationEnum.xml @@ -1,8 +1,11 @@ - - - - 0x76A5FBFD - - - + + + DebrisPropertiesOrientationEnum + + + 0x76A5FBFD + + + + diff --git a/templates/mp3/Structs/DefenseMechanoidData.xml b/templates/mp3/Structs/DefenseMechanoidData.xml index 20b20437..74cd3d21 100644 --- a/templates/mp3/Structs/DefenseMechanoidData.xml +++ b/templates/mp3/Structs/DefenseMechanoidData.xml @@ -1,74 +1,77 @@ - - - - true - - - true - - - 200.0 - - - 45.0 - - - 100.0 - - - - - 25.0 - - - 25.0 - - - 25.0 - - - 25.0 - - - 15.0 - - - 25.0 - - - 1.5 - - - 3.0 - - - 10.0 - - - 20.0 - - - 7.0 - - - 12.0 - - - 4.0 - - - 10.0 - - - 50.0 - - - 10.0 - - - - - - - + + + DefenseMechanoidData + + + true + + + true + + + 200.0 + + + 45.0 + + + 100.0 + + + + + 25.0 + + + 25.0 + + + 25.0 + + + 25.0 + + + 15.0 + + + 25.0 + + + 1.5 + + + 3.0 + + + 10.0 + + + 20.0 + + + 7.0 + + + 12.0 + + + 4.0 + + + 10.0 + + + 50.0 + + + 10.0 + + + + + + + + diff --git a/templates/mp3/Structs/EditorProperties.xml b/templates/mp3/Structs/EditorProperties.xml index 86beaae2..1a32955e 100644 --- a/templates/mp3/Structs/EditorProperties.xml +++ b/templates/mp3/Structs/EditorProperties.xml @@ -1,13 +1,16 @@ - - - - - - true - - - 3 - - - + + + EditorProperties + + + + + true + + + 3 + + + + diff --git a/templates/mp3/Structs/ElectricBeamInfo.xml b/templates/mp3/Structs/ElectricBeamInfo.xml index ebbbf2bd..8d3e57ac 100644 --- a/templates/mp3/Structs/ElectricBeamInfo.xml +++ b/templates/mp3/Structs/ElectricBeamInfo.xml @@ -1,36 +1,54 @@ - - - - - never - - - - - 1.0 - - - - 10.0 - - - 0.1 - never - - - 150.0 - never - - - never - - - 1.0 - never - - - 0.0 - - - + + + ElectricBeamInfo + + + + ELSC + + + + Never + + + + ELSC + + + + + CAUD + + + + 1.0 + + + + 10.0 + + + Never + 0.1 + + + Never + 150.0 + + + Never + + PART + + + + Never + 1.0 + + + 0.0 + + + + diff --git a/templates/mp3/Structs/EyePodStruct.xml b/templates/mp3/Structs/EyePodStruct.xml index fdfad561..b2349438 100644 --- a/templates/mp3/Structs/EyePodStruct.xml +++ b/templates/mp3/Structs/EyePodStruct.xml @@ -1,70 +1,73 @@ - - - - 100.0 - - - 10.0 - - - 15.0 - - - 20.0 - - - 30.0 - - - 20.0 - - - 30.0 - - - - 3.0 - - - 6.0 - - - 4 - - - 7 - - - 0.2 - - - 5.0 - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - + + + EyePodStruct + + + 100.0 + + + 10.0 + + + 15.0 + + + 20.0 + + + 30.0 + + + 20.0 + + + 30.0 + + + + 3.0 + + + 6.0 + + + 4 + + + 7 + + + 0.2 + + + 5.0 + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + diff --git a/templates/mp3/Structs/FOVInterpolationMethod.xml b/templates/mp3/Structs/FOVInterpolationMethod.xml index 47c614de..b83f7471 100644 --- a/templates/mp3/Structs/FOVInterpolationMethod.xml +++ b/templates/mp3/Structs/FOVInterpolationMethod.xml @@ -1,14 +1,17 @@ - - - - 0x2A1B6DFE - - - - - - - - - + + + FOVInterpolationMethod + + + 0x2A1B6DFE + + + + + + + + + + diff --git a/templates/mp3/Structs/FlareDef.xml b/templates/mp3/Structs/FlareDef.xml index b5ca88af..6e7fcfec 100644 --- a/templates/mp3/Structs/FlareDef.xml +++ b/templates/mp3/Structs/FlareDef.xml @@ -1,15 +1,26 @@ - - - - - 0.0 - - - 1.0 - - - 1.0, 1.0, 1.0, 1.0 - - - + + + FlareDef + + + + TXTR + + + + 0.0 + + + 1.0 + + + + 1.0 + 1.0 + 1.0 + + + + + diff --git a/templates/mp3/Structs/FlyerMovementMode.xml b/templates/mp3/Structs/FlyerMovementMode.xml index ab93326a..f15c795b 100644 --- a/templates/mp3/Structs/FlyerMovementMode.xml +++ b/templates/mp3/Structs/FlyerMovementMode.xml @@ -1,41 +1,44 @@ - - - - 10.0 - - - 5.0 - - - 1080.0 - - - 90.0 - - - 30.0 - - - true - - - 3.0 - - - 2.0 - - - 2.0 - - - 0.0 - - - 1.0 - - - 1.0 - - - + + + FlyerMovementMode + + + 10.0 + + + 5.0 + + + 1080.0 + + + 90.0 + + + 30.0 + + + true + + + 3.0 + + + 2.0 + + + 2.0 + + + 0.0 + + + 1.0 + + + 1.0 + + + + diff --git a/templates/mp3/Structs/FlyerSwarmData.xml b/templates/mp3/Structs/FlyerSwarmData.xml index dd1fa6fe..c4d0fa1a 100644 --- a/templates/mp3/Structs/FlyerSwarmData.xml +++ b/templates/mp3/Structs/FlyerSwarmData.xml @@ -1,23 +1,26 @@ - - - - 1.0 - - - 1.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - + + + FlyerSwarmData + + + 1.0 + + + 1.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + diff --git a/templates/mp3/Structs/FlyingPirateStruct.xml b/templates/mp3/Structs/FlyingPirateStruct.xml index b5fe67e5..8fd8a14c 100644 --- a/templates/mp3/Structs/FlyingPirateStruct.xml +++ b/templates/mp3/Structs/FlyingPirateStruct.xml @@ -1,21 +1,24 @@ - - - - false - - - 10.0 - - - 20.0 - - - 100.0 - - - 20.0 - - - - + + + FlyingPirateStruct + + + false + + + 10.0 + + + 20.0 + + + 100.0 + + + 20.0 + + + + + diff --git a/templates/mp3/Structs/GandraydaData.xml b/templates/mp3/Structs/GandraydaData.xml index 1c5447fe..362ef3c5 100644 --- a/templates/mp3/Structs/GandraydaData.xml +++ b/templates/mp3/Structs/GandraydaData.xml @@ -1,352 +1,172 @@ - - - - 75.0 - - - 50.0 - - - 30.0 - - - 100.0 - - - 6.0 - - - 10.0 - - - 4.0 - - - 8.0 - - - 13.0 - - - - - - 7.0 - - - 10.0 - - - - - - - 100.0 - - - 2 - - - 12.0 - - - 18.0 - - - 4.0 - - - 8.0 - - - 4.0 - - - 15.0 - - - - - 100.0 - - - 10.0 - - - 25.0 - - - 3.0 - - - 0.0, 0.4, -1.6 - - - 180.0 - - - 4.0 - - - 7.0 - - - 3.0 - - - 4.0 - - - - - - - - - - 0.75 - - - 1.0 - - - 2.6667 - - - 1.5 - - - - - - - - - 20.0 - - - 60.0 - - - - - - - 15.0 - - - 15.0 - - - 85.0 - - - 20.0 - - - 0.0 - - - 20.0 - - - 40.0 - - - 40.0 - - - 20.0 - - - 30.0 - - - 10.0 - - - 45.0 - - - 45.0 - - - 60.0 - - - 0.0 - - - 90.0 - - - 10.0 - - - 60.0 - - - 0.0 - - - - - - - 15.0 - - - 80.0 - - - 20.0 - - - 0.0 - - - 80.0 - - - 20.0 - - - 80.0 - - - 0.0 - - - 80.0 - - - 20.0 - - - 20.0 - - - 20.0 - - - 20.0 - - - 20.0 - - - 20.0 - - - 30.0 - - - 80.0 - - - 20.0 - - - 80.0 - - - 0.0 - - - 40.0 - - - 40.0 - - - 20.0 - - - 80.0 - - - 0.0 - - - 15.0 - - - 85.0 - - - 50.0 - - - 0.0 - - - - - - - 15.0 - - - 10.0 - - - 50.0 - - - 20.0 - - - 30.0 - - - 9.0 - - - 11.0 - - - 1.0 - - - 0.25 - - - 3.0 - - - 4.0 - - - - - - - 1.2 - - - - 20.0 - - - 25.0 - - - 10.0 - - - 15.0 - - - 3.0 - - - 4.0 - - - - - - - - + + + GandraydaData + + + 75.0 + + + 50.0 + + + 30.0 + + + 100.0 + + + 6.0 + + + 10.0 + + + 4.0 + + + 8.0 + + + 13.0 + + + + CMDL + + + + + + 7.0 + + + 10.0 + + + + WPSC + + + + + + PART + + + + + CAUD + + + + 100.0 + + + 2 + + + 12.0 + + + 18.0 + + + 4.0 + + + 8.0 + + + 4.0 + + + 15.0 + + + + WPSC + + + + + 100.0 + + + 10.0 + + + 25.0 + + + 3.0 + + + + 0.0 + 0.40000001 + -1.6 + + + + 180.0 + + + 4.0 + + + 7.0 + + + 3.0 + + + 4.0 + + + + PART + + + + + ELSC + + + + + ELSC + + + + + PART + + + + + + + CAUD + + + + 0.75 + + + 1.0 + + + 2.6666999 + + + 1.5 + + + + + + + + + diff --git a/templates/mp3/Structs/GhorStructA.xml b/templates/mp3/Structs/GhorStructA.xml index 4d15c1fb..fa68391c 100644 --- a/templates/mp3/Structs/GhorStructA.xml +++ b/templates/mp3/Structs/GhorStructA.xml @@ -1,9 +1,20 @@ - - - - - - - - + + + GhorStructA + + + + CMDL + + + + + CMDL + + + + + + + diff --git a/templates/mp3/Structs/GhorStructB.xml b/templates/mp3/Structs/GhorStructB.xml index 00da1bab..76e68f64 100644 --- a/templates/mp3/Structs/GhorStructB.xml +++ b/templates/mp3/Structs/GhorStructB.xml @@ -1,99 +1,80 @@ - - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - - 30.0 - - - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - 10.0 - - - 1.0, 1.0, 1.0 - - - 1.0 - - - - - 10.0 - - - 1.0 - - - 10.0 - - - 0.5 - - - - - - 20.0 - - - - - - - - - - - + + + GhorStructB + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + + 30.0 + + + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + 10.0 + + + + 1.0 + 1.0 + 1.0 + + + + 1.0 + + + + + + diff --git a/templates/mp3/Structs/GhorStructC.xml b/templates/mp3/Structs/GhorStructC.xml index 5c2cbbd9..3a7c1c1d 100644 --- a/templates/mp3/Structs/GhorStructC.xml +++ b/templates/mp3/Structs/GhorStructC.xml @@ -1,10 +1,17 @@ - - - - - - - - - + + + GhorStructC + + + + CMDL + + + + + + + + + diff --git a/templates/mp3/Structs/GrappleBlock.xml b/templates/mp3/Structs/GrappleBlock.xml index 939ab0d4..fedd8f50 100644 --- a/templates/mp3/Structs/GrappleBlock.xml +++ b/templates/mp3/Structs/GrappleBlock.xml @@ -1,39 +1,42 @@ - - - - 0 - - - 0.0 - - - 0.0 - - - 1.0 - - - 5.0 - - - true - - - true - - - 0xC8853DC0 - - - - - - - true - - - false - - - + + + GrappleBlock + + + 0 + + + 0.0 + + + 0.0 + + + 1.0 + + + 5.0 + + + true + + + true + + + 0xC8853DC0 + + + + + + + true + + + false + + + + diff --git a/templates/mp3/Structs/GrappleData.xml b/templates/mp3/Structs/GrappleData.xml index c0251cc8..ba8c8d00 100644 --- a/templates/mp3/Structs/GrappleData.xml +++ b/templates/mp3/Structs/GrappleData.xml @@ -1,84 +1,91 @@ - - - - 0 - - - true - - - false - - - 5.0 - - - true - - - false - - - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - 8.0 - - - 6.0 - - - - 0.0 - - - 100.0 - - - 50.0 - - - 10.0 - - - -1 - - - + + + GrappleData + + + 0 + + + true + + + false + + + 5.0 + + + true + + + false + + + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + 8.0 + + + 6.0 + + + + CAUD + + + + 0.0 + + + 100.0 + + + 50.0 + + + 10.0 + + + -1 + + + + diff --git a/templates/mp3/Structs/GuiWidgetProperties.xml b/templates/mp3/Structs/GuiWidgetProperties.xml index 1afad396..36b6eb76 100644 --- a/templates/mp3/Structs/GuiWidgetProperties.xml +++ b/templates/mp3/Structs/GuiWidgetProperties.xml @@ -1,12 +1,15 @@ - - - - - 1 - - - false - - - + + + GuiWidgetProperties + + + + 1 + + + false + + + + diff --git a/templates/mp3/Structs/HealthInfo.xml b/templates/mp3/Structs/HealthInfo.xml index aa1984e2..e9ea0e2f 100644 --- a/templates/mp3/Structs/HealthInfo.xml +++ b/templates/mp3/Structs/HealthInfo.xml @@ -1,14 +1,17 @@ - - - - 5.0 - - - 1.0 - - - true - - - + + + HealthInfo + + + 5.0 + + + 1.0 + + + true + + + + diff --git a/templates/mp3/Structs/HoverThenHomeProjectile.xml b/templates/mp3/Structs/HoverThenHomeProjectile.xml index 3dfb37d8..5855989b 100644 --- a/templates/mp3/Structs/HoverThenHomeProjectile.xml +++ b/templates/mp3/Structs/HoverThenHomeProjectile.xml @@ -1,27 +1,34 @@ - - - - 1.0 - - - 1.0 - - - 5.0 - - - 10.0 - - - 10.0 - - - -1.0 - - - -1.0 - - - - + + + HoverThenHomeProjectile + + + 1.0 + + + 1.0 + + + 5.0 + + + 10.0 + + + 10.0 + + + -1.0 + + + -1.0 + + + + CAUD + + + + + diff --git a/templates/mp3/Structs/HyperModeData.xml b/templates/mp3/Structs/HyperModeData.xml index 8e5fe1a0..c7d7236d 100644 --- a/templates/mp3/Structs/HyperModeData.xml +++ b/templates/mp3/Structs/HyperModeData.xml @@ -1,52 +1,55 @@ - - - - 15.0 - - - 10.0 - - - 25.0 - - - 20.0 - - - 25.0 - - - 20.0 - - - 100.0 - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - - + + + HyperModeData + + + 15.0 + + + 10.0 + + + 25.0 + + + 20.0 + + + 25.0 + + + 20.0 + + + 100.0 + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + + + diff --git a/templates/mp3/Structs/InterpolationMethod.xml b/templates/mp3/Structs/InterpolationMethod.xml index b8a4aa4d..b8d2bbff 100644 --- a/templates/mp3/Structs/InterpolationMethod.xml +++ b/templates/mp3/Structs/InterpolationMethod.xml @@ -1,27 +1,30 @@ - - - - 0xDD7C3483 - - - - - - - - - - - - - 0.25 - - - 0.75 - - - 1.0 - - - + + + InterpolationMethod + + + 0xDD7C3483 + + + + + + + + + + + + + 0.25 + + + 0.75 + + + 1.0 + + + + diff --git a/templates/mp3/Structs/KorakkData.xml b/templates/mp3/Structs/KorakkData.xml index 880fd698..4a7512be 100644 --- a/templates/mp3/Structs/KorakkData.xml +++ b/templates/mp3/Structs/KorakkData.xml @@ -1,19 +1,22 @@ - - - - 1.0 - - - 4 - - - - - - - - - - - + + + KorakkData + + + 1.0 + + + 4 + + + + + + + + + + + + diff --git a/templates/mp3/Structs/LaunchProjectileData.xml b/templates/mp3/Structs/LaunchProjectileData.xml index 2d12b4c0..ce86c0eb 100644 --- a/templates/mp3/Structs/LaunchProjectileData.xml +++ b/templates/mp3/Structs/LaunchProjectileData.xml @@ -1,39 +1,62 @@ - - - - - - 1.0, 1.0, 1.0 - - - 1.0 - - - 0.0 - - - - - 20.0 - - - 1.0 - - - 3.0 - - - true - - - 1.0, 1.0, 1.0 - - - 1.0 - - - 0.0 - - - + + + LaunchProjectileData + + + + WPSC + + + + + + 1.0 + 1.0 + 1.0 + + + + 1.0 + + + 0.0 + + + + PART + + + + + CAUD + + + + 20.0 + + + 1.0 + + + 3.0 + + + true + + + + 1.0 + 1.0 + 1.0 + + + + 1.0 + + + 0.0 + + + + diff --git a/templates/mp3/Structs/LayerInfo.xml b/templates/mp3/Structs/LayerInfo.xml index 58803e4f..5b7a7210 100644 --- a/templates/mp3/Structs/LayerInfo.xml +++ b/templates/mp3/Structs/LayerInfo.xml @@ -1,26 +1,29 @@ - - - - 0x3383CA7C - - - - - - - - - 5.0 - - - 0.0 - - - 0.15 - - - 10.0 - - - + + + LayerInfo + + + 0x3383CA7C + + + + + + + + + 5.0 + + + 0.0 + + + 0.15000001 + + + 10.0 + + + + diff --git a/templates/mp3/Structs/LightParameters.xml b/templates/mp3/Structs/LightParameters.xml index 25fe0b8d..d987a750 100644 --- a/templates/mp3/Structs/LightParameters.xml +++ b/templates/mp3/Structs/LightParameters.xml @@ -1,47 +1,58 @@ - - - - true - - - 1.0, 1.0, 1.0, 1.0 - - - true - - - 0x00000001 - - - - - - - - - true - - - 1 - - - 0.0, 0.0, 0.0 - - - 4 - - - 4 - - - false - - - false - - - 0 - - - + + + LightParameters + + + true + + + + 1.0 + 1.0 + 1.0 + + + + true + + + 0x1 + + + + + + + + + true + + + 1 + + + + 0.0 + 0.0 + 0.0 + + + + 4 + + + 4 + + + false + + + false + + + 0 + + + + diff --git a/templates/mp3/Structs/MayaSpline.xml b/templates/mp3/Structs/MayaSpline.xml deleted file mode 100644 index d8759fcf..00000000 --- a/templates/mp3/Structs/MayaSpline.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/templates/mp3/Structs/MetroidHatcherData.xml b/templates/mp3/Structs/MetroidHatcherData.xml index 5cb07243..f0cd1fa3 100644 --- a/templates/mp3/Structs/MetroidHatcherData.xml +++ b/templates/mp3/Structs/MetroidHatcherData.xml @@ -1,579 +1,598 @@ - - - - 25.0 - - - 50.0 - - - 10.0 - - - 50.0 - - - 0.5 - - - 60.0 - - - - - - 1.0 - - - 0.1 - - - - 20.0 - - - 0.1 - - - 0.3333 - - - 0.5 - - - 0.1 - - - 10.0 - - - 15.0 - - - 5.0 - - - 5.0 - - - 5.0 - - - 5.0 - - - 10.0 - - - 9.0 - - - 16.0 - - - 14.0 - - - 10.0 - - - -1.5 - - - 8.0 - - - 1.0 - - - 5.0 - - - 3 - - - false - - - 30.0 - - - 20.0 - - - 10 - - - 5 - - - 20.0 - - - 0.7 - - - 0.5 - - - 0.5 - - - - - 30.0 - - - 20.0 - - - 2 - - - - - 20.0 - - - 10.0 - - - 15.0 - - - 3.0 - - - 2.0 - - - 0.001 - - - 100.0 - - - 15.0 - - - 0.1 - - - 0.1 - - - 30.0 - - - 10.0 - - - - - 3.0 - - - 1.0 - - - 30.0 - - - 181.0 - - - false - - - never - - - 7.0 - - - 10.0 - - - 8.0 - - - - - - - 3.0 - - - 181.0 - - - false - - - never - - - 7.0 - - - 10.0 - - - 8.0 - - - - - - - 3.0 - - - 10.0 - - - 181.0 - - - 6.0 - - - 11.0 - - - 8.0 - - - - - - - 0.1 - - - 10.0 - - - 10800.0 - - - 120.0 - - - 181.0 - - - false - - - never - - - 9.0 - - - 0.0 - - - 8.0 - - - 8.0 - - - - - - - 30.0 - - - 50.0 - - - 181.0 - - - false - - - never - - - 6.0 - - - 0.0 - - - 3.5 - - - 8.0 - - - - - - - 30.0 - - - 10.0 - - - 1.0 - - - 181.0 - - - false - - - never - - - 6.0 - - - 1.0 - - - 5.0 - - - 8.0 - - - - - - - 1.0 - - - 10.0 - - - 181.0 - - - 4.0 - - - 0.0 - - - 10.0 - - - 8.0 - - - - - - - 30.0 - - - 20.0 - - - 1.0 - - - 181.0 - - - 4.0 - - - 1.0 - - - 10.0 - - - 8.0 - - - - - - - 1.0 - - - 10.0 - - - 181.0 - - - 4.0 - - - 1.0 - - - 10.0 - - - 8.0 - - - - - - - 5.0 - - - 181.0 - - - false - - - never - - - 8.0 - - - 1.0 - - - 5.0 - - - 8.0 - - - - - - - 5.0 - - - 10.0 - - - 15.0 - - - 181.0 - - - false - - - never - - - 12.0 - - - 1.0 - - - 10.0 - - - 8.0 - - - - - - - 40.0 - - - 100.0 - - - 360.0 - - - 181.0 - - - 1.0 - - - 5.0 - - - 0.5 - - - 13.0 - - - 8.0 - - - - - - - 20.0 - - - 181.0 - - - 6.0 - - - 12.0 - - - 12.0 - - - - - - - - - - 0.6 - - - 0.4 - - - 0.8 - - - 0.5 - - - 0.0 - - - 0.0 - - - 20.0 - - - 15.0 - - - 30.0 - - - - - - - - + + + MetroidHatcherData + + + 25.0 + + + 50.0 + + + 10.0 + + + 50.0 + + + 0.5 + + + 60.0 + + + + + + 1.0 + + + 0.1 + + + + 20.0 + + + 0.1 + + + 0.33329999 + + + 0.5 + + + 0.1 + + + 10.0 + + + 15.0 + + + 5.0 + + + 5.0 + + + 5.0 + + + 5.0 + + + 10.0 + + + 9.0 + + + 16.0 + + + 14.0 + + + 10.0 + + + -1.5 + + + 8.0 + + + 1.0 + + + 5.0 + + + 3 + + + false + + + 30.0 + + + 20.0 + + + 10 + + + 5 + + + 20.0 + + + 0.69999999 + + + 0.5 + + + 0.5 + + + + + 30.0 + + + 20.0 + + + 2 + + + + + 20.0 + + + 10.0 + + + 15.0 + + + 3.0 + + + 2.0 + + + 0.001 + + + 100.0 + + + 15.0 + + + 0.1 + + + 0.1 + + + 30.0 + + + 10.0 + + + + + 3.0 + + + 1.0 + + + 30.0 + + + 181.0 + + + false + + + Never + + + 7.0 + + + 10.0 + + + 8.0 + + + + + + + 3.0 + + + 181.0 + + + false + + + Never + + + 7.0 + + + 10.0 + + + 8.0 + + + + + + + 3.0 + + + 10.0 + + + 181.0 + + + 6.0 + + + 11.0 + + + 8.0 + + + + + + + 0.1 + + + 10.0 + + + 10800.0 + + + 120.0 + + + 181.0 + + + false + + + Never + + + 9.0 + + + 0.0 + + + 8.0 + + + 8.0 + + + + + + + 30.0 + + + 50.0 + + + 181.0 + + + false + + + Never + + + 6.0 + + + 0.0 + + + 3.5 + + + 8.0 + + + + + + + 30.0 + + + 10.0 + + + 1.0 + + + 181.0 + + + false + + + Never + + + 6.0 + + + 1.0 + + + 5.0 + + + 8.0 + + + + + + + 1.0 + + + 10.0 + + + 181.0 + + + 4.0 + + + 0.0 + + + 10.0 + + + 8.0 + + + + + + + 30.0 + + + 20.0 + + + 1.0 + + + 181.0 + + + 4.0 + + + 1.0 + + + 10.0 + + + 8.0 + + + + + + + 1.0 + + + 10.0 + + + 181.0 + + + 4.0 + + + 1.0 + + + 10.0 + + + 8.0 + + + + + + + 5.0 + + + 181.0 + + + false + + + Never + + + 8.0 + + + 1.0 + + + 5.0 + + + 8.0 + + + + + + + 5.0 + + + 10.0 + + + 15.0 + + + 181.0 + + + false + + + Never + + + 12.0 + + + 1.0 + + + 10.0 + + + 8.0 + + + + + + + 40.0 + + + 100.0 + + + 360.0 + + + 181.0 + + + 1.0 + + + 5.0 + + + 0.5 + + + 13.0 + + + 8.0 + + + + + + + 20.0 + + + 181.0 + + + 6.0 + + + 12.0 + + + 12.0 + + + + + + + + + + 0.60000002 + + + 0.40000001 + + + 0.80000001 + + + 0.5 + + + 0.0 + + + 0.0 + + + 20.0 + + + 15.0 + + + 30.0 + + + + ELSC + + + + + + ELSC + + + + + CAUD + + + + + PART + + + + + diff --git a/templates/mp3/Structs/MetroidHopperStruct.xml b/templates/mp3/Structs/MetroidHopperStruct.xml index 09978acf..fadcb688 100644 --- a/templates/mp3/Structs/MetroidHopperStruct.xml +++ b/templates/mp3/Structs/MetroidHopperStruct.xml @@ -1,19 +1,22 @@ - - - - - 0.1 - - - 10.0 - - - 20.0 - - - 15.0 - - - - + + + MetroidHopperStruct + + + + 0.1 + + + 10.0 + + + 20.0 + + + 15.0 + + + + + diff --git a/templates/mp3/Structs/MetroidPhazeoidStruct.xml b/templates/mp3/Structs/MetroidPhazeoidStruct.xml index 00bbb996..99d95f56 100644 --- a/templates/mp3/Structs/MetroidPhazeoidStruct.xml +++ b/templates/mp3/Structs/MetroidPhazeoidStruct.xml @@ -1,14 +1,17 @@ - - - - 0.9 - - - 1.1 - - - 1.0 - - - + + + MetroidPhazeoidStruct + + + 0.89999998 + + + 1.1 + + + 1.0 + + + + diff --git a/templates/mp3/Structs/ModIncaData.xml b/templates/mp3/Structs/ModIncaData.xml index 85518e6a..45f6e5f5 100644 --- a/templates/mp3/Structs/ModIncaData.xml +++ b/templates/mp3/Structs/ModIncaData.xml @@ -1,9 +1,16 @@ - - - - 1.0, 1.0, 1.0, 1.0 - - - - + + + ModIncaData + + + + 1.0 + 1.0 + 1.0 + + + + + + diff --git a/templates/mp3/Structs/MotionInterpolationMethod.xml b/templates/mp3/Structs/MotionInterpolationMethod.xml index 2419edec..056bf6b4 100644 --- a/templates/mp3/Structs/MotionInterpolationMethod.xml +++ b/templates/mp3/Structs/MotionInterpolationMethod.xml @@ -1,34 +1,18 @@ - - - - 0x41B91E67 - - - - - - - - - - - - 0x8C1B1D20 - - - - - - - - - - - - - - - - - + + + MotionInterpolationMethod + + + 0x41B91E67 + + + + + + + + + + + diff --git a/templates/mp3/Structs/MultiModelActorStruct.xml b/templates/mp3/Structs/MultiModelActorStruct.xml index 26ec9a57..b7e843ef 100644 --- a/templates/mp3/Structs/MultiModelActorStruct.xml +++ b/templates/mp3/Structs/MultiModelActorStruct.xml @@ -1,9 +1,16 @@ - - - - - 0.0 - - - + + + MultiModelActorStruct + + + + CMDL + + + + 0.0 + + + + diff --git a/templates/mp3/Structs/OffsetInterpolant.xml b/templates/mp3/Structs/OffsetInterpolant.xml index 4e45245d..9bebc014 100644 --- a/templates/mp3/Structs/OffsetInterpolant.xml +++ b/templates/mp3/Structs/OffsetInterpolant.xml @@ -1,8 +1,11 @@ - - - - - - - + + + OffsetInterpolant + + + + + + + diff --git a/templates/mp3/Structs/OrientationInterpolationMethod.xml b/templates/mp3/Structs/OrientationInterpolationMethod.xml index cdb115ca..68c6e31b 100644 --- a/templates/mp3/Structs/OrientationInterpolationMethod.xml +++ b/templates/mp3/Structs/OrientationInterpolationMethod.xml @@ -1,16 +1,19 @@ - - - - 0x355476D5 - - - - - - - - - - - + + + OrientationInterpolationMethod + + + 0x355476D5 + + + + + + + + + + + + diff --git a/templates/mp3/Structs/PathDetermination.xml b/templates/mp3/Structs/PathDetermination.xml index 8a396997..7a29b2af 100644 --- a/templates/mp3/Structs/PathDetermination.xml +++ b/templates/mp3/Structs/PathDetermination.xml @@ -1,27 +1,18 @@ - - - - 0x571AA317 - - - - - - - - - - - 0x15F0534B - - - - - - - - - - - + + + PathDetermination + + + 0x571AA317 + + + + + + + + + + + diff --git a/templates/mp3/Structs/PatternedAI.xml b/templates/mp3/Structs/PatternedAI.xml deleted file mode 100644 index ed9b9b22..00000000 --- a/templates/mp3/Structs/PatternedAI.xml +++ /dev/null @@ -1,128 +0,0 @@ - - - - - 150.0 - - - - 2.0 - - - - - 1.0 - - - 2.0 - - - 0.0, 0.0, 0.0 - - - 0.1 - - - - - 0 - - - 5.0 - - - false - - - - 0 - - - - - 1.0 - - - 120.0 - - - true - - - 100.0 - - - 0.0 - - - 60.0 - - - 6.0 - - - 11.0 - - - 2.0 - - - 1.0 - - - 50.0 - - - 25.0 - - - 5.0 - - - 0.1 - - - 0.1 - - - 2.0 - - - - 60.0 - - - 1000.0 - - - 0.0 - - - - 0.0, 0.0, 0.0 - - - - - - 1000.0 - - - - - 0.0, 0.0, 0.0 - - - - 0.078431, 0.235294, 0.313726, 1.0 - - - - 0.0, 1.0, 0.0 - - - 1.0 - - - - diff --git a/templates/mp3/Structs/PhysicsDebrisPropertiesOrientationEnum.xml b/templates/mp3/Structs/PhysicsDebrisPropertiesOrientationEnum.xml index f822c7f6..96071b08 100644 --- a/templates/mp3/Structs/PhysicsDebrisPropertiesOrientationEnum.xml +++ b/templates/mp3/Structs/PhysicsDebrisPropertiesOrientationEnum.xml @@ -1,8 +1,11 @@ - - - - 0x76A5FBFD - - - + + + PhysicsDebrisPropertiesOrientationEnum + + + 0x76A5FBFD + + + + diff --git a/templates/mp3/Structs/PlasmaBeamInfo.xml b/templates/mp3/Structs/PlasmaBeamInfo.xml index b940e9cc..b98b8881 100644 --- a/templates/mp3/Structs/PlasmaBeamInfo.xml +++ b/templates/mp3/Structs/PlasmaBeamInfo.xml @@ -1,59 +1,108 @@ - - - - 0 - - - - - - - - 10.0 - - - 0.1 - - - 1.0 - - - 0.0 - - - 10.0 - - - 10.0 - - - 1.0 - - - 1.0 - - - 1.0 - - - 150.0 - - - 1.0, 1.0, 1.0, 0.0 - - - 0.0, 0.0, 0.0, 0.0 - - - - - - - 0.9 - - - 0.0 - - - + + + PlasmaBeamInfo + + + 0 + + + + WPSC + + + + + PART + + + + + PART + + + + + TXTR + + + + + TXTR + + + + 10.0 + + + 0.1 + + + 1.0 + + + 0.0 + + + 10.0 + + + 10.0 + + + 1.0 + + + 1.0 + + + 1.0 + + + 150.0 + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + PART + + + + + PART + + + + + CAUD + + + + + CAUD + + + + 0.89999998 + + + 0.0 + + + + diff --git a/templates/mp3/Structs/PlatformMotionProperties.xml b/templates/mp3/Structs/PlatformMotionProperties.xml index cfaf604c..e0474d36 100644 --- a/templates/mp3/Structs/PlatformMotionProperties.xml +++ b/templates/mp3/Structs/PlatformMotionProperties.xml @@ -1,22 +1,29 @@ - - - - - - 10.0 - - - 0.0 - - - 288 - - - - - - 0.0, 0.0, 0.0 - - - + + + PlatformMotionProperties + + + + + 10.0 + + + 0.0 + + + 288 + + + + + + + 0.0 + 0.0 + 0.0 + + + + + diff --git a/templates/mp3/Structs/PlayerActorStruct.xml b/templates/mp3/Structs/PlayerActorStruct.xml index ca68e768..7774c704 100644 --- a/templates/mp3/Structs/PlayerActorStruct.xml +++ b/templates/mp3/Structs/PlayerActorStruct.xml @@ -1,14 +1,29 @@ - - - - - - - 1.0 - - - 1.0 - - - + + + PlayerActorStruct + + + + CMDL + + + + + CSKR + + + + + CMDL + + + + 1.0 + + + 1.0 + + + + diff --git a/templates/mp3/Structs/PlayerInventoryItem.xml b/templates/mp3/Structs/PlayerInventoryItem.xml index d6276f63..7ae45883 100644 --- a/templates/mp3/Structs/PlayerInventoryItem.xml +++ b/templates/mp3/Structs/PlayerInventoryItem.xml @@ -1,11 +1,14 @@ - - - - 0 - - - 0 - - - + + + PlayerInventoryItem + + + 0 + + + 0 + + + + diff --git a/templates/mp3/Structs/PuddleControlData.xml b/templates/mp3/Structs/PuddleControlData.xml index 574e8eb7..4f2ef455 100644 --- a/templates/mp3/Structs/PuddleControlData.xml +++ b/templates/mp3/Structs/PuddleControlData.xml @@ -1,17 +1,24 @@ - - - - 1.0 - - - 1.0 - - - - - - - - - + + + PuddleControlData + + + 1.0 + + + 1.0 + + + + + + + + + CAUD + + + + + diff --git a/templates/mp3/Structs/PuddleControlPhaseData.xml b/templates/mp3/Structs/PuddleControlPhaseData.xml index 8e3a7e92..5d57ac64 100644 --- a/templates/mp3/Structs/PuddleControlPhaseData.xml +++ b/templates/mp3/Structs/PuddleControlPhaseData.xml @@ -1,17 +1,20 @@ - - - - 1.0 - - - 1.0 - - - 1.0 - - - 0.0 - - - + + + PuddleControlPhaseData + + + 1.0 + + + 1.0 + + + 1.0 + + + 0.0 + + + + diff --git a/templates/mp3/Structs/RagDollData.xml b/templates/mp3/Structs/RagDollData.xml index 73e67e24..8063a2fc 100644 --- a/templates/mp3/Structs/RagDollData.xml +++ b/templates/mp3/Structs/RagDollData.xml @@ -1,68 +1,87 @@ - - - - 0.0, 0.0, -50.0 - - - 8000.0 - - - 1.2 - - - 0.0, 0.0, -3.0 - - - 1000.0 - - - 0.125 - - - 0.85 - - - 1.0 - - - 3000.0 - - - 0.5 - - - 5.0 - - - - false - - - true - - - false - - - false - - - false - - - 0x902E534E - - - - - - - - 0.0, 0.0, 1.0 - - - 0.0 - - - + + + RagDollData + + + + 0.0 + 0.0 + -50.0 + + + + 8000.0 + + + 1.2 + + + + 0.0 + 0.0 + -3.0 + + + + 1000.0 + + + 0.125 + + + 0.85000002 + + + 1.0 + + + 3000.0 + + + 0.5 + + + 5.0 + + + + CAUD + + + + false + + + true + + + false + + + false + + + false + + + 0x902E534E + + + + + + + + + 0.0 + 0.0 + 1.0 + + + + 0.0 + + + + diff --git a/templates/mp3/Structs/ReptilicusHunterStruct.xml b/templates/mp3/Structs/ReptilicusHunterStruct.xml index 693d1d9b..534fd3a1 100644 --- a/templates/mp3/Structs/ReptilicusHunterStruct.xml +++ b/templates/mp3/Structs/ReptilicusHunterStruct.xml @@ -1,21 +1,24 @@ - - - - false - - - 10.0 - - - 20.0 - - - 100.0 - - - 20.0 - - - - + + + ReptilicusHunterStruct + + + false + + + 10.0 + + + 20.0 + + + 100.0 + + + 20.0 + + + + + diff --git a/templates/mp3/Structs/Ridley1Data.xml b/templates/mp3/Structs/Ridley1Data.xml index 5201c814..00422a6d 100644 --- a/templates/mp3/Structs/Ridley1Data.xml +++ b/templates/mp3/Structs/Ridley1Data.xml @@ -1,54 +1,57 @@ - - - - 90.0 - - - 65.0 - - - 60.0 - - - 35.0 - - - 1000.0 - - - - - 15.0 - - - - - 15.0 - - - - 15.0 - - - - 15.0 - - - - 15.0 - - - - 15.0 - - - - - - - - 8.0 - - - + + + Ridley1Data + + + 90.0 + + + 65.0 + + + 60.0 + + + 35.0 + + + 1000.0 + + + + + 15.0 + + + + + 15.0 + + + + 15.0 + + + + 15.0 + + + + 15.0 + + + + 15.0 + + + + + + + + 8.0 + + + + diff --git a/templates/mp3/Structs/RundasData.xml b/templates/mp3/Structs/RundasData.xml index aed1a32f..6d964506 100644 --- a/templates/mp3/Structs/RundasData.xml +++ b/templates/mp3/Structs/RundasData.xml @@ -1,136 +1,139 @@ - - - - 180.0 - - - 225.0 - - - 8.0 - - - 10.0 - - - 5.0 - - - 7.0 - - - 5.0 - - - - - - 6.0 - - - - - 0.5 - - - 7.0 - - - 6.0 - - - 100.0 - - - - - 35.0 - - - 200.0 - - - 80.0 - - - 5.0 - - - 2.5 - - - 0.5 - - - 0.95 - - - 25.0 - - - - 1 - - - 1 - - - 0.05 - - - 0.45 - - - 0.05 - - - 0.45 - - - 7.0 - - - 11.0 - - - 25.0 - - - 7.5 - - - 18.0 - - - 14.0 - - - 1.0 - - - 17.0 - - - 10.0 - - - false - - - 125.0 - - - 20.0 - - - 30.0 - - - 5.0 - - - 10.0 - - - + + + RundasData + + + 180.0 + + + 225.0 + + + 8.0 + + + 10.0 + + + 5.0 + + + 7.0 + + + 5.0 + + + + + + 6.0 + + + + + 0.5 + + + 7.0 + + + 6.0 + + + 100.0 + + + + + 35.0 + + + 200.0 + + + 80.0 + + + 5.0 + + + 2.5 + + + 0.5 + + + 0.94999999 + + + 25.0 + + + + 1 + + + 1 + + + 0.050000001 + + + 0.44999999 + + + 0.050000001 + + + 0.44999999 + + + 7.0 + + + 11.0 + + + 25.0 + + + 7.5 + + + 18.0 + + + 14.0 + + + 1.0 + + + 17.0 + + + 10.0 + + + false + + + 125.0 + + + 20.0 + + + 30.0 + + + 5.0 + + + 10.0 + + + + diff --git a/templates/mp3/Structs/SavedStateID.xml b/templates/mp3/Structs/SavedStateID.xml index 40aa2e6e..40d670e9 100644 --- a/templates/mp3/Structs/SavedStateID.xml +++ b/templates/mp3/Structs/SavedStateID.xml @@ -1,17 +1,25 @@ - - - - 0 - - - 0 - - - 0 - - - 0 - - - + + + SavedStateID + true + + + State ID 1 + 0 + + + State ID 2 + 0 + + + State ID 3 + 0 + + + State ID 4 + 0 + + + + diff --git a/templates/mp3/Structs/ScanBeamInfo.xml b/templates/mp3/Structs/ScanBeamInfo.xml index 2e580a64..41d83956 100644 --- a/templates/mp3/Structs/ScanBeamInfo.xml +++ b/templates/mp3/Structs/ScanBeamInfo.xml @@ -1,33 +1,60 @@ - - - - 20.0 - - - 0.247059, 0.0, 0.0, 0.0 - - - 0.498039, 1.0, 0.098039, 0.0 - - - 0.34902, 0.0, 0.0, 0.0 - - - 0.14902, 0.0, 0.0, 0.0 - - - 10.0 - - - 5.0 - - - 4.0 - - - 50.0 - - - - + + + ScanBeamInfo + + + 20.0 + + + + 0.247059 + 0.0 + 0.0 + 0.0 + + + + + 0.49803901 + 1.0 + 0.098039001 + 0.0 + + + + + 0.34902 + 0.0 + 0.0 + 0.0 + + + + + 0.14902 + 0.0 + 0.0 + 0.0 + + + + 10.0 + + + 5.0 + + + 4.0 + + + 50.0 + + + + CAUD + + + + + diff --git a/templates/mp3/Structs/ScannableParameters.xml b/templates/mp3/Structs/ScannableParameters.xml index 6c40e283..c5c0a934 100644 --- a/templates/mp3/Structs/ScannableParameters.xml +++ b/templates/mp3/Structs/ScannableParameters.xml @@ -1,12 +1,19 @@ - - - - - 0.0 - - - 0 - - - + + + ScannableParameters + + + + SCAN + + + + 0.0 + + + 0 + + + + diff --git a/templates/mp3/Structs/SeedBoss1Action.xml b/templates/mp3/Structs/SeedBoss1Action.xml index 05df7ab7..81bf8b13 100644 --- a/templates/mp3/Structs/SeedBoss1Action.xml +++ b/templates/mp3/Structs/SeedBoss1Action.xml @@ -1,20 +1,23 @@ - - - - false - - - 100.0 - - - 50.0 - - - 0.0 - - - 1000.0 - - - + + + SeedBoss1Action + + + false + + + 100.0 + + + 50.0 + + + 0.0 + + + 1000.0 + + + + diff --git a/templates/mp3/Structs/SeedBoss1Stage.xml b/templates/mp3/Structs/SeedBoss1Stage.xml index ac195d9c..8142fc81 100644 --- a/templates/mp3/Structs/SeedBoss1Stage.xml +++ b/templates/mp3/Structs/SeedBoss1Stage.xml @@ -1,70 +1,73 @@ - - - - 1.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 5.0 - - - false - - - false - - - false - - - 5.0 - - - 15.0 - - - 1.0 - - - 1.0 - - - 0.25 - - - 0.25 - - - - - 0.06 - - - - - - 1 - - - 3.0 - - - 1.0 - - - + + + SeedBoss1Stage + + + 1.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 5.0 + + + false + + + false + + + false + + + 5.0 + + + 15.0 + + + 1.0 + + + 1.0 + + + 0.25 + + + 0.25 + + + + + 0.059999999 + + + + + + 1 + + + 3.0 + + + 1.0 + + + + diff --git a/templates/mp3/Structs/SeedBoss2PrimeBotData.xml b/templates/mp3/Structs/SeedBoss2PrimeBotData.xml index cfad1a08..38c83a3b 100644 --- a/templates/mp3/Structs/SeedBoss2PrimeBotData.xml +++ b/templates/mp3/Structs/SeedBoss2PrimeBotData.xml @@ -1,34 +1,37 @@ - - - - 150.0 - - - 500.0 - - - 2.5 - - - 0.1 - - - 160.0 - - - - - - - 0.0 - - - - - - - - - - + + + SeedBoss2PrimeBotData + + + 150.0 + + + 500.0 + + + 2.5 + + + 0.1 + + + 160.0 + + + + + + + 0.0 + + + + + + + + + + + diff --git a/templates/mp3/Structs/SeedBoss3Data.xml b/templates/mp3/Structs/SeedBoss3Data.xml index 6148d8f0..c234b7a4 100644 --- a/templates/mp3/Structs/SeedBoss3Data.xml +++ b/templates/mp3/Structs/SeedBoss3Data.xml @@ -1,885 +1,308 @@ - - - - - - 0.05 - - - 20.0 - - - 1 - - - - - - - 2.0 - - - 20.0 - - - 1 - - - - - - - 2.0 - - - 20.0 - - - 1 - - - - - - - 10.0 - - - 7.0 - - - 20.0 - - - - - - - - - 10.0 - - - 20.0 - - - 2 - - - - - 5.0 - - - 1.0 - - - 2.0 - - - 0.9 - - - 50.0 - - - - - 1.0 - - - - - 1.0 - - - 50.0 - - - 2 - - - - - - - - - 5.0 - - - 1.0 - - - 5.0 - - - - - 0.5 - - - 5.0 - never - - - never - - - never - - - never - - - never - - - never - - - 0.5 - never - - - - - 2.0 - - - 6.0 - - - - - - - 5.0 - - - 10.0 - - - 1 - - - - - 1.0, 1.0, 2.0 - - - 215.0 - - - 100.0 - - - 1.0 - - - 5.0 - - - 0.5 - - - - - - - - - - 3.0 - - - 5.0 - - - 10.0 - - - - - 0.2 - - - 10.0 - - - never - - - never - - - 0.25 - - - - - - - 20.0 - - - - - - - - 0.05 - - - 1.0 - - - - - 1.5, 1.5, 1.5 - - - - 500.0 - - - - - 1.0 - - - 50.0 - - - 2 - - - - - 56.0 - - - 1.0 - - - 0.75 - - - - - 10.0 - - - 10.0 - - - 1 - - - - - 0.5 - - - 3.0 - - - 0.4 - - - 3 - - - 1 - - - 40.0 - - - - - 750.0 - - - - - - 80.0 - - - 0.0 - - - 4.0 - - - 6.0 - - - 8.0 - - - 12.0 - - - 20.0 - - - 60.0 - - - 40.0 - - - 40.0 - - - 5.0 - - - - - 1 - - - never - - - - - 1 - - - 180.0 - - - 0.1 - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - never - - - - - 0.5 - - - 2.0 - - - 5.0 - - - 7.0 - - - 0.1 - - - 0.5 - - - 400.0 - - - 60.0 - - - 4.0 - - - 6.0 - - - 25.0 - - - - - - - 20.0 - - - 5.0 - - - 10.0 - - - 1 - - - - - never - - - never - - - never - - - 2.0 - - - never - - - never - - - never - - - never - - - - - - - 0.0 - - - - - - - 750.0 - - - 1.05 - - - - - - - 80.0 - - - 0.0 - - - 25.0 - - - 40.0 - - - 18.0 - - - 15.0 - - - 3.0 - - - 24.0 - - - 16.0 - - - 12.0 - - - 8.0 - - - 15.0 - - - 0.0 - - - 0.01 - - - 1.0 - - - 1.0 - - - 50.0 - - - 3 - - - - - - - - - 6 - - - 6 - - - - - 20.0 - - - 10.0 - - - 2 - - - - - - - 20.0 - - - 10.0 - - - 2 - - - - - 3.0 - - - 35.0 - - - 5.0 - - - 1.0 - - - 2.5 - - - 5.0 - - - 9.0 - - - - - 0.1 - - - 1.0 - - - 2.0 - - - 1.5 - - - 0.3 - - - - - - - - - - - - - - - - - - - 750.0 - - - 1.1 - - - - - - 80.0 - - - 0.0 - - - 7.5 - - - 11.25 - - - - - 3.0 - - - 1.0 - - - 10.0 - - - 1 - - - - - 0.4 - - - 15.0 - - - 15.0 - - - 5.0 - - - 30.0 - - - 20.0 - - - 44.0 - - - - - - - 10.0 - - - 20.0 - - - 2 - - - - - 5.0 - - - 2.0 - - - 0.9 - - - 45.0 - - - - - - - - - 10.0 - - - 15.0 - - - 10.0 - - - 1 - - - - - 0.2 - - - 0.1 - - - 30.0 - - - never - - - never - - - 1.0 - - - - - 0.5 - - - 30.0 - - - 60.0 - - - 4 - - - 4 - - - 1 - - - 100.0 - - - 100.0 - - - 100.0 - - - 100.0 - - - 100.0 - - - 200.0 - - - 0.8 - - - 0.0 - - - -0.025 - - - 1.0 - - - 0.025 - - - 0.5 - - - - - - - - - + + + SeedBoss3Data + + + + + 0.050000001 + + + 20.0 + + + 1 + + + + + + + 2.0 + + + 20.0 + + + 1 + + + + + + + 2.0 + + + 20.0 + + + 1 + + + + + + + 10.0 + + + 7.0 + + + 20.0 + + + + + + + + + 10.0 + + + 20.0 + + + 2 + + + + + 5.0 + + + 1.0 + + + 2.0 + + + 0.89999998 + + + 50.0 + + + + + 1.0 + + + + + 1.0 + + + 50.0 + + + 2 + + + + + + + + + 5.0 + + + 1.0 + + + 5.0 + + + + + 0.5 + + + Never + 5.0 + + + Never + + + Never + + + Never + + + Never + + + Never + + + Never + 0.5 + + + + + 2.0 + + + 6.0 + + + + + CAUD + + + + + + + + 3.0 + + + 5.0 + + + 10.0 + + + + + 0.2 + + + 10.0 + + + Never + + + Never + + + 0.25 + + + + + + + 20.0 + + + + + + PART + + + + + + 0.050000001 + + + 1.0 + + + + + + 1.5 + 1.5 + 1.5 + + + + + CAUD + + + + 500.0 + + + + + 1.0 + + + 50.0 + + + 2 + + + + + 56.0 + + + 1.0 + + + 0.75 + + + + + 10.0 + + + 10.0 + + + 1 + + + + + 0.5 + + + 3.0 + + + 0.40000001 + + + 3 + + + 1 + + + 40.0 + + + + + + + SCAN + + + + + SCAN + + + + + SCAN + + + + + SCAN + + + + + diff --git a/templates/mp3/Structs/ShipDecalControllerStruct.xml b/templates/mp3/Structs/ShipDecalControllerStruct.xml index 2a24f2ef..409b457d 100644 --- a/templates/mp3/Structs/ShipDecalControllerStruct.xml +++ b/templates/mp3/Structs/ShipDecalControllerStruct.xml @@ -1,20 +1,27 @@ - - - - 0x2ADA4FEE - - - - - - - - - - - - - - - + + + ShipDecalControllerStruct + + + 0x2ADA4FEE + + + + + + + + + + + + + + + TXTR + + + + + diff --git a/templates/mp3/Structs/ShockWaveInfo.xml b/templates/mp3/Structs/ShockWaveInfo.xml index 99ebf7a0..0fb30be2 100644 --- a/templates/mp3/Structs/ShockWaveInfo.xml +++ b/templates/mp3/Structs/ShockWaveInfo.xml @@ -1,34 +1,53 @@ - - - - - - 2.0 - - - 0.0 - - - true - - - 0.0 - - - 1.0 - - - 0.5 - - - 1.0 - - - 0.0 - - - - - - + + + ShockWaveInfo + + + + PART + + + + + 2.0 + + + 0.0 + + + true + + + 0.0 + + + 1.0 + + + 0.5 + + + 1.0 + + + 0.0 + + + + ELSC + + + + + CAUD + + + + + CAUD + + + + + diff --git a/templates/mp3/Structs/SpacePirateStruct.xml b/templates/mp3/Structs/SpacePirateStruct.xml index 5f92b482..99ecee5d 100644 --- a/templates/mp3/Structs/SpacePirateStruct.xml +++ b/templates/mp3/Structs/SpacePirateStruct.xml @@ -1,42 +1,53 @@ - - - - false - - - 0.1 - - - 25.0 - - - 10.0 - - - 45.0 - - - false - - - false - - - - - - 0.2 - - - 0.1 - - - 1.0 - - - 0.5 - - - - + + + SpacePirateStruct + + + false + + + 0.1 + + + 25.0 + + + 10.0 + + + 45.0 + + + false + + + false + + + + WPSC + + + + + CAUD + + + + + 0.2 + + + 0.1 + + + 1.0 + + + 0.5 + + + + + diff --git a/templates/mp3/Structs/SpacePirateWeaponData.xml b/templates/mp3/Structs/SpacePirateWeaponData.xml index 2d36d33d..86dc9542 100644 --- a/templates/mp3/Structs/SpacePirateWeaponData.xml +++ b/templates/mp3/Structs/SpacePirateWeaponData.xml @@ -1,110 +1,161 @@ - - - - true - - - false - - - false - - - false - - - true - - - true - - - false - - - false - - - false - - - false - - - false - - - - 15.0 - - - 50.0 - - - - - - - - - 25.0 - - - 0.4 - - - 20.0 - - - 50.0 - - - 0.0 - - - 45.0 - - - 45.0 - - - 2 - - - - - - 8.0 - - - 5.0 - - - 0.0 - - - 0.0 - - - - - - 0.0, 0.0, 1.0, 1.0 - - - 1.0, 0.0, 0.0, 1.0 - - - - - 0.0 - - - 0.0 - - - 4.0 - - - + + + SpacePirateWeaponData + + + true + + + false + + + false + + + false + + + true + + + true + + + false + + + false + + + false + + + false + + + false + + + + CMDL + + + + 15.0 + + + 50.0 + + + + + + + PART + + + + + PART + + + + + PART + + + + 25.0 + + + 0.40000001 + + + 20.0 + + + 50.0 + + + 0.0 + + + 45.0 + + + 45.0 + + + 2 + + + + CAUD + + + + + CAUD + + + + + 8.0 + + + 5.0 + + + 0.0 + + + 0.0 + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + 0.0 + 0.0 + 1.0 + + + + + 1.0 + 0.0 + 0.0 + + + + + PART + + + + + 0.0 + + + 0.0 + + + 4.0 + + + + diff --git a/templates/mp3/Structs/SpindlePositionInterpolant.xml b/templates/mp3/Structs/SpindlePositionInterpolant.xml index 4692d31b..5e294d4c 100644 --- a/templates/mp3/Structs/SpindlePositionInterpolant.xml +++ b/templates/mp3/Structs/SpindlePositionInterpolant.xml @@ -1,22 +1,25 @@ - - - - 0xCEA073FF - - - - - - - - - - - - - - - - - + + + SpindlePositionInterpolant + + + 0xCEA073FF + + + + + + + + + + + + + + + + + + diff --git a/templates/mp3/Structs/SplineType.xml b/templates/mp3/Structs/SplineType.xml index b798d00f..b4041941 100644 --- a/templates/mp3/Structs/SplineType.xml +++ b/templates/mp3/Structs/SplineType.xml @@ -1,8 +1,11 @@ - - - - 0 - - - + + + SplineType + + + 0 + + + + diff --git a/templates/mp3/Structs/SpriteStruct.xml b/templates/mp3/Structs/SpriteStruct.xml index 9f5d8514..1e8518b7 100644 --- a/templates/mp3/Structs/SpriteStruct.xml +++ b/templates/mp3/Structs/SpriteStruct.xml @@ -1,18 +1,21 @@ - - - - false - - - - - - - - - - - - - + + + SpriteStruct + + + false + + + + + + + + + + + + + + diff --git a/templates/mp3/Structs/StaticGeometryTest.xml b/templates/mp3/Structs/StaticGeometryTest.xml index 3b15fcc2..3d6f245f 100644 --- a/templates/mp3/Structs/StaticGeometryTest.xml +++ b/templates/mp3/Structs/StaticGeometryTest.xml @@ -1,13 +1,16 @@ - - - - 0xEC23778C - - - - - - - - + + + StaticGeometryTest + + + 0xEC23778C + + + + + + + + + diff --git a/templates/mp3/Structs/SwarmBasicsData.xml b/templates/mp3/Structs/SwarmBasicsData.xml index ad40acd8..07b00b30 100644 --- a/templates/mp3/Structs/SwarmBasicsData.xml +++ b/templates/mp3/Structs/SwarmBasicsData.xml @@ -1,119 +1,134 @@ - - - - - - 5.0 - - - 5.0 - - - - - 1.0 - - - 0.3 - - - 1.0 - - - 0.7 - - - 0.0 - - - 3.0 - - - 50 - - - 0 - - - 2.5 - - - 1.0 - - - 0.7 - - - 0.4 - - - 0.7 - - - 0.0 - - - 0.7 - - - 10.0 - - - 6.0 - - - 5 - - - 0.0 - - - 0.0 - - - - - 2.0 - - - 2.0 - - - - - - - 5 - - - - 5 - - - 90.0 - - - false - - - true - - - false - - - 0.0 - - - - - - - - - - 0 - - - + + + SwarmBasicsData + + + + + 5.0 + + + 5.0 + + + + + 1.0 + + + 0.30000001 + + + 1.0 + + + 0.69999999 + + + 0.0 + + + 3.0 + + + 50 + + + 0 + + + 2.5 + + + 1.0 + + + 0.69999999 + + + 0.40000001 + + + 0.69999999 + + + 0.0 + + + 0.69999999 + + + 10.0 + + + 6.0 + + + 5 + + + 0.0 + + + 0.0 + + + + + 2.0 + + + 2.0 + + + + + + + PART + + + + 5 + + + + PART + + + + 5 + + + 90.0 + + + false + + + true + + + false + + + 0.0 + + + + + + + + + + CAUD + + + + 0 + + + + diff --git a/templates/mp3/Structs/SwarmSoundData.xml b/templates/mp3/Structs/SwarmSoundData.xml index 12838106..6f979d14 100644 --- a/templates/mp3/Structs/SwarmSoundData.xml +++ b/templates/mp3/Structs/SwarmSoundData.xml @@ -1,15 +1,22 @@ - - - - - 5 - - - 2.0 - - - 4.0 - - - + + + SwarmSoundData + + + + CAUD + + + + 5 + + + 2.0 + + + 4.0 + + + + diff --git a/templates/mp3/Structs/TextProperties.xml b/templates/mp3/Structs/TextProperties.xml index 5871ee7b..4dcdf696 100644 --- a/templates/mp3/Structs/TextProperties.xml +++ b/templates/mp3/Structs/TextProperties.xml @@ -1,42 +1,61 @@ - - - - 1 - - - 1 - - - 100.0 - - - 0 - - - 0 - - - 1.0, 1.0, 1.0, 1.0 - - - 0.0, 0.0, 0.0, 1.0 - - - 1.0, 1.0, 1.0, 1.0 - - - - 0 - - - 0 - - - false - - - false - - - + + + TextProperties + + + 1 + + + 1 + + + 100.0 + + + 0 + + + 0 + + + + 1.0 + 1.0 + 1.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + 1.0 + 1.0 + 1.0 + + + + + FONT + + + + 0 + + + 0 + + + false + + + false + + + + diff --git a/templates/mp3/Structs/Transform.xml b/templates/mp3/Structs/Transform.xml index 5fe91767..6b524b86 100644 --- a/templates/mp3/Structs/Transform.xml +++ b/templates/mp3/Structs/Transform.xml @@ -1,14 +1,33 @@ - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - 1.0, 1.0, 1.0 - - - + + + Transform + true + + + Position + + 0.0 + 0.0 + 0.0 + + + + Rotation + + 0.0 + 0.0 + 0.0 + + + + Scale + + 1.0 + 1.0 + 1.0 + + + + + diff --git a/templates/mp3/Structs/TriggerInfo.xml b/templates/mp3/Structs/TriggerInfo.xml index 7fa21df6..84843f5b 100644 --- a/templates/mp3/Structs/TriggerInfo.xml +++ b/templates/mp3/Structs/TriggerInfo.xml @@ -1,19 +1,26 @@ - - - - 127 - - - 0 - - - false - - - - - 0.0, 0.0, 0.0 - - - + + + TriggerInfo + + + 127 + + + 0 + + + false + + + + + + 0.0 + 0.0 + 0.0 + + + + + diff --git a/templates/mp3/Structs/UnknownStruct10.xml b/templates/mp3/Structs/UnknownStruct10.xml index 800781b8..e94c47e2 100644 --- a/templates/mp3/Structs/UnknownStruct10.xml +++ b/templates/mp3/Structs/UnknownStruct10.xml @@ -1,65 +1,72 @@ - - - - false - - - false - - - false - - - 0.0 - - - 0.0 - - - 0.2 - - - 0.1 - - - 0.2 - - - 0.1 - - - 0.2 - - - 0.05 - - - 0.2 - - - 0.05 - - - false - - - false - - - false - - - - - - false - - - 0.0 - - - 0.0 - - - + + + UnknownStruct10 + + + false + + + false + + + false + + + 0.0 + + + 0.0 + + + 0.2 + + + 0.1 + + + 0.2 + + + 0.1 + + + 0.2 + + + 0.050000001 + + + 0.2 + + + 0.050000001 + + + false + + + false + + + false + + + + + + CAUD + + + + false + + + 0.0 + + + 0.0 + + + + diff --git a/templates/mp3/Structs/UnknownStruct5.xml b/templates/mp3/Structs/UnknownStruct5.xml index bcc0b0d5..bffc2667 100644 --- a/templates/mp3/Structs/UnknownStruct5.xml +++ b/templates/mp3/Structs/UnknownStruct5.xml @@ -1,16 +1,19 @@ - - - - 0x845C872E - - - - - - - - - - - + + + UnknownStruct5 + + + 0x845C872E + + + + + + + + + + + + diff --git a/templates/mp3/Structs/UnknownStruct6.xml b/templates/mp3/Structs/UnknownStruct6.xml index 039e7c90..33083351 100644 --- a/templates/mp3/Structs/UnknownStruct6.xml +++ b/templates/mp3/Structs/UnknownStruct6.xml @@ -1,17 +1,20 @@ - - - - 35.0 - - - 25.0 - - - 15.0 - - - 25.0 - - - + + + UnknownStruct6 + + + 35.0 + + + 25.0 + + + 15.0 + + + 25.0 + + + + diff --git a/templates/mp3/Structs/UnknownStruct7.xml b/templates/mp3/Structs/UnknownStruct7.xml index f8cfd9f7..c24fccea 100644 --- a/templates/mp3/Structs/UnknownStruct7.xml +++ b/templates/mp3/Structs/UnknownStruct7.xml @@ -1,17 +1,20 @@ - - - - 35.0 - - - 30.0 - - - 35.0 - - - 0.0 - - - + + + UnknownStruct7 + + + 35.0 + + + 30.0 + + + 35.0 + + + 0.0 + + + + diff --git a/templates/mp3/Structs/Vector2f.xml b/templates/mp3/Structs/Vector2f.xml index 3be26a5e..be7a72bd 100644 --- a/templates/mp3/Structs/Vector2f.xml +++ b/templates/mp3/Structs/Vector2f.xml @@ -1,11 +1,14 @@ - - - - 0.0 - - - 0.0 - - - + + + Vector2f + + + 0.0 + + + 0.0 + + + + diff --git a/templates/mp3/Structs/VisorParameters.xml b/templates/mp3/Structs/VisorParameters.xml index e4768b80..0b237cee 100644 --- a/templates/mp3/Structs/VisorParameters.xml +++ b/templates/mp3/Structs/VisorParameters.xml @@ -1,17 +1,20 @@ - - - - false - - - 15 - - - 15 - - - 5.0 - - - + + + VisorParameters + + + false + + + 15 + + + 15 + + + 5.0 + + + + diff --git a/templates/mp3/Structs/WallCrawlerData.xml b/templates/mp3/Structs/WallCrawlerData.xml index 61d39088..37b2b23f 100644 --- a/templates/mp3/Structs/WallCrawlerData.xml +++ b/templates/mp3/Structs/WallCrawlerData.xml @@ -1,41 +1,44 @@ - - - - 1.0 - - - 1.0 - - - 60.0 - - - 1.0 - - - 1.0 - - - 1.0 - - - 0.167 - - - 0.6 - - - 1.5 - - - 0.6 - - - 1.5 - - - false - - - + + + WallCrawlerData + + + 1.0 + + + 1.0 + + + 60.0 + + + 1.0 + + + 1.0 + + + 1.0 + + + 0.167 + + + 0.60000002 + + + 1.5 + + + 0.60000002 + + + 1.5 + + + false + + + + diff --git a/templates/mp3/Structs/WeaponVulnerability.xml b/templates/mp3/Structs/WeaponVulnerability.xml index 544b4c16..87f5f1a9 100644 --- a/templates/mp3/Structs/WeaponVulnerability.xml +++ b/templates/mp3/Structs/WeaponVulnerability.xml @@ -1,15 +1,18 @@ - - - - 100.0 - % - - - 0 - - - false - - - + + + WeaponVulnerability + + + % + 100.0 + + + 0 + + + false + + + + diff --git a/templates/mp3proto/Enums/Item.xml b/templates/mp3proto/Enums/Item.xml deleted file mode 100644 index b7b0421b..00000000 --- a/templates/mp3proto/Enums/Item.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/templates/mp3proto/Enums/LocationOfEffect1.xml b/templates/mp3proto/Enums/LocationOfEffect1.xml index c35da969..7b97e328 100644 --- a/templates/mp3proto/Enums/LocationOfEffect1.xml +++ b/templates/mp3proto/Enums/LocationOfEffect1.xml @@ -1,8 +1,12 @@ - - - - - - - + + + LocationOfEffect1 + 0x0 + + + + + + + diff --git a/templates/mp3proto/Enums/Orientation.xml b/templates/mp3proto/Enums/Orientation.xml index 2f944946..d17a5b88 100644 --- a/templates/mp3proto/Enums/Orientation.xml +++ b/templates/mp3proto/Enums/Orientation.xml @@ -1,8 +1,12 @@ - - - - - - - + + + Orientation + 0x0 + + + + + + + diff --git a/templates/mp3proto/MasterTemplate.xml b/templates/mp3proto/MasterTemplate.xml deleted file mode 100644 index 2d2d8c38..00000000 --- a/templates/mp3proto/MasterTemplate.xml +++ /dev/null @@ -1,417 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/templates/mp3proto/Script/AIHint.xml b/templates/mp3proto/Script/AIHint.xml index b4127028..86402135 100644 --- a/templates/mp3proto/Script/AIHint.xml +++ b/templates/mp3proto/Script/AIHint.xml @@ -1,36 +1,31 @@ - - AIHint - - - - 0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - enabled - enabled - - + + + AIHint + + + + 0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/mp3proto/Script/AITaskPoint.xml b/templates/mp3proto/Script/AITaskPoint.xml index 102e1b82..7b49abdf 100644 --- a/templates/mp3proto/Script/AITaskPoint.xml +++ b/templates/mp3proto/Script/AITaskPoint.xml @@ -1,91 +1,86 @@ - - AITaskPoint - - - - false - - - 1.0 - - - 30.0 - - - false - - - -1 - - - -1 - - - -1 - - - 5.0 - - - 10.0 - - - -1 - - - -1 - - - -1 - - - false - - - 10.0 - - - true - - - true - - - -1 - - - -1 - - - false - - - false - - - false - - - true - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + AITaskPoint + + + + false + + + 1.0 + + + 30.0 + + + false + + + -1 + + + -1 + + + -1 + + + 5.0 + + + 10.0 + + + -1 + + + -1 + + + -1 + + + false + + + 10.0 + + + true + + + true + + + -1 + + + -1 + + + false + + + false + + + false + + + true + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/AIWaypoint.xml b/templates/mp3proto/Script/AIWaypoint.xml index 66ab534f..66458b7b 100644 --- a/templates/mp3proto/Script/AIWaypoint.xml +++ b/templates/mp3proto/Script/AIWaypoint.xml @@ -1,38 +1,34 @@ - - AIWaypoint - - - - 1.0 - - - 0.0 - - - 0 - - - 0 - - - 0 - - - - - - - - - - - - - - script/common/AIWaypoint.CMDL - - enabled - enabled - - + + + AIWaypoint + + + + 1.0 + + + 0.0 + + + 0 + + + 0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/mp3proto/Script/Actor.xml b/templates/mp3proto/Script/Actor.xml index a1db50f5..7825e6ad 100644 --- a/templates/mp3proto/Script/Actor.xml +++ b/templates/mp3proto/Script/Actor.xml @@ -1,81 +1,101 @@ - - Actor - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - 1.0 - - - 0.0 - - - - - - - - - true - - - true - - - true - - - false - - - 0 - - - false - - - false - - - false - - - 0.0 - - - - - - false - - - 1.0, 1.0, 1.0, 1.0 - - - - - - - - - - - - - - - - 0xA244C9D8 - 0xC27FFA8F - 0x0FC966DC - - enabled - enabled - - + + + Actor + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + 1.0 + + + 0.0 + + + + + + CMDL + + + + + DCLN + + + + + + true + + + true + + + true + + + false + + + 0 + + + false + + + false + + + false + + + 0.0 + + + + WPSC + + + + + + false + + + + 1.0 + 1.0 + 1.0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp3proto/Script/ActorKeyframe.xml b/templates/mp3proto/Script/ActorKeyframe.xml index ce292083..6854e8a7 100644 --- a/templates/mp3proto/Script/ActorKeyframe.xml +++ b/templates/mp3proto/Script/ActorKeyframe.xml @@ -1,41 +1,36 @@ - - ActorKeyframe - - - - -1 - never - - - -1 - - - false - - - 0.0 - - - 0 - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ActorKeyframe + + + + Never + -1 + + + -1 + + + false + + + 0.0 + + + 0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/ActorMorph.xml b/templates/mp3proto/Script/ActorMorph.xml index 6a38e0af..c768d77c 100644 --- a/templates/mp3proto/Script/ActorMorph.xml +++ b/templates/mp3proto/Script/ActorMorph.xml @@ -1,29 +1,24 @@ - - ActorMorph - - - - 0.5 - - - 0.5 - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ActorMorph + + + + 0.5 + + + 0.5 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/ActorTransform.xml b/templates/mp3proto/Script/ActorTransform.xml index 05cc3887..c80672e1 100644 --- a/templates/mp3proto/Script/ActorTransform.xml +++ b/templates/mp3proto/Script/ActorTransform.xml @@ -1,49 +1,26 @@ - - ActorTransform - - - - 20 - - - 10.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ActorTransform + + + + 20 + + + 10.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/AiJumpPoint.xml b/templates/mp3proto/Script/AiJumpPoint.xml index 985f0068..44f37620 100644 --- a/templates/mp3proto/Script/AiJumpPoint.xml +++ b/templates/mp3proto/Script/AiJumpPoint.xml @@ -1,27 +1,22 @@ - - AiJumpPoint - - - - 3.0 - - - 0 - - - - - - - - - - - - - - enabled - enabled - - + + + AiJumpPoint + + + + 3.0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/mp3proto/Script/AmbientAI.xml b/templates/mp3proto/Script/AmbientAI.xml index 3c5ced42..52f7348f 100644 --- a/templates/mp3proto/Script/AmbientAI.xml +++ b/templates/mp3proto/Script/AmbientAI.xml @@ -1,51 +1,55 @@ - - AmbientAI - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - 1.0 - - - - - - - 7.0 - - - 1.5 - - - -1 - - - -1 - - - - - - - - - - - - - - - 0xA244C9D8 - 0x7E397FED:0xC0BA9E18 - 0x7E397FED:0x6B1FBC3A - - enabled - enabled - - + + + AmbientAI + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + 1.0 + + + + + + + 7.0 + + + 1.5 + + + -1 + + + -1 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp3proto/Script/AreaAttributes.xml b/templates/mp3proto/Script/AreaAttributes.xml index 205122c6..d3989679 100644 --- a/templates/mp3proto/Script/AreaAttributes.xml +++ b/templates/mp3proto/Script/AreaAttributes.xml @@ -1,54 +1,54 @@ - - AreaAttributes - - - - - never - - - - - false - Show the skybox. If no Skybox Model is specified, it will show the World's default skybox. - - - false - Enable Dark World damage and switch to the Dark World map. - - - 0 - - - -1 - - - 1.0 - - - 1.0 - - - - 0 - - - - - - - - - - - - - - script/common/AreaAttributes.TXTR - - 0.5 - enabled - enabled - - + + + AreaAttributes + + + + + Never + + + + + Show the skybox. If no Skybox Model is specified, it will show the World's default skybox. + false + + + Enable Dark World damage and switch to the Dark World map. + false + + + 0 + + + -1 + + + 1.0 + + + 1.0 + + + + CMDL + + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3proto/Script/AreaDamage.xml b/templates/mp3proto/Script/AreaDamage.xml index 751aefc0..2196563b 100644 --- a/templates/mp3proto/Script/AreaDamage.xml +++ b/templates/mp3proto/Script/AreaDamage.xml @@ -1,29 +1,24 @@ - - AreaDamage - - - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + AreaDamage + + + + + 1.0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/AtomicAlpha.xml b/templates/mp3proto/Script/AtomicAlpha.xml index 0b3b7c97..0d1f715a 100644 --- a/templates/mp3proto/Script/AtomicAlpha.xml +++ b/templates/mp3proto/Script/AtomicAlpha.xml @@ -1,45 +1,49 @@ - - AtomicAlpha - - - - - - - - - 3.0 - - - 2.0 - - - 1.5 - - - false - - - true - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0xC75F9516 - - enabled - enabled - - + + + AtomicAlpha + + + + + + + WPSC + + + + + CMDL + + + + + 3.0 + + + 2.0 + + + 1.5 + + + false + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3proto/Script/BallTrigger.xml b/templates/mp3proto/Script/BallTrigger.xml index 6fdd913f..3d685f9a 100644 --- a/templates/mp3proto/Script/BallTrigger.xml +++ b/templates/mp3proto/Script/BallTrigger.xml @@ -1,40 +1,40 @@ - - BallTrigger - - - - 20.0 - - - 60.0 - - - 20.0 - - - 1.0, 0.0, 0.0 - - - false - - - 1.0 - - - - - - - - - - - - - - enabled - volume - - - + + + BallTrigger + + + + 20.0 + + + 60.0 + + + 20.0 + + + + 1.0 + 0.0 + 0.0 + + + + false + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + BoxShape + diff --git a/templates/mp3proto/Script/BeastRider.xml b/templates/mp3proto/Script/BeastRider.xml index 18e7bc25..7f9a5171 100644 --- a/templates/mp3proto/Script/BeastRider.xml +++ b/templates/mp3proto/Script/BeastRider.xml @@ -1,34 +1,24 @@ - - BeastRider - - - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x56C48141:0xB3A26A80 - - enabled - enabled - - + + + BeastRider + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3proto/Script/Berserker.xml b/templates/mp3proto/Script/Berserker.xml index faeefcd9..7f7aa2f5 100644 --- a/templates/mp3proto/Script/Berserker.xml +++ b/templates/mp3proto/Script/Berserker.xml @@ -1,209 +1,78 @@ - - Berserker - - - - - - - - - 20.0 - - - 10.0 - - - - - 3.0 - - - - - 1000.0 - - - 5.0 - - - - - 1.0 - - - 2 - - - 180.0 - - - 50.0 - - - 90.0 - - - 4.0 - - - 1.0 - - - 0.5 - - - - - - - true - - - 10.0 - - - - - - - - 25.0 - - - 100.0 - - - 45.0 - - - 10.0 - - - - 25.0 - - - 10.0 - - - 25.0 - - - 45.0 - - - - 60.0 - - - 20.0 - - - 1.0 - - - 0.5 - - - 180.0 - - - false - - - 0.5 - - - - - - - - 1 - - - - - 60.0 - - - - 1.25 - - - 5.0 - - - 25.0 - - - 5.0 - - - 20.0 - - - 20.0 - - - - 20.0 - - - 0.5 - - - 0.7 - - - 0.5 - - - 0.2 - - - 0.1 - - - 0.1 - - - 0.8 - - - - 500.0 - - - - - - - - - - - - - - - - - - - - - - 0x43BBB1DD:0xA244C9D8 - 0x54F9FFA5:0x04547D34 - 0x54F9FFA5:0x82C00F9A - 0x54F9FFA5:0x499CDC3F - 0x54F9FFA5:0x5499EC87 - 0x54F9FFA5:0x9FC53F22 - - enabled - enabled - - + + + Berserker + + + + + + + + + 20.0 + + + 10.0 + + + + + 3.0 + + + + + 1000.0 + + + 5.0 + + + + + 1.0 + + + 2 + + + 180.0 + + + 50.0 + + + 90.0 + + + 4.0 + + + 1.0 + + + 0.5 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + diff --git a/templates/mp3proto/Script/BlinkWolf.xml b/templates/mp3proto/Script/BlinkWolf.xml index 71f27248..953528f3 100644 --- a/templates/mp3proto/Script/BlinkWolf.xml +++ b/templates/mp3proto/Script/BlinkWolf.xml @@ -1,179 +1,48 @@ - - BlinkWolf - - - - - - false - - - false - - - 20.0 - - - 2.0 - - - 0.5 - - - 5.0 - - - 10.0 - - - 15.0 - - - 15.0 - - - 5 - - - - - - - 70.0 - - - 180.0 - - - 20.0 - - - 1.0 - - - 3.0 - - - 15.0 - - - - 1.0 - - - 0.5 - - - 2.0 - - - 4.0 - - - - - 0.0 - - - 0.0 - - - 0.0 - - - 2.0 - - - 1.0 - - - 1.0 - - - 5.0 - - - 1.0 - - - 1.0 - - - 5.0 - - - 100.0 - - - 1.0 - - - 5.0 - - - 5.0 - - - 2.0 - - - 5.0 - - - 10.0 - - - 2.0 - - - 5.0 - - - - - - - - - 50.0 - - - 2.0 - - - - - 1 - - - 50.0 - - - 10.0 - - - 20.0 - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + BlinkWolf + + + + + + + + + 50.0 + + + 2.0 + + + + + 1 + + + 50.0 + + + 10.0 + + + 20.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/Cable.xml b/templates/mp3proto/Script/Cable.xml index 24dcd67e..64e3a1ac 100644 --- a/templates/mp3proto/Script/Cable.xml +++ b/templates/mp3proto/Script/Cable.xml @@ -1,99 +1,19 @@ - - Cable - - - - - - - - 0xD6629DCA - - - - - - - 0xB9B7640F - - - - - - - - false - - - 10 - - - 4.0 - - - 4.0 - - - 0x80DD21B4 - - - 0x23363FD3 - - - 0x24CF38F1 - - - 10 - - - 1.0 - - - false - - - - - false - - - true - - - - - 0.0 - - - 15.0 - - - 0.0167 - - - 0x23363FD3 - - - - - - - - - - - - - - - - - - - - - enabled - enabled - - + + + Cable + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + diff --git a/templates/mp3proto/Script/CameraBlurKeyframe.xml b/templates/mp3proto/Script/CameraBlurKeyframe.xml index 3f0d5739..28cadc46 100644 --- a/templates/mp3proto/Script/CameraBlurKeyframe.xml +++ b/templates/mp3proto/Script/CameraBlurKeyframe.xml @@ -1,39 +1,35 @@ - - CameraBlurKeyframe - - - - 0 - - - 0.0 - - - 0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - script/common/CameraBlurKeyframe.TXTR - - 0.5 - enabled - enabled - - + + + CameraBlurKeyframe + + + + 0 + + + 0.0 + + + 0 + + + 0.0 + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3proto/Script/CameraFilterKeyframe.xml b/templates/mp3proto/Script/CameraFilterKeyframe.xml index d06daf04..4c33edeb 100644 --- a/templates/mp3proto/Script/CameraFilterKeyframe.xml +++ b/templates/mp3proto/Script/CameraFilterKeyframe.xml @@ -1,46 +1,50 @@ - - CameraFilterKeyframe - - - - 0 - - - 0 - - - 0 - - - 0 - - - 1.0, 1.0, 1.0, 1.0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - - script/common/CameraFilterKeyframe.TXTR - - 0.5 - enabled - enabled - - + + + CameraFilterKeyframe + + + + 0 + + + 0 + + + 0 + + + 0 + + + + 1.0 + 1.0 + 1.0 + + + + 0.0 + + + 0.0 + + + + TXTR + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3proto/Script/CameraHint.xml b/templates/mp3proto/Script/CameraHint.xml index 9d695bab..c8d983c3 100644 --- a/templates/mp3proto/Script/CameraHint.xml +++ b/templates/mp3proto/Script/CameraHint.xml @@ -1,281 +1,34 @@ - - CameraHint - - - - 50 - - - 0.0 - - - 30725 - - - - - 7 - - - - - - - 0xC239D6DB - - - - - - - - - - - - 0 - - - - - 0xB745A689 - - - - - - 5.0 - - - 10.0 - - - 2.736 - - - - - - - 0.01 - - - - - - - - - - - 80.0 - - - 4.0 - - - - - - - - - - - 30.0 - - - 8.0 - - - 2.5 - - - - - - - - - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - - 0 - - - 0xD25FBD92 - - - - - - - - - - 4.0 - - - 3.0 - - - - - - - - - - 320 - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - 0x95BBB57E - - - - - - - - - - - - - - - - - 0 - - - - - - - - 0xB1059189 - - - - - - - - - - - - - - - - - - 0xA93DE248 - - - - - - - - 0x0D2CFE11 - - - - - - - - 60.0 - - - - - - - - - 3 - - - 100.0 - - - 135.0 - - - - - - 3 - - - 100.0 - - - 135.0 - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + CameraHint + + + + 50 + + + 0.0 + + + 30725 + + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/CameraPitch.xml b/templates/mp3proto/Script/CameraPitch.xml index b49a8d9e..98ace941 100644 --- a/templates/mp3proto/Script/CameraPitch.xml +++ b/templates/mp3proto/Script/CameraPitch.xml @@ -1,24 +1,19 @@ - - CameraPitch - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + CameraPitch + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/CameraShaker.xml b/templates/mp3proto/Script/CameraShaker.xml index 591a7b02..323d97cf 100644 --- a/templates/mp3proto/Script/CameraShaker.xml +++ b/templates/mp3proto/Script/CameraShaker.xml @@ -1,41 +1,21 @@ - - CameraShaker - - - - - - 48 - - - 5.0 - - - 1.0 - - - - - - - - - - - - - - - - - - - - script/common/CameraShaker.TXTR - - 0.5 - enabled - enabled - - + + + CameraShaker + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3proto/Script/CannonBall.xml b/templates/mp3proto/Script/CannonBall.xml index 0ed4946e..11d036e8 100644 --- a/templates/mp3proto/Script/CannonBall.xml +++ b/templates/mp3proto/Script/CannonBall.xml @@ -1,22 +1,21 @@ - - CannonBall - - - - - - - - - - - - - - - - enabled - enabled - - + + + CannonBall + + + + + PART + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/mp3proto/Script/CinematicCamera.xml b/templates/mp3proto/Script/CinematicCamera.xml index dafbd4ed..b89c0eeb 100644 --- a/templates/mp3proto/Script/CinematicCamera.xml +++ b/templates/mp3proto/Script/CinematicCamera.xml @@ -1,71 +1,61 @@ - - CinematicCamera - - - - 0xC1A4F436 - - - - - - - - - - - - - - - - - 0x639D1F97 - - - - - - - - - 10.0 - - - 2132 - - - - - - - 0x26AD4A6B - - - 4 - - - - - - - - - - - - - - - - - - - - script/common/Camera.CMDL - - enabled - enabled - - + + + CinematicCamera + + + + 0xC1A4F436 + + + + + + + + + + + 0x639D1F97 + + + + + + + + + 10.0 + + + 2132 + + + + + + + 0x26AD4A6B + + + 4 + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/mp3proto/Script/ColorModulate.xml b/templates/mp3proto/Script/ColorModulate.xml index d65baf40..754e103f 100644 --- a/templates/mp3proto/Script/ColorModulate.xml +++ b/templates/mp3proto/Script/ColorModulate.xml @@ -1,70 +1,75 @@ - - ColorModulate - - - - 1.0, 1.0, 1.0, 0.0 - - - 1.0, 1.0, 1.0, 1.0 - - - 0 - - - 1.0 - - - 1.0 - - - false - - - false - - - true - - - true - - - false - - - false - - - true - - - false - - - false - - - false - - - - - - - - - - - - - - - script/common/ColorModulate.TXTR - - 0.5 - enabled - enabled - - + + + ColorModulate + + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + + 1.0 + 1.0 + 1.0 + + + + 0 + + + 1.0 + + + 1.0 + + + false + + + false + + + true + + + true + + + false + + + false + + + true + + + false + + + false + + + false + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3proto/Script/ConditionalRelay.xml b/templates/mp3proto/Script/ConditionalRelay.xml index 014b320b..dc19ddca 100644 --- a/templates/mp3proto/Script/ConditionalRelay.xml +++ b/templates/mp3proto/Script/ConditionalRelay.xml @@ -1,52 +1,48 @@ - - ConditionalRelay - - - - false - - - 7680 - - - - - - 0 - - - - - - - 0 - - - - - - - 0 - - - - - - - - - - - - - - - - script/common/ConditionalRelay.TXTR - - 0.5 - enabled - enabled - - + + + ConditionalRelay + + + + false + + + 7680 + + + + + + 0x0 + + + + + + + 0x0 + + + + + + + 0x0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3proto/Script/ContextSensitiveAction.xml b/templates/mp3proto/Script/ContextSensitiveAction.xml index 59edf22d..2d448879 100644 --- a/templates/mp3proto/Script/ContextSensitiveAction.xml +++ b/templates/mp3proto/Script/ContextSensitiveAction.xml @@ -1,26 +1,21 @@ - - ContextSensitiveAction - - - - -1 - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ContextSensitiveAction + + + + -1 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/ContextSensitiveActivator.xml b/templates/mp3proto/Script/ContextSensitiveActivator.xml index 9396e20e..2397fa0d 100644 --- a/templates/mp3proto/Script/ContextSensitiveActivator.xml +++ b/templates/mp3proto/Script/ContextSensitiveActivator.xml @@ -1,34 +1,29 @@ - - ContextSensitiveActivator - - - - 5.0 - - - 90.0 - - - 20.0 - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ContextSensitiveActivator + + + + 5.0 + + + 90.0 + + + 20.0 + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/ControlHint.xml b/templates/mp3proto/Script/ControlHint.xml index 9826fec3..aad635e9 100644 --- a/templates/mp3proto/Script/ControlHint.xml +++ b/templates/mp3proto/Script/ControlHint.xml @@ -1,51 +1,46 @@ - - ControlHint - - - - 10 - - - 0.0 - - - 0 - - - 0 - - - 0.0 - - - 0.0 - - - 0 - - - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ControlHint + + + + 10 + + + 0.0 + + + 0 + + + 0 + + + 0.0 + + + 0.0 + + + 0 + + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/ControllerAction.xml b/templates/mp3proto/Script/ControllerAction.xml index 5fbf358e..f30b0f05 100644 --- a/templates/mp3proto/Script/ControllerAction.xml +++ b/templates/mp3proto/Script/ControllerAction.xml @@ -1,26 +1,21 @@ - - ControllerAction - - - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ControllerAction + + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/Counter.xml b/templates/mp3proto/Script/Counter.xml index 4c1f2b6a..3b1a5adc 100644 --- a/templates/mp3proto/Script/Counter.xml +++ b/templates/mp3proto/Script/Counter.xml @@ -1,70 +1,33 @@ - - Counter - - - - 0 - - - 4 - - - false - - - false - - - - - 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - 9 - - - 10 - - - - - - - - - - - - - - - - script/common/Counter.TXTR - - 0.5 - enabled - enabled - - + + + Counter + + + + 0 + + + 4 + + + false + + + false + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3proto/Script/CoverPoint.xml b/templates/mp3proto/Script/CoverPoint.xml index 98ba9300..ecb9f4a5 100644 --- a/templates/mp3proto/Script/CoverPoint.xml +++ b/templates/mp3proto/Script/CoverPoint.xml @@ -1,43 +1,38 @@ - - CoverPoint - - - - 1 - - - true - - - 180.0 - - - 90.0 - - - 5.0 - - - 500.0 - - - 10.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + CoverPoint + + + + 1 + + + true + + + 180.0 + + + 90.0 + + + 5.0 + + + 500.0 + + + 10.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/CrossAreaRelay.xml b/templates/mp3proto/Script/CrossAreaRelay.xml index 3ada6089..3482d30b 100644 --- a/templates/mp3proto/Script/CrossAreaRelay.xml +++ b/templates/mp3proto/Script/CrossAreaRelay.xml @@ -1,23 +1,18 @@ - - CrossAreaRelay - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + CrossAreaRelay + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/DamageActor.xml b/templates/mp3proto/Script/DamageActor.xml index 55a4adb9..40f9e589 100644 --- a/templates/mp3proto/Script/DamageActor.xml +++ b/templates/mp3proto/Script/DamageActor.xml @@ -1,23 +1,18 @@ - - DamageActor - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + DamageActor + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/DamageableTrigger.xml b/templates/mp3proto/Script/DamageableTrigger.xml index 8cb30641..fbcb1c3f 100644 --- a/templates/mp3proto/Script/DamageableTrigger.xml +++ b/templates/mp3proto/Script/DamageableTrigger.xml @@ -1,36 +1,33 @@ - - DamageableTrigger - - - - - - false - - - false - - - false - - - - - - - - - - - - - - - script/common/DamageableTrigger.TXTR - - enabled - volume - - - + + + DamageableTrigger + + + + + + false + + + false + + + false + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + ScaleVolume + AxisAlignedBoxShape + diff --git a/templates/mp3proto/Script/DamageableTriggerOrientated.xml b/templates/mp3proto/Script/DamageableTriggerOrientated.xml index 53e8851d..5d71752f 100644 --- a/templates/mp3proto/Script/DamageableTriggerOrientated.xml +++ b/templates/mp3proto/Script/DamageableTriggerOrientated.xml @@ -1,34 +1,30 @@ - - DamageableTriggerOrientated - - - - - - false - - - false - - - false - - - - - - - - - - - - - - - enabled - volume - - - + + + DamageableTriggerOrientated + + + + + + false + + + false + + + false + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + BoxShape + diff --git a/templates/mp3proto/Script/DarkSamus.xml b/templates/mp3proto/Script/DarkSamus.xml index b896c5fa..05064a78 100644 --- a/templates/mp3proto/Script/DarkSamus.xml +++ b/templates/mp3proto/Script/DarkSamus.xml @@ -1,50 +1,23 @@ - - DarkSamus - - - - - - - - -1.0 - - - -1.0 - - - -1.0 - - - -1.0 - - - -1.0 - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + DarkSamus + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/Debris.xml b/templates/mp3proto/Script/Debris.xml index d630c357..740998a9 100644 --- a/templates/mp3proto/Script/Debris.xml +++ b/templates/mp3proto/Script/Debris.xml @@ -1,188 +1,28 @@ - - Debris - - - - - false - - - - - - - - 180.0 - - - 180.0 - - - 0.0, 0.0, 1.0 - - - 0.0, 0.0, 0.0 - - - true - - - 5.0 - - - 15.0 - - - -1.0, -1.0, -1.0 - - - 1.0, 1.0, 1.0 - - - 2.0 - - - 3.0 - - - 0.0 - - - 10.0 - - - 80.0 - - - 1.0, 1.0, 1.0, 0.0 - - - 1.0, 1.0, 1.0, 1.0 - - - 1.0, 1.0, 1.0, 0.0 - - - 80.0 - - - 1.0, 1.0, 1.0 - - - 0.375 - - - 0.1 - - - 25.0 - - - 1.0 - - - - 0.0, 0.0, 0.0 - - - - 1 - - - 1.0 - - - 1.0 - - - 0.1 - - - 0.1 - - - 0.1 - - - 0.1 - - - 0.1 - - - - 1.0, 1.0, 1.0 - - - false - - - false - - - true - - - - - 1.0, 1.0, 1.0 - - - false - - - false - - - true - - - - true - - - false - - - false - - - false - - - true - - - false - - - false - - - false - - - true - - - - - - - - - - - - - - - - - 0x8A1C821D:0xC27FFA8F - - enabled - enabled - - + + + Debris + + + + + false + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/DefenseMechanoid.xml b/templates/mp3proto/Script/DefenseMechanoid.xml index 1e79dc61..4d3063b7 100644 --- a/templates/mp3proto/Script/DefenseMechanoid.xml +++ b/templates/mp3proto/Script/DefenseMechanoid.xml @@ -1,123 +1,33 @@ - - DefenseMechanoid - - - - - - - - 2.0 - - - - - - - - - - true - - - true - - - - - 100.0 - - - - 10.0 - - - 5.0 - - - - 100.0 - - - - - - - - 30.0 - - - 34.0 - - - 33.0 - - - 33.0 - - - 15.0 - - - 25.0 - - - 1.5 - - - 3.0 - - - 10.0 - - - 20.0 - - - 7.0 - - - 12.0 - - - 4.0 - - - 10.0 - - - 50.0 - - - 10.0 - - - - - - - 25.0 - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + DefenseMechanoid + + + + + + + + 2.0 + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/DestructibleBarrier.xml b/templates/mp3proto/Script/DestructibleBarrier.xml index 46dbc73f..761919f3 100644 --- a/templates/mp3proto/Script/DestructibleBarrier.xml +++ b/templates/mp3proto/Script/DestructibleBarrier.xml @@ -1,76 +1,75 @@ - - DestructibleBarrier - - - - 2 - - - 5 - - - 1 - - - 1.5, 0.2, 1.0 - - - - - - - - - - 4 - - - - 4 - - - - 1 - - - - 1 - - - - - - - - 50.0 - - - 10.0 - - - 10.0 - - - false - - - - - - - - - - - - - - - - - - enabled - enabled - - + + + DestructibleBarrier + + + + 2 + + + 5 + + + 1 + + + + 1.5 + 0.2 + 1.0 + + + + + + + + + + + 4 + + + + 4 + + + + 1 + + + + 1 + + + + + + + + 50.0 + + + 10.0 + + + 10.0 + + + false + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + diff --git a/templates/mp3proto/Script/DistanceFog.xml b/templates/mp3proto/Script/DistanceFog.xml index 6312a0f6..56e3a318 100644 --- a/templates/mp3proto/Script/DistanceFog.xml +++ b/templates/mp3proto/Script/DistanceFog.xml @@ -1,44 +1,45 @@ - - DistanceFog - - - - - false - - - - - 0 - - - 0.0, 0.0, 0.0, 0.0 - - - - 0.0 - - - - false - - - - - - - - - - - - - - script/common/DistanceFog.TXTR - - 0.5 - enabled - enabled - - + + + DistanceFog + + + + + false + + + + + 0 + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + 0.0 + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3proto/Script/Dock.xml b/templates/mp3proto/Script/Dock.xml index 38d98633..ff1b3d92 100644 --- a/templates/mp3proto/Script/Dock.xml +++ b/templates/mp3proto/Script/Dock.xml @@ -1,39 +1,36 @@ - - Dock - - - - 0 - - - 0 - - - false - - - true - - - true - - - - - - - - - - - - - - script/common/Dock.TXTR - - enabled - volume - - - + + + Dock + + + + 0 + + + 0 + + + false + + + true + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + ScaleVolume + AxisAlignedBoxShape + diff --git a/templates/mp3proto/Script/Door.xml b/templates/mp3proto/Script/Door.xml index a651074f..f57e9e55 100644 --- a/templates/mp3proto/Script/Door.xml +++ b/templates/mp3proto/Script/Door.xml @@ -1,84 +1,108 @@ - - Door - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - false - - - - - true - - - true - - - - - - 0.0, 1.0, 1.0, 1.0 - - - - - 0.0, 0.0, 0.0 - - - false - - - false - - - false - - - 0.5 - - - 0.5 - - - 0.5 - - - 0.5 - - - 0.5 - - - false - - - false - - - - - - - - - - - - - - - - 0x4044D9E5 - 0xAE5B2114 - - enabled - enabled - - + + + Door + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + false + + + + + true + + + true + + + + + CMDL + + + + + CMDL + + + + + 0.0 + 1.0 + 1.0 + + + + + TXTR + + + + + + 0.0 + 0.0 + 0.0 + + + + false + + + false + + + false + + + 0.5 + + + 0.5 + + + 0.5 + + + 0.5 + + + 0.5 + + + false + + + false + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3proto/Script/DynamicLight.xml b/templates/mp3proto/Script/DynamicLight.xml index f0da6e97..3801fd57 100644 --- a/templates/mp3proto/Script/DynamicLight.xml +++ b/templates/mp3proto/Script/DynamicLight.xml @@ -1,105 +1,47 @@ - - DynamicLight - - - - 2 - - - true - - - true - - - true - - - true - - - true - - - 1.0, 1.0, 1.0, 1.0 - - - - - - 0.0 - - - false - - - - - - - 0 - - - - 0.0 - - - false - - - - - - - - 0.0 - - - false - - - - - - - false - - - - - 10.0 - - - - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - - false - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + DynamicLight + + + + 2 + + + true + + + true + + + true + + + true + + + true + + + + 1.0 + 1.0 + 1.0 + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/Effect.xml b/templates/mp3proto/Script/Effect.xml index 3bb5128d..fe9a5a00 100644 --- a/templates/mp3proto/Script/Effect.xml +++ b/templates/mp3proto/Script/Effect.xml @@ -1,93 +1,95 @@ - - Effect - - - - - true - - - false - - - false - - - 5.0 - - - 0.5 - - - 0.2 - - - 0.1 - - - false - - - 20.0 - - - 30.0 - - - 0.0 - - - 5.0 - - - 0.0 - - - true - - - true - - - true - - - false - - - 0 - - - - false - - - - - 10.0 - - - false - - - false - - - - - - - - - - - - - - script/common/Effect.TXTR - - enabled - enabled - - + + + Effect + + + + + PART + ELSC + SWHC + + + + true + + + false + + + false + + + 5.0 + + + 0.5 + + + 0.2 + + + 0.1 + + + false + + + 20.0 + + + 30.0 + + + 0.0 + + + 5.0 + + + 0.0 + + + true + + + true + + + true + + + false + + + 0 + + + + false + + + + + 10.0 + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/mp3proto/Script/EffectRepulsor.xml b/templates/mp3proto/Script/EffectRepulsor.xml index 289a5801..98537c50 100644 --- a/templates/mp3proto/Script/EffectRepulsor.xml +++ b/templates/mp3proto/Script/EffectRepulsor.xml @@ -1,39 +1,38 @@ - - EffectRepulsor - - - - 0xFB73F2B8 - - - - 0.1 - - - 0.1 - - - - - 1.0 - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + EffectRepulsor + + + + 0xFB73F2B8 + + + + PART + + + + 0.1 + + + 0.1 + + + + + 1.0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/ElectroMagneticPulse.xml b/templates/mp3proto/Script/ElectroMagneticPulse.xml index e4c48013..5d4aff3c 100644 --- a/templates/mp3proto/Script/ElectroMagneticPulse.xml +++ b/templates/mp3proto/Script/ElectroMagneticPulse.xml @@ -1,50 +1,49 @@ - - ElectroMagneticPulse - - - - - false - - - - - 0.1 - - - 34.0 - - - 1.333 - - - 1.0 - - - 3.0 - - - 0.4 - - - 0.8 - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ElectroMagneticPulse + + + + + false + + + + + 0.1 + + + 34.0 + + + 1.3329999 + + + 1.0 + + + 3.0 + + + 0.40000001 + + + 0.80000001 + + + + PART + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/EnvFxDensityController.xml b/templates/mp3proto/Script/EnvFxDensityController.xml index 9bc9d147..823b83d9 100644 --- a/templates/mp3proto/Script/EnvFxDensityController.xml +++ b/templates/mp3proto/Script/EnvFxDensityController.xml @@ -1,28 +1,23 @@ - - EnvFxDensityController - - - - 0.5 - - - 500 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + EnvFxDensityController + + + + 0.5 + + + 500 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/EyePod.xml b/templates/mp3proto/Script/EyePod.xml index bf330334..5482a756 100644 --- a/templates/mp3proto/Script/EyePod.xml +++ b/templates/mp3proto/Script/EyePod.xml @@ -1,132 +1,43 @@ - - EyePod - - - - - - 1.0 - - - 1.0 - - - 60.0 - - - 1.0 - - - 1.0 - - - 1.0 - - - 0.167 - - - 0.6 - - - 1.5 - - - 0.6 - - - 1.5 - - - false - - - - - - - 40.0 - - - 5.0 - - - 2.0 - - - 5.0 - - - 1 - - - 4 - - - 0.25 - - - 0.5 - - - 0.25 - - - 0.5 - - - 5.0 - - - 7.0 - - - - - - - 5.0 - - - - - - - - - 100.0 - - - 2.0 - - - - - 1.0 - - - 100.0 - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + EyePod + + + + + + + + + + 100.0 + + + 2.0 + + + + + 1.0 + + + 100.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/FalsePerspective.xml b/templates/mp3proto/Script/FalsePerspective.xml index ad8ebbf3..813288c0 100644 --- a/templates/mp3proto/Script/FalsePerspective.xml +++ b/templates/mp3proto/Script/FalsePerspective.xml @@ -1,31 +1,26 @@ - - FalsePerspective - - - - 0.0 - - - 20.0 - - - 8192.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + FalsePerspective + + + + 0.0 + + + 20.0 + + + 8192.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/FargullHatcher.xml b/templates/mp3proto/Script/FargullHatcher.xml index 613bfedf..3ab93d92 100644 --- a/templates/mp3proto/Script/FargullHatcher.xml +++ b/templates/mp3proto/Script/FargullHatcher.xml @@ -1,81 +1,42 @@ - - FargullHatcher - - - - - - false - - - 20.0 - - - 20.0 - - - 20.0 - - - - - 1.0 - - - 5 - - - 10.0 - - - 20.0 - - - 0.5 - - - 2.0 - - - - - - - - - 100.0 - - - 2.0 - - - - - 1.0 - - - 100.0 - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + FargullHatcher + + + + + + + + + 100.0 + + + 2.0 + + + + + 1.0 + + + 100.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/FargullHatcherSwarm.xml b/templates/mp3proto/Script/FargullHatcherSwarm.xml index c713b81f..c45b4a61 100644 --- a/templates/mp3proto/Script/FargullHatcherSwarm.xml +++ b/templates/mp3proto/Script/FargullHatcherSwarm.xml @@ -1,41 +1,28 @@ - - FargullHatcherSwarm - - - - - - true - - - - - - - 4.0 - - - 25.0 - - - - - - - - - - - - - - - - - 0xA244C9D8 - - enabled - enabled - - + + + FargullHatcherSwarm + + + + + + true + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/FishCloud.xml b/templates/mp3proto/Script/FishCloud.xml index 3ba109fa..c41034f9 100644 --- a/templates/mp3proto/Script/FishCloud.xml +++ b/templates/mp3proto/Script/FishCloud.xml @@ -1,142 +1,137 @@ - - FishCloud - - - - - - 20 - - - 3.0 - - - 0.0 - - - 2.0 - - - 0.4 - - - 0.9 - - - 1.0 - - - 1.0 - - - 0.4 - - - 0.2 - - - 0.0 - - - 0.0 - - - 0.0 - - - 30.0 - - - 0.1 - - - 0.1 - - - 0.5 - - - 3 - - - 1.0, 1.0, 1.0, 1.0 - - - false - - - 0.0 - - - 0.0 - - - 0.0 - - - - 0 - - - - 0 - - - - 0 - - - - 0 - - - - true - - - true - - - - - 2.0 - - - 30.0 - - - 1.0 - - - 2.0 - - - - 0 - - - 0.0 - - - - - - - - - - - - - - - - 0xA244C9D8 - 0x7990A3B6 - - enabled - volume - - - + + + FishCloud + + + + + CMDL + + + + + 20 + + + 3.0 + + + 0.0 + + + 2.0 + + + 0.40000001 + + + 0.89999998 + + + 1.0 + + + 1.0 + + + 0.40000001 + + + 0.2 + + + 0.0 + + + 0.0 + + + 0.0 + + + 30.0 + + + 0.1 + + + 0.1 + + + 0.5 + + + 3 + + + + 1.0 + 1.0 + 1.0 + + + + false + + + 0.0 + + + 0.0 + + + 0.0 + + + + PART + + + + 0 + + + + PART + + + + 0 + + + + 0 + + + + 0 + + + + CAUD + + + + true + + + true + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + + ScaleVolume + BoxShape + diff --git a/templates/mp3proto/Script/FishCloudModifier.xml b/templates/mp3proto/Script/FishCloudModifier.xml index ba804819..cd17c101 100644 --- a/templates/mp3proto/Script/FishCloudModifier.xml +++ b/templates/mp3proto/Script/FishCloudModifier.xml @@ -1,34 +1,29 @@ - - FishCloudModifier - - - - false - - - false - - - 8.0 - - - 0.4 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + FishCloudModifier + + + + false + + + false + + + 8.0 + + + 0.40000001 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/FlyerSwarm.xml b/templates/mp3proto/Script/FlyerSwarm.xml index ab255131..b61042d6 100644 --- a/templates/mp3proto/Script/FlyerSwarm.xml +++ b/templates/mp3proto/Script/FlyerSwarm.xml @@ -1,32 +1,29 @@ - - FlyerSwarm - - - - - - true - - - - - - - - - - - - - - - - - 0xA244C9D8 - - enabled - volume - - - + + + FlyerSwarm + + + + + + true + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + ScaleVolume + BoxShape + diff --git a/templates/mp3proto/Script/FlyingPirate.xml b/templates/mp3proto/Script/FlyingPirate.xml index 67891e6a..ca5e29f7 100644 --- a/templates/mp3proto/Script/FlyingPirate.xml +++ b/templates/mp3proto/Script/FlyingPirate.xml @@ -1,199 +1,41 @@ - - FlyingPirate - - - - - - 360.0 - - - - - - - - false - - - true - - - false - - - false - - - 10.0 - - - 50.0 - - - 2.0 - - - 100.0 - - - 0 - - - - - 15.0 - - - 30.0 - - - 10.0 - - - 2.5 - - - 90.0 - - - 20.0 - - - 30.0 - - - 80.0 - - - 20.0 - - - 30.0 - - - 30.0 - - - 3.0 - - - - - - - - 50.0 - - - 3.0 - - - 1.0 - - - 0.1 - - - - - - - - - - 10.0 - - - 20.0 - - - 50.0 - - - 3.0 - - - 1.0 - - - - - - - - false - - - - - 100.0 - - - 5.0 - - - - - - - - - - - - - - - - - - - 120.0 - - - 5.0 - - - - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0xB327E803:0x95C8719D - 0xB327E803:0xA0705491 - 0xB327E803:0x2263E77F:0x2245A396 - 0xB327E803:0x70B96A25:0x68002BD7 - 0xB327E803:0x70B96A25:0xAD315C7C - 0xB327E803:0x70B96A25:0x042A25ED - 0xB327E803:0x70B96A25:0xE39B8B1E - 0xB327E803:0x70B96A25:0x356C166A - 0xB327E803:0x70B96A25:0x1CA4A298 - 0xB327E803:0x70B96A25:0xDF44507E - 0xB327E803:0x70B96A25:0xD2C9A656 - 0xB327E803:0x70B96A25:0xD4E26A8E - - enabled - enabled - - + + + FlyingPirate + + + + + + 360.0 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + + + + + + + diff --git a/templates/mp3proto/Script/FogOverlay.xml b/templates/mp3proto/Script/FogOverlay.xml index b212c63c..dfac3e3e 100644 --- a/templates/mp3proto/Script/FogOverlay.xml +++ b/templates/mp3proto/Script/FogOverlay.xml @@ -1,67 +1,71 @@ - - FogOverlay - - - - 1.0 - - - 1.0 - - - 1.0 - - - false - - - 1.0, 1.0, 1.0, 0.0 - - - 0.5 - - - 0.2 - - - 0.1 - - - 0.1 - - - 1.0 - - - 1.0 - - - 0.0, 0.0, 0.0 - - - 0.1 - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + FogOverlay + + + + 1.0 + + + 1.0 + + + 1.0 + + + false + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + 0.5 + + + 0.2 + + + 0.1 + + + 0.1 + + + 1.0 + + + 1.0 + + + + 0.0 + 0.0 + 0.0 + + + + 0.1 + + + 1.0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/FogVolume.xml b/templates/mp3proto/Script/FogVolume.xml index 6405b313..06160483 100644 --- a/templates/mp3proto/Script/FogVolume.xml +++ b/templates/mp3proto/Script/FogVolume.xml @@ -1,40 +1,43 @@ - - FogVolume - - - - - - - 2.0, 2.0, 2.0 - - - - - - - 0.0 - - - 1.0 - - - 1.0, 1.0, 1.0, 1.0 - - - - - - - - - - - - - - enabled - enabled - - + + + FogVolume + + + + + + + + 2.0 + 2.0 + 2.0 + + + + + + + + 0.0 + + + 1.0 + + + + 1.0 + 1.0 + 1.0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/mp3proto/Script/Friendly.xml b/templates/mp3proto/Script/Friendly.xml index 049f67d9..fa0a5471 100644 --- a/templates/mp3proto/Script/Friendly.xml +++ b/templates/mp3proto/Script/Friendly.xml @@ -1,65 +1,55 @@ - - Friendly - - - - - - - 1.0 - - - 1 - - - never - - - never - - - never - - - never - - - 100.0 - - - never - - - never - - - - - - - - true - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0xBF9BA6CC:0x50340852 - - enabled - enabled - - + + + Friendly + + + + + + + 1.0 + + + 1 + + + Never + + + Never + + + Never + + + Never + + + 100.0 + + + Never + + + Never + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3proto/Script/FrontEndDataNetwork.xml b/templates/mp3proto/Script/FrontEndDataNetwork.xml index 8bc4048c..2496843e 100644 --- a/templates/mp3proto/Script/FrontEndDataNetwork.xml +++ b/templates/mp3proto/Script/FrontEndDataNetwork.xml @@ -1,86 +1,98 @@ - - FrontEndDataNetwork - - - - false - - - false - - - true - - - true - - - false - - - false - - - true - - - false - - - 8.0 - - - - - - 1.0, 1.0, 1.0, 1.0 - - - 0.498039, 0.498039, 0.498039, 0.74902 - - - 0.8, 0.8, 0.8, 1.0 - - - 0.247059, 0.247059, 0.247059, 1.0 - - - -1 - - - - 0.75 - - - - 0.75 - - - - 0.75 - - - - 0.75 - - - 127 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + FrontEndDataNetwork + + + + false + + + false + + + true + + + true + + + false + + + false + + + true + + + false + + + 8.0 + + + + + + + 1.0 + 1.0 + 1.0 + + + + + 0.49803901 + 0.49803901 + 0.49803901 + 0.74901998 + + + + + 0.80000001 + 0.80000001 + 0.80000001 + + + + + 0.247059 + 0.247059 + 0.247059 + + + + -1 + + + + 0.75 + + + + 0.75 + + + + 0.75 + + + + 0.75 + + + 127 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/GeneratedObjectDeleter.xml b/templates/mp3proto/Script/GeneratedObjectDeleter.xml index b5b048a6..8d64f71e 100644 --- a/templates/mp3proto/Script/GeneratedObjectDeleter.xml +++ b/templates/mp3proto/Script/GeneratedObjectDeleter.xml @@ -1,35 +1,24 @@ - - GeneratedObjectDeleter - - - - - false - - - - - - - true - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + GeneratedObjectDeleter + + + + + false + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/Generator.xml b/templates/mp3proto/Script/Generator.xml index 985f54a8..2fa0c53b 100644 --- a/templates/mp3proto/Script/Generator.xml +++ b/templates/mp3proto/Script/Generator.xml @@ -1,51 +1,51 @@ - - Generator - - - - 1 - - - 1 - - - false - - - false - - - false - - - false - - - 0.0, 0.0, 0.0 - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - script/common/Generator.TXTR - - 0.5 - enabled - enabled - - + + + Generator + + + + 1 + + + 1 + + + false + + + false + + + false + + + false + + + + 0.0 + 0.0 + 0.0 + + + + 1.0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3proto/Script/GragnolFlyer.xml b/templates/mp3proto/Script/GragnolFlyer.xml index 4c5d685b..c337ded1 100644 --- a/templates/mp3proto/Script/GragnolFlyer.xml +++ b/templates/mp3proto/Script/GragnolFlyer.xml @@ -1,200 +1,39 @@ - - GragnolFlyer - - - - - - - - 100.0 - - - 2.0 - - - - - 1 - - - - - - - - 0xF3CB1D35 - - - - - - - - 0.0, 0.0, 0.0 - - - 20.0 - - - 120.0 - - - - - - -1.0 - - - 5.0 - - - - - - - 5.0 - - - - - 50.0 - - - - - 10.0 - - - 2.0 - - - 2.0 - - - 5.0 - - - 5.0 - - - 2.0 - - - 10.0 - - - - - 1 - - - 10.0 - - - false - - - - - 90.0 - - - 90.0 - - - false - - - false - - - - - - - 90.0 - - - 90.0 - - - false - - - false - - - - - - - 90.0 - - - 90.0 - - - false - - - false - - - - - - - 90.0 - - - 90.0 - - - false - - - false - - - - - - - 90.0 - - - 90.0 - - - false - - - false - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + GragnolFlyer + + + + + + + + 100.0 + + + 2.0 + + + + + 1 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/GrapplePoint.xml b/templates/mp3proto/Script/GrapplePoint.xml index cce40dad..ea9b5bba 100644 --- a/templates/mp3proto/Script/GrapplePoint.xml +++ b/templates/mp3proto/Script/GrapplePoint.xml @@ -1,44 +1,22 @@ - - GrapplePoint - - - - - - 5.0 - - - 20.0 - - - 180.0 - - - false - - - false - - - - - - - - - - - - - - - - - script/common/GrapplePoint.TXTR - - 0.5 - enabled - enabled - - + + + GrapplePoint + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3proto/Script/GuiMenu.xml b/templates/mp3proto/Script/GuiMenu.xml index bb77093f..6d3179b7 100644 --- a/templates/mp3proto/Script/GuiMenu.xml +++ b/templates/mp3proto/Script/GuiMenu.xml @@ -1,36 +1,31 @@ - - GuiMenu - - - - - false - - - - - - 0 - - - true - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + GuiMenu + + + + + false + + + + + + 0 + + + true + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/GuiPlayerJoinManager.xml b/templates/mp3proto/Script/GuiPlayerJoinManager.xml index 263a17e5..55547b7a 100644 --- a/templates/mp3proto/Script/GuiPlayerJoinManager.xml +++ b/templates/mp3proto/Script/GuiPlayerJoinManager.xml @@ -1,28 +1,23 @@ - - GuiPlayerJoinManager - - - - - false - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + GuiPlayerJoinManager + + + + + false + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/GuiScreen.xml b/templates/mp3proto/Script/GuiScreen.xml index b21f6628..c5b783c2 100644 --- a/templates/mp3proto/Script/GuiScreen.xml +++ b/templates/mp3proto/Script/GuiScreen.xml @@ -1,26 +1,25 @@ - - GuiScreen - - - - 0 - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + GuiScreen + + + + 0 + + + + STRG + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/GuiSlider.xml b/templates/mp3proto/Script/GuiSlider.xml index f200aef6..b1b2e344 100644 --- a/templates/mp3proto/Script/GuiSlider.xml +++ b/templates/mp3proto/Script/GuiSlider.xml @@ -1,45 +1,40 @@ - - GuiSlider - - - - - false - - - - - - 0.0 - - - 255.0 - - - 1.0 - - - 1.0 - - - - 127 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + GuiSlider + + + + + false + + + + + + 0.0 + + + 255.0 + + + 1.0 + + + 1.0 + + + + 127 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/GuiWidget.xml b/templates/mp3proto/Script/GuiWidget.xml index 723d6a7f..ca4269c7 100644 --- a/templates/mp3proto/Script/GuiWidget.xml +++ b/templates/mp3proto/Script/GuiWidget.xml @@ -1,29 +1,24 @@ - - GuiWidget - - - - - false - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + GuiWidget + + + + + false + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/GunTurretBase.xml b/templates/mp3proto/Script/GunTurretBase.xml index e66cbd9c..628c2fd7 100644 --- a/templates/mp3proto/Script/GunTurretBase.xml +++ b/templates/mp3proto/Script/GunTurretBase.xml @@ -1,83 +1,54 @@ - - GunTurretBase - - - - - - false - - - false - - - 2.0 - - - 5.0 - - - 1.0 - - - 10.0 - - - 10.0 - - - - - - - - - - 100.0 - - - 2.0 - - - - - 1.0 - - - never - - - never - - - 100.0 - - - never - - - never - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + GunTurretBase + + + + + + + + + 100.0 + + + 2.0 + + + + + 1.0 + + + Never + + + Never + + + 100.0 + + + Never + + + Never + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/GunTurretTop.xml b/templates/mp3proto/Script/GunTurretTop.xml index 7dd0c391..4ce96124 100644 --- a/templates/mp3proto/Script/GunTurretTop.xml +++ b/templates/mp3proto/Script/GunTurretTop.xml @@ -1,103 +1,54 @@ - - GunTurretTop - - - - - - false - - - 180.0 - - - 10.0 - - - 1.0 - - - 3.0 - - - 1.0 - - - 1.0 - - - 1 - - - 5 - - - - - - 10.0 - - - 5.0 - - - - 1.0 - - - - - - - - - - - 100.0 - - - 2.0 - - - - - 1.0 - - - never - - - never - - - 100.0 - - - never - - - never - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + GunTurretTop + + + + + + + + + 100.0 + + + 2.0 + + + + + 1.0 + + + Never + + + Never + + + 100.0 + + + Never + + + Never + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/HUDHint.xml b/templates/mp3proto/Script/HUDHint.xml index a9fb4140..c71fc582 100644 --- a/templates/mp3proto/Script/HUDHint.xml +++ b/templates/mp3proto/Script/HUDHint.xml @@ -1,41 +1,40 @@ - - HUDHint - - - - - 15.0 - - - 16.0 - - - 1.0 - - - 0.0 - - - 0 - - - 15 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + HUDHint + + + + + TXTR + + + + 15.0 + + + 16.0 + + + 1.0 + + + 0.0 + + + 0 + + + 15 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/HUDMemo.xml b/templates/mp3proto/Script/HUDMemo.xml index e8c6d6a4..d8cddc63 100644 --- a/templates/mp3proto/Script/HUDMemo.xml +++ b/templates/mp3proto/Script/HUDMemo.xml @@ -1,52 +1,48 @@ - - HUDMemo - - - - 3.0 - - - true - - - true - - - true - - - true - - - true - - - true - - - false - - - 0 - - - - - - - - - - - - - - - script/common/HUDMemo.TXTR - - 0.5 - enabled - enabled - - + + + HUDMemo + + + + 3.0 + + + true + + + true + + + true + + + true + + + true + + + true + + + false + + + 0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3proto/Script/Korakk.xml b/templates/mp3proto/Script/Korakk.xml index 4ca64ad8..6ac52955 100644 --- a/templates/mp3proto/Script/Korakk.xml +++ b/templates/mp3proto/Script/Korakk.xml @@ -1,61 +1,29 @@ - - Korakk - - - - - - 1.0 - - - - - - - - - - - - - - - - 25.0 - - - - - - - - - - - - - 5.0 - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + Korakk + + + + + + + 5.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/KorbaMaw.xml b/templates/mp3proto/Script/KorbaMaw.xml index 3ce00a00..2c2196d6 100644 --- a/templates/mp3proto/Script/KorbaMaw.xml +++ b/templates/mp3proto/Script/KorbaMaw.xml @@ -1,68 +1,51 @@ - - KorbaMaw - - - - - - - 0.5 - - - 3.0 - - - 2.8 - - - - - - - - - 100.0 - - - 2.0 - - - - - 0.5 - - - 0.5 - - - 1.0 - - - 1 - - - 100.0 - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + KorbaMaw + + + + + + + + + 100.0 + + + 2.0 + + + + + 0.5 + + + 0.5 + + + 1.0 + + + 1 + + + 100.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/KorbaSnatcherSwarm.xml b/templates/mp3proto/Script/KorbaSnatcherSwarm.xml index 97ede48e..90b12373 100644 --- a/templates/mp3proto/Script/KorbaSnatcherSwarm.xml +++ b/templates/mp3proto/Script/KorbaSnatcherSwarm.xml @@ -1,76 +1,39 @@ - - KorbaSnatcherSwarm - - - - - - 0.8 - - - 5 - - - 8 - - - 1.0 - - - 2.5 - - - 2000.0 - - - 0.1 - - - 0.3 - - - 1.0 - - - 30.0 - - - - - - - true - - - - 0.45 - - - -1 - - - -1 - - - -1 - - - - - - - - - - - - - - - 0xA244C9D8 - - enabled - enabled - - + + + KorbaSnatcherSwarm + + + + + + + true + + + + 0.44999999 + + + -1 + + + -1 + + + -1 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/LUAScript.xml b/templates/mp3proto/Script/LUAScript.xml index 607591c3..d15a9eb2 100644 --- a/templates/mp3proto/Script/LUAScript.xml +++ b/templates/mp3proto/Script/LUAScript.xml @@ -1,26 +1,21 @@ - - LUAScript - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + LUAScript + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/LayerController.xml b/templates/mp3proto/Script/LayerController.xml index 2e198186..3cbb4244 100644 --- a/templates/mp3proto/Script/LayerController.xml +++ b/templates/mp3proto/Script/LayerController.xml @@ -1,26 +1,21 @@ - - LayerController - - - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + LayerController + + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/Mantha.xml b/templates/mp3proto/Script/Mantha.xml index 01212136..c6d17320 100644 --- a/templates/mp3proto/Script/Mantha.xml +++ b/templates/mp3proto/Script/Mantha.xml @@ -1,47 +1,23 @@ - - Mantha - - - - - - - - 1.0 - - - 1.0 - - - 30.0 - - - - 2.5 - - - true - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + Mantha + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/MemoryRelay.xml b/templates/mp3proto/Script/MemoryRelay.xml index 41e88c79..e93bdfef 100644 --- a/templates/mp3proto/Script/MemoryRelay.xml +++ b/templates/mp3proto/Script/MemoryRelay.xml @@ -1,30 +1,26 @@ - - MemoryRelay - - - - false - - - false - - - - - - - - - - - - - - script/common/MemoryRelay.TXTR - - 0.5 - enabled - enabled - - + + + MemoryRelay + + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3proto/Script/MetroidHatcher.xml b/templates/mp3proto/Script/MetroidHatcher.xml index 45d96fff..e4e35d70 100644 --- a/templates/mp3proto/Script/MetroidHatcher.xml +++ b/templates/mp3proto/Script/MetroidHatcher.xml @@ -1,120 +1,42 @@ - - MetroidHatcher - - - - - - 20.0 - - - 40.0 - - - 10.0 - - - - 5.0 - - - 5.0 - - - 5.0 - - - 5.0 - - - 50.0 - - - - 0.5 - - - 60.0 - - - 20.0 - - - 0.5 - - - 1.0 - - - 5.0 - - - 5.0 - - - 5.0 - - - 5.0 - - - 5.0 - - - 5.0 - - - 5.0 - - - 20.0 - - - 10.0 - - - 360.0 - - - - - - - - - 100.0 - - - 2.0 - - - - - 1.0 - - - 100.0 - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + MetroidHatcher + + + + + + + + + 100.0 + + + 2.0 + + + + + 1.0 + + + 100.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/MetroidHopper.xml b/templates/mp3proto/Script/MetroidHopper.xml index 45a93a3a..391d5c87 100644 --- a/templates/mp3proto/Script/MetroidHopper.xml +++ b/templates/mp3proto/Script/MetroidHopper.xml @@ -1,73 +1,23 @@ - - MetroidHopper - - - - - - - - false - - - 1.0 - - - 30.0 - - - 8.0 - - - 11.0 - - - 0.5 - - - - - 20.0 - - - 20.0 - - - - - - 0xFC1B1B4F - - - - - - - - - - - false - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + MetroidHopper + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/MysteryFlyer.xml b/templates/mp3proto/Script/MysteryFlyer.xml index 77780012..95368e18 100644 --- a/templates/mp3proto/Script/MysteryFlyer.xml +++ b/templates/mp3proto/Script/MysteryFlyer.xml @@ -1,66 +1,33 @@ - - MysteryFlyer - - - - - - - - 2.0 - - - - - - - - - - - - - 0xFFFFFFFF - - - 5.0 - - - - - 10.0 - - - 2.0 - - - 5.0 - - - true - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + MysteryFlyer + + + + + + + + 2.0 + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/OptionalAreaAsset.xml b/templates/mp3proto/Script/OptionalAreaAsset.xml index 0423f572..51ae6e04 100644 --- a/templates/mp3proto/Script/OptionalAreaAsset.xml +++ b/templates/mp3proto/Script/OptionalAreaAsset.xml @@ -1,30 +1,19 @@ - - OptionalAreaAsset - - - - - - 0 - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + OptionalAreaAsset + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/PTCNoseTurret.xml b/templates/mp3proto/Script/PTCNoseTurret.xml index 1389efc3..fb492907 100644 --- a/templates/mp3proto/Script/PTCNoseTurret.xml +++ b/templates/mp3proto/Script/PTCNoseTurret.xml @@ -1,121 +1,57 @@ - - PTCNoseTurret - - - - - - 0.5 - - - -90.0 - - - 90.0 - - - 90.0 - - - 90.0 - - - 0.0 - - - 15.0 - - - 360.0 - - - 135.0 - - - -135.0 - - - 360.0 - - - 45.0 - - - -45.0 - - - - - 1.0 - - - 3 - - - 0.1 - - - 2 - - - - false - - - - - - - - - 100.0 - - - 2.0 - - - - - 1.0 - - - 50.0 - - - 5.0 - - - 25.0 - - - 100.0 - - - never - - - never - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + PTCNoseTurret + + + + + + + + + 100.0 + + + 2.0 + + + + + 1.0 + + + 50.0 + + + 5.0 + + + 25.0 + + + 100.0 + + + Never + + + Never + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/PathControl.xml b/templates/mp3proto/Script/PathControl.xml index 25e51cf6..d2972560 100644 --- a/templates/mp3proto/Script/PathControl.xml +++ b/templates/mp3proto/Script/PathControl.xml @@ -1,34 +1,29 @@ - - PathControl - - - - 0 - - - 0xF56F6770 - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + PathControl + + + + 0 + + + 0xF56F6770 + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/PathMeshCtrl.xml b/templates/mp3proto/Script/PathMeshCtrl.xml index f1137906..5337d40e 100644 --- a/templates/mp3proto/Script/PathMeshCtrl.xml +++ b/templates/mp3proto/Script/PathMeshCtrl.xml @@ -1,28 +1,23 @@ - - PathMeshCtrl - - - - 0 - - - 1 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + PathMeshCtrl + + + + 0 + + + 1 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/PhazonFlyerSwarm.xml b/templates/mp3proto/Script/PhazonFlyerSwarm.xml index 821688d7..2fc0e993 100644 --- a/templates/mp3proto/Script/PhazonFlyerSwarm.xml +++ b/templates/mp3proto/Script/PhazonFlyerSwarm.xml @@ -1,38 +1,28 @@ - - PhazonFlyerSwarm - - - - - - true - - - - - - - 4.0 - - - - - - - - - - - - - - - - - 0xA244C9D8 - - enabled - enabled - - + + + PhazonFlyerSwarm + + + + + + true + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/PhazonLeech.xml b/templates/mp3proto/Script/PhazonLeech.xml index fc95c938..416a7fe9 100644 --- a/templates/mp3proto/Script/PhazonLeech.xml +++ b/templates/mp3proto/Script/PhazonLeech.xml @@ -1,116 +1,45 @@ - - PhazonLeech - - - - - - false - - - 1.0 - - - 0.5 - - - 0.7 - - - 0.9 - - - 0.15 - - - 30.0 - - - 35.0 - - - 55.0 - - - 2.0 - - - 4.0 - - - -1.0 - - - -1.0 - - - 3.0 - - - 1.0 - - - 1.0 - - - 1.0 - - - 2.0 - - - 1.0 - - - 7.0 - - - - 0.5 - - - - - - - - - 25.0 - - - 2.0 - - - - - 50.0 - - - 10.0 - - - 20.0 - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + PhazonLeech + + + + + + + + + 25.0 + + + 2.0 + + + + + 50.0 + + + 10.0 + + + 20.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/PhazonPuddle.xml b/templates/mp3proto/Script/PhazonPuddle.xml index 79f2ba99..1cfe0cfb 100644 --- a/templates/mp3proto/Script/PhazonPuddle.xml +++ b/templates/mp3proto/Script/PhazonPuddle.xml @@ -1,121 +1,19 @@ - - PhazonPuddle - - - - - - - - - - 25.0 - - - - - 5.0 - - - - 1.0 - - - - 1.0 - - - 5.0 - - - 50 - - - 15.0 - - - 25.0 - - - 10.0 - - - 5.0 - - - 0.3 - - - 0.2 - - - 1.0 - - - 20.0 - - - 0.1 - - - 1.0 - - - 2.0 - - - 30.0 - - - - 5.0 - - - 25.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - enabled - enabled - - + + + PhazonPuddle + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + diff --git a/templates/mp3proto/Script/PhysicsDebris.xml b/templates/mp3proto/Script/PhysicsDebris.xml index 8bd5f964..fb797876 100644 --- a/templates/mp3proto/Script/PhysicsDebris.xml +++ b/templates/mp3proto/Script/PhysicsDebris.xml @@ -1,173 +1,22 @@ - - PhysicsDebris - - - - - - - 180.0 - - - 180.0 - - - 0.0, 0.0, 1.0 - - - 0.0, 0.0, 0.0 - - - true - - - 5.0 - - - 15.0 - - - -1.0, -1.0, -1.0 - - - 1.0, 1.0, 1.0 - - - 2.0 - - - 3.0 - - - 0.0 - - - 10.0 - - - 80.0 - - - 1.0, 1.0, 1.0, 0.0 - - - 1.0, 1.0, 1.0, 1.0 - - - 1.0, 1.0, 1.0, 0.0 - - - 80.0 - - - 1.0, 1.0, 1.0 - - - 0.375 - - - 0.1 - - - 25.0 - - - 1.0 - - - - - 1 - - - 1.0 - - - 1.0 - - - 0.1 - - - 0.1 - - - 0.1 - - - 0.1 - - - 0.1 - - - - 1.0, 1.0, 1.0 - - - false - - - false - - - true - - - - - 1.0, 1.0, 1.0 - - - false - - - false - - - true - - - - true - - - false - - - false - - - false - - - true - - - false - - - false - - - - - - - - - - - - - - - - - 0xD94D4CA3:0xC27FFA8F - - enabled - enabled - - + + + PhysicsDebris + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/Pickup.xml b/templates/mp3proto/Script/Pickup.xml index a905e4b6..81b2a243 100644 --- a/templates/mp3proto/Script/Pickup.xml +++ b/templates/mp3proto/Script/Pickup.xml @@ -1,89 +1,105 @@ - - Pickup - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - 0xFB73F2B8 - - - 1 - - - 0 - - - 1 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - 0.0 - - - - false - - - true - - - false - - - 0.0 - - - 0.0 - - - 20.0 - - - false - - - false - - - 0.0, 0.0, 0.0 - - - - - - - - - - - - - - - 0xA244C9D8 - 0xC27FFA8F - - enabled - enabled - - + + + Pickup + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + 0xFB73F2B8 + + + 1 + + + 0 + + + 1 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + CMDL + + + + + + 0.0 + + + + PART + + + + false + + + true + + + false + + + 0.0 + + + 0.0 + + + 20.0 + + + false + + + false + + + + 0.0 + 0.0 + 0.0 + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3proto/Script/PirateDrone.xml b/templates/mp3proto/Script/PirateDrone.xml index 37435e44..d009456d 100644 --- a/templates/mp3proto/Script/PirateDrone.xml +++ b/templates/mp3proto/Script/PirateDrone.xml @@ -1,207 +1,68 @@ - - PirateDrone - - - - - - 0.7 - - - - 0.5 - - - - - - 3.0 - - - 2.0 - - - 0.0 - - - 1.0 - - - 1.0 - - - 1080.0 - - - 8.0 - - - 1.0 - - - 10.0 - - - 2.0 - - - 10.0 - - - 1.0 - - - 12.0 - - - 3.0 - - - 10.0 - - - 3.0 - - - 1.0 - - - 5.0 - - - 10.0 - - - 0.5 - - - 0.5 - - - 0.1 - - - false - - - 90.0 - - - 30.0 - - - 1.0 - - - 0 - - - 1 - - - 0 - - - 2 - - - - - 20.0 - - - 0.247059, 0.0, 0.0, 0.0 - - - 0.498039, 1.0, 0.098039, 0.0 - - - 0.34902, 0.0, 0.0, 0.0 - - - 0.14902, 0.0, 0.0, 0.0 - - - 10.0 - - - 5.0 - - - 4.0 - - - 50.0 - - - - - - - - - - never - - - never - - - never - - - never - - - never - - - - - never - - - - - 50.0 - - - 2.0 - - - - - 1 - - - 50.0 - - - 0.0 - - - 10.0 - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + PirateDrone + + + + + + + Never + + + Never + + + Never + + + Never + + + Never + + + + + Never + + + + + 50.0 + + + 2.0 + + + + + 1 + + + 50.0 + + + 0.0 + + + 10.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/PlantScarabSwarm.xml b/templates/mp3proto/Script/PlantScarabSwarm.xml index 9ca0dfec..b147f927 100644 --- a/templates/mp3proto/Script/PlantScarabSwarm.xml +++ b/templates/mp3proto/Script/PlantScarabSwarm.xml @@ -1,47 +1,42 @@ - - PlantScarabSwarm - - - - - - true - - - - -1 - - - -1 - - - 30.0 - - - 1.0 - - - 1.0 - - - - 1.0 - - - - - - - - - - - - - - - enabled - enabled - - + + + PlantScarabSwarm + + + + + + true + + + + -1 + + + -1 + + + 30.0 + + + 1.0 + + + 1.0 + + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + diff --git a/templates/mp3proto/Script/Platform.xml b/templates/mp3proto/Script/Platform.xml index 67c4f2ce..382a8314 100644 --- a/templates/mp3proto/Script/Platform.xml +++ b/templates/mp3proto/Script/Platform.xml @@ -1,60 +1,76 @@ - - Platform - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - - - - - - - 1.0 - - - 200 - - - 20 - - - false - - - false - - - - 0.0, 0.15, 0.0 - - - 0.0 - - - - - - - - - - - - - - - 0xA3D63F44 - 0xC27FFA8F - 0x0FC966DC - - enabled - enabled - - + + + Platform + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + CMDL + + + + + + + DCLN + + + + + + 1.0 + + + 200 + + + 20 + + + false + + + false + + + + + 0.0 + 0.15000001 + 0.0 + + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp3proto/Script/PlayerActor.xml b/templates/mp3proto/Script/PlayerActor.xml index db42b6c1..73cf68e9 100644 --- a/templates/mp3proto/Script/PlayerActor.xml +++ b/templates/mp3proto/Script/PlayerActor.xml @@ -1,54 +1,57 @@ - - PlayerActor - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - 1.0 - - - 0.0 - - - - - - - - true - - - true - - - true - - - 4 - - - 0 - - - - - - - - - - - - - - - enabled - enabled - - + + + PlayerActor + + + + + 0.0 + 0.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + + + + 1.0 + + + 0.0 + + + + + + + + true + + + true + + + true + + + 4 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + diff --git a/templates/mp3proto/Script/PlayerController.xml b/templates/mp3proto/Script/PlayerController.xml index cb4d181f..c87bbb4e 100644 --- a/templates/mp3proto/Script/PlayerController.xml +++ b/templates/mp3proto/Script/PlayerController.xml @@ -1,64 +1,71 @@ - - PlayerController - - - - - - - 2.0, 2.0, 2.0 - - - - - - - 0 - - - - - - 0 - - - 0.0, 0.0, 1.5 - - - 0 - - - 0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0, 0.0, 0.0 - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + PlayerController + + + + + + + + 2.0 + 2.0 + 2.0 + + + + + + + + 0 + + + + + + 0 + + + + 0.0 + 0.0 + 1.5 + + + + 0 + + + 0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + 0.0 + 0.0 + 0.0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + 0.5 + diff --git a/templates/mp3proto/Script/PlayerGravityScalar.xml b/templates/mp3proto/Script/PlayerGravityScalar.xml index 2f77db4f..5f28d54b 100644 --- a/templates/mp3proto/Script/PlayerGravityScalar.xml +++ b/templates/mp3proto/Script/PlayerGravityScalar.xml @@ -1,28 +1,23 @@ - - PlayerGravityScalar - - - - 0.42 - - - 0.6 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + PlayerGravityScalar + + + + 0.41999999 + + + 0.60000002 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/PlayerHint.xml b/templates/mp3proto/Script/PlayerHint.xml index e7a05257..0343f0e9 100644 --- a/templates/mp3proto/Script/PlayerHint.xml +++ b/templates/mp3proto/Script/PlayerHint.xml @@ -1,34 +1,29 @@ - - PlayerHint - - - - 10 - - - 0.0 - - - 1.0 - - - 1 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + PlayerHint + + + + 10 + + + 0.0 + + + 1.0 + + + 1 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/PlayerTurret.xml b/templates/mp3proto/Script/PlayerTurret.xml index 10131f4f..6c392c01 100644 --- a/templates/mp3proto/Script/PlayerTurret.xml +++ b/templates/mp3proto/Script/PlayerTurret.xml @@ -1,57 +1,60 @@ - - PlayerTurret - - - - 1 - - - 90.0 - - - 90.0 - - - 90.0 - - - 0.0 - - - 30.0 - - - 30.0 - - - 30.0 - - - 1.0 - - - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + PlayerTurret + + + + 1 + + + 90.0 + + + 90.0 + + + 90.0 + + + 0.0 + + + 30.0 + + + 30.0 + + + 30.0 + + + 1.0 + + + + + WPSC + + + + + WPSC + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/PlayerUserAnimPoint.xml b/templates/mp3proto/Script/PlayerUserAnimPoint.xml index 5e5070a4..6664ba3e 100644 --- a/templates/mp3proto/Script/PlayerUserAnimPoint.xml +++ b/templates/mp3proto/Script/PlayerUserAnimPoint.xml @@ -1,39 +1,35 @@ - - PlayerUserAnimPoint - - - - - 0.75 - - - 1.0 - - - 0.0 - - - 0.1 - - - 5 - - - - - - - - - - - - - - 0xA3D63F44 - - enabled - enabled - - + + + PlayerUserAnimPoint + + + + + 0.75 + + + 1.0 + + + 0.0 + + + 0.1 + + + 5 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/mp3proto/Script/PointOfInterest.xml b/templates/mp3proto/Script/PointOfInterest.xml index d8463373..85985683 100644 --- a/templates/mp3proto/Script/PointOfInterest.xml +++ b/templates/mp3proto/Script/PointOfInterest.xml @@ -1,31 +1,27 @@ - - PointOfInterest - - - - - 1.5 - - - false - - - - - - - - - - - - - - script/common/PointOfInterest.TXTR - - 0.5 - enabled - enabled - - + + + PointOfInterest + + + + + 1.5 + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3proto/Script/PositionRelay.xml b/templates/mp3proto/Script/PositionRelay.xml index 642bcbe0..d9655966 100644 --- a/templates/mp3proto/Script/PositionRelay.xml +++ b/templates/mp3proto/Script/PositionRelay.xml @@ -1,25 +1,20 @@ - - PositionRelay - - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + PositionRelay + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/RadialDamage.xml b/templates/mp3proto/Script/RadialDamage.xml index 7900bb6e..fb2ac52f 100644 --- a/templates/mp3proto/Script/RadialDamage.xml +++ b/templates/mp3proto/Script/RadialDamage.xml @@ -1,37 +1,33 @@ - - RadialDamage - - - - - 15.0 - - - false - - - false - - - false - - - - - - - - - - - - - - script/common/RadialDamage.TXTR - - 0.5 - enabled - enabled - - + + + RadialDamage + + + + + 15.0 + + + false + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3proto/Script/Relay.xml b/templates/mp3proto/Script/Relay.xml index dd23d686..c4e598e6 100644 --- a/templates/mp3proto/Script/Relay.xml +++ b/templates/mp3proto/Script/Relay.xml @@ -1,27 +1,23 @@ - - Relay - - - - false - - - - - - - - - - - - - - script/common/Relay.TXTR - - 0.5 - enabled - enabled - - + + + Relay + + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3proto/Script/RelayRandom.xml b/templates/mp3proto/Script/RelayRandom.xml index 38dd6b9d..2bb38f12 100644 --- a/templates/mp3proto/Script/RelayRandom.xml +++ b/templates/mp3proto/Script/RelayRandom.xml @@ -1,39 +1,35 @@ - - RelayRandom - - - - 1 - - - 0 - - - false - - - false - - - false - - - - - - - - - - - - - - script/common/RandomRelay.TXTR - - 0.5 - enabled - enabled - - + + + RelayRandom + + + + 1 + + + 0 + + + false + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3proto/Script/ReptilicusHunter.xml b/templates/mp3proto/Script/ReptilicusHunter.xml index f0071ca2..e2f24063 100644 --- a/templates/mp3proto/Script/ReptilicusHunter.xml +++ b/templates/mp3proto/Script/ReptilicusHunter.xml @@ -1,132 +1,31 @@ - - ReptilicusHunter - - - - - - 360.0 - - - - - - - - false - - - false - - - 1.0 - - - 0.25 - - - - - 0.0 - - - 10.0 - - - 0.0 - - - 1.0 - - - 10.0 - - - 10.0 - - - - - - 5.0 - - - - 1.0 - - - 25.0 - - - - - - - - - 2.5 - - - 15.0 - - - - - - - - - - - - - - - - 50.0 - - - 50.0 - - - 720.0 - - - 0.5 - - - - 1.0 - - - 20.0 - - - 60.0 - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x3B7085AD:0xD7548E97:0x5C1FFC8D - 0x3B7085AD:0x19A58C31:0x66AB57A4 - - enabled - enabled - - + + + ReptilicusHunter + + + + + + 360.0 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + diff --git a/templates/mp3proto/Script/Repulsor.xml b/templates/mp3proto/Script/Repulsor.xml index 3f3e3e14..d70f75b9 100644 --- a/templates/mp3proto/Script/Repulsor.xml +++ b/templates/mp3proto/Script/Repulsor.xml @@ -1,34 +1,29 @@ - - Repulsor - - - - 0 - - - 1.0 - - - -1.0 - - - 0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Repulsor + + + + 0 + + + 1.0 + + + -1.0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/Ridley1.xml b/templates/mp3proto/Script/Ridley1.xml index 0e901dca..58124c63 100644 --- a/templates/mp3proto/Script/Ridley1.xml +++ b/templates/mp3proto/Script/Ridley1.xml @@ -1,76 +1,23 @@ - - Ridley1 - - - - - - - - - - - - - - 100.0 - - - 15.0 - - - - 15.0 - - - - 15.0 - - - - 15.0 - - - - 15.0 - - - - 15.0 - - - - - - - - - - 8.0 - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + Ridley1 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/Ripple.xml b/templates/mp3proto/Script/Ripple.xml index d25bdad2..d800fffd 100644 --- a/templates/mp3proto/Script/Ripple.xml +++ b/templates/mp3proto/Script/Ripple.xml @@ -1,25 +1,20 @@ - - Ripple - - - - -0.1 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Ripple + + + + -0.1 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/RoomAcoustics.xml b/templates/mp3proto/Script/RoomAcoustics.xml index 2a5b7ca7..ab82f17b 100644 --- a/templates/mp3proto/Script/RoomAcoustics.xml +++ b/templates/mp3proto/Script/RoomAcoustics.xml @@ -1,181 +1,176 @@ - - RoomAcoustics - - - - 117 - - - 1 - - - false - - - false - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - false - - - 0.0 - - - 0.0 - - - 0.0 - - - false - - - false - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - false - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 32000 - - - 0 - - - false - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - false - - - 0 - - - 0.0 - - - 0 - - - 1.0 - - - false - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 200.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RoomAcoustics + + + + 117 + + + 1 + + + false + + + false + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + false + + + 0.0 + + + 0.0 + + + 0.0 + + + false + + + false + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + false + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 32000 + + + 0 + + + false + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + false + + + 0 + + + 0.0 + + + 0 + + + 1.0 + + + false + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 200.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/RumbleEffect.xml b/templates/mp3proto/Script/RumbleEffect.xml index ec927e2f..79b4c3d8 100644 --- a/templates/mp3proto/Script/RumbleEffect.xml +++ b/templates/mp3proto/Script/RumbleEffect.xml @@ -1,31 +1,26 @@ - - RumbleEffect - - - - 20.0 - - - 0 - - - 0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + RumbleEffect + + + + 20.0 + + + 0 + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/Rundas.xml b/templates/mp3proto/Script/Rundas.xml index 3581beca..82a07bd2 100644 --- a/templates/mp3proto/Script/Rundas.xml +++ b/templates/mp3proto/Script/Rundas.xml @@ -1,153 +1,45 @@ - - Rundas - - - - - - 90.0 - - - 72.0 - - - 4.0 - - - - - - - - - - - - - - - - - - - - - - - - 6.0 - - - - - 0.5 - - - 6.0 - - - 6.0 - - - 13.0 - - - - - - - - - 35.0 - - - 200.0 - - - 70.0 - - - 25.0 - - - - - - - - - - - 25.0 - - - 7.5 - - - 18.0 - - - 5.0 - - - 2.5 - - - 14.0 - - - 17.0 - - - 10.0 - - - 25.0 - - - - - - - - - - 100.0 - - - 2.0 - - - - - 1.0 - - - 1 - - - 100.0 - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + Rundas + + + + + + + + + 100.0 + + + 2.0 + + + + + 1.0 + + + 1 + + + 100.0 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/ScrewAttackWallJumpTarget.xml b/templates/mp3proto/Script/ScrewAttackWallJumpTarget.xml index c54e011c..a963bfe1 100644 --- a/templates/mp3proto/Script/ScrewAttackWallJumpTarget.xml +++ b/templates/mp3proto/Script/ScrewAttackWallJumpTarget.xml @@ -1,22 +1,17 @@ - - ScrewAttackWallJumpTarget - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ScrewAttackWallJumpTarget + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/SeedBoss1.xml b/templates/mp3proto/Script/SeedBoss1.xml index b11081ed..948d4f98 100644 --- a/templates/mp3proto/Script/SeedBoss1.xml +++ b/templates/mp3proto/Script/SeedBoss1.xml @@ -1,159 +1,51 @@ - - SeedBoss1 - - - - - - - - 0.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - 20.0 - - - - - 0.0, 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0, 0.0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0xF6E66110:0xC69F691A:0x71A5A198 - 0xF6E66110:0xAD0DE5AC - 0xF6E66110:0xA5BB98A6 - 0xF6E66110:0x50EDAE7F - 0xF6E66110:0x30969CFE - 0xF6E66110:0x5D71B85C - 0xF6E66110:0x3D0A8ADD - 0xF6E66110:0x9B76AD84 - 0xF6E66110:0xFB0D9F05 - 0xF6E66110:0x85635B3B - 0xF6E66110:0xE51869BA - 0xF6E66110:0xC288AE69 - 0xF6E66110:0xCDBD44E1 - 0xF6E66110:0x2883F972:0xDCE1A940 - 0xF6E66110:0x2883F972:0xF4C318B3 - 0xF6E66110:0x2883F972:0xB3673269 - 0xF6E66110:0x2883F972:0xB9196D9E - 0xF6E66110:0x2883F972:0x8C0BEE98 - 0xF6E66110:0x2883F972:0x4D7984E6 - 0xF6E66110:0x2883F972:0x8FBE621D - 0xF6E66110:0x2883F972:0x11EA2651 - 0xF6E66110:0x2883F972:0x564E0C8B - 0xF6E66110:0x2883F972:0x807EDCC5 - 0xF6E66110:0x2883F972:0x708B0155 - 0xF6E66110:0x2883F972:0xE46803DC - 0xF6E66110:0x2883F972:0x6A975CFF - 0xF6E66110:0x2883F972:0x97E2B6C7 - 0xF6E66110:0x2883F972:0x1176C469 - - enabled - enabled - - + + + SeedBoss1 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/mp3proto/Script/SeedBoss1Orb.xml b/templates/mp3proto/Script/SeedBoss1Orb.xml index 5e2d3eda..7501c9f7 100644 --- a/templates/mp3proto/Script/SeedBoss1Orb.xml +++ b/templates/mp3proto/Script/SeedBoss1Orb.xml @@ -1,43 +1,23 @@ - - SeedBoss1Orb - - - - - - - - - - - 0.0, 0.0, 0.0, 0.0 - - - true - - - - 0.0 - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + SeedBoss1Orb + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/SequenceTimer.xml b/templates/mp3proto/Script/SequenceTimer.xml index a7e62a41..0f5c6ecf 100644 --- a/templates/mp3proto/Script/SequenceTimer.xml +++ b/templates/mp3proto/Script/SequenceTimer.xml @@ -1,69 +1,41 @@ - - SequenceTimer - - - - Connection - - - 0 - - - Activation Time - - - 0.0 - - - 0 - Always 0 - - - 0 - - - 0 - Always 0 - - - - - - - 0.0 - - - 0.0 - - - 0.0 - - - false - - - false - - - false - - - - - - - - - - - - - - script/common/SequenceTimer.TXTR - - 0.5 - enabled - enabled - - + + + SequenceTimer + + + + + + + 0.0 + + + 0.0 + + + 0.0 + + + false + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3proto/Script/ShadowProjector.xml b/templates/mp3proto/Script/ShadowProjector.xml index cb61e07b..c48407b8 100644 --- a/templates/mp3proto/Script/ShadowProjector.xml +++ b/templates/mp3proto/Script/ShadowProjector.xml @@ -1,43 +1,42 @@ - - ShadowProjector - - - - 1.0 - - - 0.0, 0.0, 0.0 - - - 100.0 - - - 0.5 - - - 1.0 - - - false - - - 128 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ShadowProjector + + + + 1.0 + + + + 0.0 + 0.0 + 0.0 + + + + 100.0 + + + 0.5 + + + 1.0 + + + false + + + 128 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/Ship.xml b/templates/mp3proto/Script/Ship.xml index 3f36419f..528ae300 100644 --- a/templates/mp3proto/Script/Ship.xml +++ b/templates/mp3proto/Script/Ship.xml @@ -1,76 +1,33 @@ - - Ship - - - - - - - - 2.0 - - - - - - - - - - false - - - - - - 0xCD26D8F0 - - - 50.0 - - - 20.0 - - - 5.0 - - - - - - 0.5 - - - 10.0 - - - true - - - - - - true - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + Ship + + + + + + + + 2.0 + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/ShipCommandIcon.xml b/templates/mp3proto/Script/ShipCommandIcon.xml index 61bba7d2..afd7041f 100644 --- a/templates/mp3proto/Script/ShipCommandIcon.xml +++ b/templates/mp3proto/Script/ShipCommandIcon.xml @@ -1,34 +1,41 @@ - - ShipCommandIcon - - - - true - - - 0 - - - - - - 0xFB73F2B8 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ShipCommandIcon + + + + true + + + 0 + + + + TXTR + + + + + TXTR + + + + + TXTR + + + + 0xFB73F2B8 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/ShipCommandPath.xml b/templates/mp3proto/Script/ShipCommandPath.xml index ebf3802f..caca4515 100644 --- a/templates/mp3proto/Script/ShipCommandPath.xml +++ b/templates/mp3proto/Script/ShipCommandPath.xml @@ -1,38 +1,33 @@ - - ShipCommandPath - - - - - false - - - false - - - true - - - 50.0 - - - 360.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + ShipCommandPath + + + + + false + + + false + + + true + + + 50.0 + + + 360.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/ShipProxy.xml b/templates/mp3proto/Script/ShipProxy.xml index 1034772b..daeeaa2f 100644 --- a/templates/mp3proto/Script/ShipProxy.xml +++ b/templates/mp3proto/Script/ShipProxy.xml @@ -1,21 +1,16 @@ - - ShipProxy - - - - - - - - - - - - - - - enabled - enabled - - + + + ShipProxy + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + diff --git a/templates/mp3proto/Script/SkyRipple.xml b/templates/mp3proto/Script/SkyRipple.xml index 0ab2f395..130cafb9 100644 --- a/templates/mp3proto/Script/SkyRipple.xml +++ b/templates/mp3proto/Script/SkyRipple.xml @@ -1,22 +1,17 @@ - - SkyRipple - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + SkyRipple + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/Sound.xml b/templates/mp3proto/Script/Sound.xml index e1194555..d1725163 100644 --- a/templates/mp3proto/Script/Sound.xml +++ b/templates/mp3proto/Script/Sound.xml @@ -1,83 +1,74 @@ - - Sound - - - - - 2.0 - - - 100.0 - - - 0.0 - - - 1.0 - - - 0.0 - - - - - 0.0 - - - 1.0 - - - - - 0.0 - - - 0.0 - - - false - - - false - - - false - - - false - - - true - - - false - - - false - - - false - - - false - - - - - - - - - - - - - - script/common/Sound.TXTR - - 0.5 - enabled - enabled - - + + + Sound + + + + + CAUD + + + + 2.0 + + + 100.0 + + + 0.0 + + + 1.0 + + + 0.0 + + + + 0.0 + + + 0.0 + + + false + + + false + + + false + + + false + + + true + + + false + + + false + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3proto/Script/SoundModifier.xml b/templates/mp3proto/Script/SoundModifier.xml index 5eb57cf0..598dde3d 100644 --- a/templates/mp3proto/Script/SoundModifier.xml +++ b/templates/mp3proto/Script/SoundModifier.xml @@ -1,37 +1,33 @@ - - SoundModifier - - - - 5.0 - - - false - - - false - - - - - - - - - - - - - - - - - - script/common/SoundModifier.TXTR - - 0.5 - enabled - enabled - - + + + SoundModifier + + + + 5.0 + + + false + + + false + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3proto/Script/SpacePirate.xml b/templates/mp3proto/Script/SpacePirate.xml index 5c97485d..088ed86a 100644 --- a/templates/mp3proto/Script/SpacePirate.xml +++ b/templates/mp3proto/Script/SpacePirate.xml @@ -1,252 +1,92 @@ - - SpacePirate - - - - - - - - - 10.0 - - - 10.0 - - - - - 3.0 - - - - - 150.0 - - - 2.0 - - - - - 0.8 - - - 3.0 - - - 0.3 - - - 1 - - - 360.0 - - - 90.0 - - - 4.0 - - - 1.0 - - - 0.5 - - - 0.2 - - - - - - - - true - - - false - - - false - - - false - - - false - - - 50.0 - - - false - - - true - never - - - 10.0 - - - 50.0 - - - 20.0 - - - 20.0 - - - 1000.0 - - - false - - - 80.0 - - - 1.0 - - - false - - - false - - - false - - - - - 10.0 - - - 5.0 - - - - - 0.1 - - - 0.05 - - - 0 - - - 1.0 - - - false - - - false - - - 0.1 - - - 0.75 - - - false - - - 5.0 - - - 10.0 - - - 2.0 - - - - - - 10000 - - - - false - - - false - - - - - - - 1 - - - - - - false - - - - - 100.0 - - - 5.0 - - - - - - false - - - - - - - - - - - - - - - - - - - - - - - - - - 0x43BBB1DD:0xA244C9D8 - 0xDDA1CACE:0xC699AD35 - 0xE677AF2C:0x50340852 - 0xDDA1CACE:0xC3B6103B:0x2245A396 - 0xDDA1CACE:0x68002BD7 - 0xDDA1CACE:0xAD315C7C - 0xDDA1CACE:0x042A25ED - 0xDDA1CACE:0xE39B8B1E - 0xDDA1CACE:0x356C166A - 0xDDA1CACE:0x1CA4A298 - 0xDDA1CACE:0xDF44507E - 0xDDA1CACE:0xD2C9A656 - 0xDDA1CACE:0xD4E26A8E - - enabled - enabled - - + + + SpacePirate + + + + + + + + + 10.0 + + + 10.0 + + + + + 3.0 + + + + + 150.0 + + + 2.0 + + + + + 0.80000001 + + + 3.0 + + + 0.30000001 + + + 1 + + + 360.0 + + + 90.0 + + + 4.0 + + + 1.0 + + + 0.5 + + + 0.2 + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + + + + + + + + + + + + diff --git a/templates/mp3proto/Script/SpawnPoint.xml b/templates/mp3proto/Script/SpawnPoint.xml index 0f9b1041..ec0c52fa 100644 --- a/templates/mp3proto/Script/SpawnPoint.xml +++ b/templates/mp3proto/Script/SpawnPoint.xml @@ -1,153 +1,24 @@ - - SpawnPoint - - - - true - - - false - - - - - - - - - 1 - - - 1 - - - - - - - 1 - - - 1 - - - - - - - - - true - - - false - - - false - - - false - - - - false - - - false - - - false - - - false - - - false - - - - - - - false - - - false - - - false - - - - - - - false - - - false - - - false - - - - - - - false - - - 0 - - - - - - - false - - - false - - - false - - - false - - - false - - - - - - - false - - - false - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + SpawnPoint + + + + true + + + false + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/SpecialFunction.xml b/templates/mp3proto/Script/SpecialFunction.xml index 19bf7c86..488fb04a 100644 --- a/templates/mp3proto/Script/SpecialFunction.xml +++ b/templates/mp3proto/Script/SpecialFunction.xml @@ -1,125 +1,121 @@ - - SpecialFunction - - - - 0x98C5AED7 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0 - - - 0 - - - 0xFB73F2B8 - - - - - - - - - - - - - - - - - script/common/SpecialFunction.TXTR - - 0.5 - enabled - enabled - - + + + SpecialFunction + + + + 0x98C5AED7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0 + + + 0 + + + 0xFB73F2B8 + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3proto/Script/SpiderBallAttractionSurface.xml b/templates/mp3proto/Script/SpiderBallAttractionSurface.xml index 7a1aa962..10cf32f8 100644 --- a/templates/mp3proto/Script/SpiderBallAttractionSurface.xml +++ b/templates/mp3proto/Script/SpiderBallAttractionSurface.xml @@ -1,24 +1,21 @@ - - SpiderBallAttractionSurface - - - - - - - - - - - - - - - script/common/SpiderBallAttractionSurface.TXTR - - enabled - volume - - - + + + SpiderBallAttractionSurface + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + ScaleVolume + BoxShape + diff --git a/templates/mp3proto/Script/SpiderBallWaypoint.xml b/templates/mp3proto/Script/SpiderBallWaypoint.xml index 30a748fe..35d72d68 100644 --- a/templates/mp3proto/Script/SpiderBallWaypoint.xml +++ b/templates/mp3proto/Script/SpiderBallWaypoint.xml @@ -1,26 +1,22 @@ - - SpiderBallWaypoint - - - - 0 - - - - - - - - - - - - - - script/common/SpiderBallWaypoint.CMDL - - enabled - enabled - - + + + SpiderBallWaypoint + + + + 0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/mp3proto/Script/Spinner.xml b/templates/mp3proto/Script/Spinner.xml index f5c0090e..8bbd7253 100644 --- a/templates/mp3proto/Script/Spinner.xml +++ b/templates/mp3proto/Script/Spinner.xml @@ -1,49 +1,56 @@ - - Spinner - - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - false - - - false - - - false - - - true - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Spinner + + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + false + + + false + + + false + + + true + + + + CAUD + + + + + CAUD + + + + + CAUD + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/Steam.xml b/templates/mp3proto/Script/Steam.xml index 2cbb25c8..b85c3d31 100644 --- a/templates/mp3proto/Script/Steam.xml +++ b/templates/mp3proto/Script/Steam.xml @@ -1,39 +1,39 @@ - - Steam - - - - - - 0.35 - - - 1.0 - - - 2.0 - - - 0.0 - - - false - - - - - - - - - - - - - - enabled - volume - - - + + + Steam + + + + + + TXTR + + + + 0.34999999 + + + 1.0 + + + 2.0 + + + 0.0 + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + BoxShape + diff --git a/templates/mp3proto/Script/SteamBot.xml b/templates/mp3proto/Script/SteamBot.xml index ad3267b8..347a446b 100644 --- a/templates/mp3proto/Script/SteamBot.xml +++ b/templates/mp3proto/Script/SteamBot.xml @@ -1,112 +1,24 @@ - - SteamBot - - - - - - - - 100.0 - - - 20.0 - - - 5.0 - - - - 30.0 - - - 5.0 - - - 0.5 - - - 1 - - - - 5.0 - - - 0.0 - - - 0.0 - - - - 5.0 - - - 10.0 - - - 0.0 - - - 0.05 - - - 0.0 - - - 0.0 - - - 6.0 - - - 3.0 - - - - - - - 1.0 - - - 5.0 - - - 5.0 - - - 0.5 - - - true - - - false - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - 0x11375EC0:0xBE5E86B9 - - enabled - enabled - - + + + SteamBot + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + + diff --git a/templates/mp3proto/Script/SteamLord.xml b/templates/mp3proto/Script/SteamLord.xml index 40801fff..18181390 100644 --- a/templates/mp3proto/Script/SteamLord.xml +++ b/templates/mp3proto/Script/SteamLord.xml @@ -1,42 +1,23 @@ - - SteamLord - - - - - - - - 10.0 - - - 2.5 - - - 20.0 - - - 30.0 - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + SteamLord + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/StreamedAudio.xml b/templates/mp3proto/Script/StreamedAudio.xml index 81a380de..d7324121 100644 --- a/templates/mp3proto/Script/StreamedAudio.xml +++ b/templates/mp3proto/Script/StreamedAudio.xml @@ -1,43 +1,39 @@ - - StreamedAudio - - - - - false - - - 0.25 - - - 0.25 - - - 127 - - - 0 - - - true - - - - - - - - - - - - - - script/common/StreamedAudio.TXTR - - 0.5 - enabled - enabled - - + + + StreamedAudio + + + + + false + + + 0.25 + + + 0.25 + + + 127 + + + 0 + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3proto/Script/StreamedMovie.xml b/templates/mp3proto/Script/StreamedMovie.xml index c42aeff0..8bee8934 100644 --- a/templates/mp3proto/Script/StreamedMovie.xml +++ b/templates/mp3proto/Script/StreamedMovie.xml @@ -1,46 +1,42 @@ - - StreamedMovie - - - - - false - - - true - - - 0 - - - 127 - - - 0 - - - 0.05 - - - 1.0 - - - - - - - - - - - - - - script/common/StreamedMovie.TXTR - - 0.5 - enabled - enabled - - + + + StreamedMovie + + + + + false + + + true + + + 0 + + + 127 + + + 0 + + + 0.050000001 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3proto/Script/Subtitles.xml b/templates/mp3proto/Script/Subtitles.xml index e57e1c4e..3a2729fc 100644 --- a/templates/mp3proto/Script/Subtitles.xml +++ b/templates/mp3proto/Script/Subtitles.xml @@ -1,70 +1,69 @@ - - Subtitles - - - - - - 640 - - - 448 - - - 1 - - - - - 0 - - - 100 - - - - - 640 - - - 448 - - - 1 - - - - - 0 - - - 100 - - - - 0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Subtitles + + + + + + 640 + + + 448 + + + 1 + + + + + 0 + + + 100 + + + + + 640 + + + 448 + + + 1 + + + + + 0 + + + 100 + + + + STRG + + + + 0 + + + 0.0 + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/SurfaceControl.xml b/templates/mp3proto/Script/SurfaceControl.xml index 05c4e17e..4c26c4cb 100644 --- a/templates/mp3proto/Script/SurfaceControl.xml +++ b/templates/mp3proto/Script/SurfaceControl.xml @@ -1,33 +1,28 @@ - - SurfaceControl - - - - 0xF07B8212 - - - - - - - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + SurfaceControl + + + + 0xF07B8212 + + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/SwarmBot.xml b/templates/mp3proto/Script/SwarmBot.xml index 9da98414..2dc260be 100644 --- a/templates/mp3proto/Script/SwarmBot.xml +++ b/templates/mp3proto/Script/SwarmBot.xml @@ -1,83 +1,23 @@ - - SwarmBot - - - - - - - - 8 - - - 8 - - - true - - - 3 - - - 10.0 - - - - - - - true - - - true - - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0xB3774750:0xA244C9D8 - - enabled - enabled - - + + + SwarmBot + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + 0x7E397FED:0xB028DB0E + + + + + diff --git a/templates/mp3proto/Script/Switch.xml b/templates/mp3proto/Script/Switch.xml index aa0218e4..691c98f5 100644 --- a/templates/mp3proto/Script/Switch.xml +++ b/templates/mp3proto/Script/Switch.xml @@ -1,28 +1,23 @@ - - Switch - - - - false - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + Switch + + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/TargetingPoint.xml b/templates/mp3proto/Script/TargetingPoint.xml index d2b3e6f4..54c602ac 100644 --- a/templates/mp3proto/Script/TargetingPoint.xml +++ b/templates/mp3proto/Script/TargetingPoint.xml @@ -1,28 +1,23 @@ - - TargetingPoint - - - - - false - - - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + TargetingPoint + + + + + false + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/TeamAiMgr.xml b/templates/mp3proto/Script/TeamAiMgr.xml index 528c4ff4..41ad40bb 100644 --- a/templates/mp3proto/Script/TeamAiMgr.xml +++ b/templates/mp3proto/Script/TeamAiMgr.xml @@ -1,49 +1,44 @@ - - TeamAiMgr - - - - 20 - - - 2 - - - 2 - - - 30 - - - 1 - - - 1 - - - 0 - - - 0.0 - - - 0.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + TeamAiMgr + + + + 20 + + + 2 + + + 2 + + + 30 + + + 1 + + + 1 + + + 0 + + + 0.0 + + + 0.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/TextPane.xml b/templates/mp3proto/Script/TextPane.xml index ddfadd24..0cc433af 100644 --- a/templates/mp3proto/Script/TextPane.xml +++ b/templates/mp3proto/Script/TextPane.xml @@ -1,69 +1,72 @@ - - TextPane - - - - - - - 80 - - - 10 - - - - - - - 80 - - - 10 - - - - - 0.0, 0.0, 0.0 - - - - - 1 - - - 0.25 - - - 0.25 - - - true - - - true - - - false - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + TextPane + + + + + + + 80 + + + 10 + + + + + + + 80 + + + 10 + + + + + + 0.0 + 0.0 + 0.0 + + + + + STRG + + + + + 1 + + + 0.25 + + + 0.25 + + + true + + + true + + + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/TimeKeyframe.xml b/templates/mp3proto/Script/TimeKeyframe.xml index 43121e91..7d597145 100644 --- a/templates/mp3proto/Script/TimeKeyframe.xml +++ b/templates/mp3proto/Script/TimeKeyframe.xml @@ -1,25 +1,20 @@ - - TimeKeyframe - - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + TimeKeyframe + + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/Timer.xml b/templates/mp3proto/Script/Timer.xml index e9ba0a20..36952da3 100644 --- a/templates/mp3proto/Script/Timer.xml +++ b/templates/mp3proto/Script/Timer.xml @@ -1,38 +1,34 @@ - - Timer - - - - 5.0 - - - 0.0 - A random value between this number and 0 will be added to the timer's start time. - - - false - If enabled, the timer will start ticking automatically on load. Otherwise, it will need to be started with a script message. - - - false - - - - - - - - - - - - - - script/common/Timer.TXTR - - 0.5 - enabled - enabled - - + + + Timer + + + + 5.0 + + + A random value between this number and 0 will be added to the timer's start time. + 0.0 + + + If enabled, the timer will start ticking automatically on load. Otherwise, it will need to be started with a script message. + false + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3proto/Script/Trigger.xml b/templates/mp3proto/Script/Trigger.xml index 0e4910db..4789770b 100644 --- a/templates/mp3proto/Script/Trigger.xml +++ b/templates/mp3proto/Script/Trigger.xml @@ -1,39 +1,50 @@ - - Trigger - - - - 0x482B22F1 - - - - - - - - - - - - - - - - - - - - - script/common/Trigger.TXTR - - enabled - volume - - - - - - - - + + + Trigger + + + + 0x482B22F1 + + + + + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + ScaleVolume + ConditionalShape + 0x09ECEE0C + + + 1210786545 + BoxShape + + + 2006824261 + BoxShape + + + -2087520796 + EllipsoidShape + + + 971864974 + CylinderShape + + + diff --git a/templates/mp3proto/Script/VisorFlare.xml b/templates/mp3proto/Script/VisorFlare.xml index b14ae79e..371b3edf 100644 --- a/templates/mp3proto/Script/VisorFlare.xml +++ b/templates/mp3proto/Script/VisorFlare.xml @@ -1,77 +1,73 @@ - - VisorFlare - - - - 0 - - - true - - - 0.1 - - - 1.0 - - - 2.0 - - - 0 - - - true - - - false - - - - - - 0.25 - - - - - - - 0.5 - - - - - - - 0.75 - - - - - - - 1.0 - - - - - - - - - - - - - - - - script/common/VisorFlare.TXTR - - 0.5 - enabled - enabled - - + + + VisorFlare + + + + 0 + + + true + + + 0.1 + + + 1.0 + + + 2.0 + + + 0 + + + true + + + false + + + + + + 0.25 + + + + + + + 0.5 + + + + + + + 0.75 + + + + + + + 1.0 + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3proto/Script/VisorGoo.xml b/templates/mp3proto/Script/VisorGoo.xml index 8579de52..b4b04774 100644 --- a/templates/mp3proto/Script/VisorGoo.xml +++ b/templates/mp3proto/Script/VisorGoo.xml @@ -1,51 +1,63 @@ - - VisorGoo - - - - - - 1.0 - - - 8.0 - - - 40.0 - - - 20.0 - - - 1.0, 1.0, 1.0, 1.0 - - - - false - - - false - - - true - - - - - - - - - - - - - - script/common/VisorGoo.TXTR - - 0.5 - enabled - enabled - - + + + VisorGoo + + + + + PART + + + + + ELSC + + + + 1.0 + + + 8.0 + + + 40.0 + + + 20.0 + + + + 1.0 + 1.0 + 1.0 + + + + + CAUD + + + + false + + + false + + + true + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3proto/Script/Water.xml b/templates/mp3proto/Script/Water.xml index e9a84f05..89dcef91 100644 --- a/templates/mp3proto/Script/Water.xml +++ b/templates/mp3proto/Script/Water.xml @@ -1,148 +1,20 @@ - - Water - - - - - - - 0x54F30820 - - - - - - - - true - - - true - - - true - - - 1.0 - - - 5.0 - - - 5.0 - - - 0.0, 0.0, 0.498039, 1.0 - - - 0.0, 0.498039, 1.0, 1.0 - - - - - - - - - - 0.25 - - - 0.05 - - - 10.0 - - - 0.0 - - - - - - - - 1.0, 1.0, 1.0, 1.0 - - - - - - - - - - - - - 1.0, 1.0, 1.0, 1.0 - - - 0.0 - - - 0.0 - - - 1.0 - - - 30.0 - - - 125.0 - - - 150.0 - - - 300.0 - - - 0.3 - - - 1.0 - - - 1.0 - - - 0.0 - - - 0.0 - - - false - - - 1.0 - - - - false - - - 300 - - - - - - - - - - - - - - - - enabled - volume - - - + + + Water + + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + ScaleVolume + BoxShape + diff --git a/templates/mp3proto/Script/Waypoint.xml b/templates/mp3proto/Script/Waypoint.xml index fa695e25..059d4043 100644 --- a/templates/mp3proto/Script/Waypoint.xml +++ b/templates/mp3proto/Script/Waypoint.xml @@ -1,23 +1,19 @@ - - Waypoint - - - - - - - - - - - - - - - script/common/Waypoint.CMDL - - enabled - enabled - - + + + Waypoint + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + diff --git a/templates/mp3proto/Script/WeaponGenerator.xml b/templates/mp3proto/Script/WeaponGenerator.xml index 3167251f..ade99c03 100644 --- a/templates/mp3proto/Script/WeaponGenerator.xml +++ b/templates/mp3proto/Script/WeaponGenerator.xml @@ -1,47 +1,21 @@ - - WeaponGenerator - - - - - - - - - 0x9EFB69B1 - - - - - - 0x2B9C9A74 - - - - - - - - - - - - - - - - - - - - - - - script/mp3/WeaponGenerator.TXTR - - 0.5 - enabled - enabled - - + + + WeaponGenerator + + + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + + + + 0.5 + diff --git a/templates/mp3proto/Script/WorldLightFader.xml b/templates/mp3proto/Script/WorldLightFader.xml index fb13041e..0e0c3c53 100644 --- a/templates/mp3proto/Script/WorldLightFader.xml +++ b/templates/mp3proto/Script/WorldLightFader.xml @@ -1,28 +1,23 @@ - - WorldLightFader - - - - 1.0 - - - 1.0 - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + WorldLightFader + + + + 1.0 + + + 1.0 + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Script/WorldTeleporter.xml b/templates/mp3proto/Script/WorldTeleporter.xml index 9453a9e0..6bddc23c 100644 --- a/templates/mp3proto/Script/WorldTeleporter.xml +++ b/templates/mp3proto/Script/WorldTeleporter.xml @@ -1,79 +1,110 @@ - - WorldTeleporter - - - - - - - 1.0, 1.0, 1.0 - - - - 1.0, 1.0, 1.0 - - - - 1.0, 1.0, 1.0 - - - true - - - - 1.0 - - - 0.0 - - - false - - - - - false - - - 0.01 - - - 8.0 - - - 0.0 - - - - false - - - 0.0 - - - 2.0 - - - 3.0 - - - false - - - - - - - - - - - - - - 0.5 - enabled - enabled - - + + + WorldTeleporter + + + + + MLVL + + + + + MREA + + + + + + 1.0 + 1.0 + 1.0 + + + + + CMDL + + + + + 1.0 + 1.0 + 1.0 + + + + + CMDL + + + + + 1.0 + 1.0 + 1.0 + + + + true + + + + 1.0 + + + 0.0 + + + false + + + + FONT + + + + + STRG + + + + false + + + 0.0099999998 + + + 8.0 + + + 0.0 + + + + false + + + 0.0 + + + 2.0 + + + 3.0 + + + false + + + + + 0x255A4580:0x494E414D + 0x255A4580:0x5846524D:0x00 + 0x255A4580:0x5846524D:0x01 + 0x255A4580:0x5846524D:0x02 + 0x255A4580:0x41435456 + + 0.5 + diff --git a/templates/mp3proto/Structs/ActorParameters.xml b/templates/mp3proto/Structs/ActorParameters.xml index 7c14f398..fba5b44e 100644 --- a/templates/mp3proto/Structs/ActorParameters.xml +++ b/templates/mp3proto/Structs/ActorParameters.xml @@ -1,42 +1,45 @@ - - - - - - - - - - true - - - 1.0 - - - 1.0 - - - - false - - - false - - - true - - - false - - - false - - - 127 - - - 127 - - - + + + ActorParameters + + + + + + + + + true + + + 1.0 + + + 1.0 + + + + false + + + false + + + true + + + false + + + false + + + 127 + + + 127 + + + + diff --git a/templates/mp3proto/Structs/CameraOrientation.xml b/templates/mp3proto/Structs/CameraOrientation.xml index e90bed7c..89117d64 100644 --- a/templates/mp3proto/Structs/CameraOrientation.xml +++ b/templates/mp3proto/Structs/CameraOrientation.xml @@ -1,73 +1,56 @@ - - - - 0x75A7A55F - - - - - - - - - - - 0 - - - 0x33D21F2E - - - - - - - - - - - - 0.0 - - - - - - - - 20.0 - - - 5.0 - - - - - - - - - - - - - - - - - 786432 - - - - - - - - - 256 - - - - - + + + CameraOrientation + + + 0x75A7A55F + + + + + + + + + + + 0 + + + 0x33D21F2E + + + + + + + + + + + + 0.0 + + + + + + + + 20.0 + + + 5.0 + + + + + + + + + + + + diff --git a/templates/mp3proto/Structs/CameraShakerEnvelope.xml b/templates/mp3proto/Structs/CameraShakerEnvelope.xml index 233ffb85..fac4260d 100644 --- a/templates/mp3proto/Structs/CameraShakerEnvelope.xml +++ b/templates/mp3proto/Structs/CameraShakerEnvelope.xml @@ -1,14 +1,17 @@ - - - - 0x58F1CB59 - - - - - - - - - + + + CameraShakerEnvelope + + + 0x58F1CB59 + + + + + + + + + + diff --git a/templates/mp3proto/Structs/CommandData.xml b/templates/mp3proto/Structs/CommandData.xml index 74273ab9..daeb70e7 100644 --- a/templates/mp3proto/Structs/CommandData.xml +++ b/templates/mp3proto/Structs/CommandData.xml @@ -1,12 +1,15 @@ - - - - false - - - - 0 - - - + + + CommandData + + + false + + + + 0 + + + + diff --git a/templates/mp3proto/Structs/ConditionalTest.xml b/templates/mp3proto/Structs/ConditionalTest.xml index 04c41c7c..b1c7a467 100644 --- a/templates/mp3proto/Structs/ConditionalTest.xml +++ b/templates/mp3proto/Structs/ConditionalTest.xml @@ -1,20 +1,23 @@ - - - - 1 - - - 0xFB73F2B8 - - - 0 - - - 0 - - - 0 - - - + + + ConditionalTest + + + 0x1 + + + 0xFB73F2B8 + + + 0 + + + 0 + + + 0 + + + + diff --git a/templates/mp3proto/Structs/ControlCommands.xml b/templates/mp3proto/Structs/ControlCommands.xml index 7c9411c5..15f5ac1f 100644 --- a/templates/mp3proto/Structs/ControlCommands.xml +++ b/templates/mp3proto/Structs/ControlCommands.xml @@ -1,100 +1,103 @@ - - - - 0xE88E6A10 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + ControlCommands + + + 0xE88E6A10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/mp3proto/Structs/Convergence.xml b/templates/mp3proto/Structs/Convergence.xml index cc6fccb9..d7d41826 100644 --- a/templates/mp3proto/Structs/Convergence.xml +++ b/templates/mp3proto/Structs/Convergence.xml @@ -1,78 +1,22 @@ - - - - 0x0BCC8352 - - - - - - - - - - - - 0.0 - - - 0.0 - - - 1.0 - - - - - - - true - - - 10.0 - - - 0.0 - - - 0.01 - - - 10.0 - - - 1.0 - - - - - - - 0x5A778792 - - - - - - - 0.0 - - - 0.0 - - - 0.0 - - - - - - - 0.0 - - - - - - + + + Convergence + + + 0xBCC8352 + + + + + + + + + + + + + + + diff --git a/templates/mp3proto/Structs/DamageInfo.xml b/templates/mp3proto/Structs/DamageInfo.xml index e0b6b597..dc490797 100644 --- a/templates/mp3proto/Structs/DamageInfo.xml +++ b/templates/mp3proto/Structs/DamageInfo.xml @@ -1,27 +1,30 @@ - - - - 0xBC709037 - - - - - - - - - - - - - 0.0 - - - 0.0 - - - 0.0 - - - + + + DamageInfo + + + 0xBC709037 + + + + + + + + + + + + + 0.0 + + + 0.0 + + + 0.0 + + + + diff --git a/templates/mp3proto/Structs/DamageVulnerability.xml b/templates/mp3proto/Structs/DamageVulnerability.xml index 4ef3b551..985d97bb 100644 --- a/templates/mp3proto/Structs/DamageVulnerability.xml +++ b/templates/mp3proto/Structs/DamageVulnerability.xml @@ -1,42 +1,45 @@ - - - - - - - - - - - - - - - - - - - - - - 0.0 - - - - - - - 0.0 - - - - - - - 0.0 - - - - - + + + DamageVulnerability + + + + + + + + + + + + + + + + + + + + + 0.0 + + + + + + + 0.0 + + + + + + + 0.0 + + + + + + diff --git a/templates/mp3proto/Structs/DebrisPropertiesOrientationEnum.xml b/templates/mp3proto/Structs/DebrisPropertiesOrientationEnum.xml index b2448e19..949e0ccf 100644 --- a/templates/mp3proto/Structs/DebrisPropertiesOrientationEnum.xml +++ b/templates/mp3proto/Structs/DebrisPropertiesOrientationEnum.xml @@ -1,8 +1,11 @@ - - - - 0x76A5FBFD - - - + + + DebrisPropertiesOrientationEnum + + + 0x76A5FBFD + + + + diff --git a/templates/mp3proto/Structs/EditorProperties.xml b/templates/mp3proto/Structs/EditorProperties.xml index 86beaae2..5b9ef500 100644 --- a/templates/mp3proto/Structs/EditorProperties.xml +++ b/templates/mp3proto/Structs/EditorProperties.xml @@ -1,13 +1,16 @@ - - - - - - true - - - 3 - - - + + + EditorProperties + + + + + true + + + 3 + + + + diff --git a/templates/mp3proto/Structs/ElectricBeamInfo.xml b/templates/mp3proto/Structs/ElectricBeamInfo.xml index 038fdcf0..8aee7399 100644 --- a/templates/mp3proto/Structs/ElectricBeamInfo.xml +++ b/templates/mp3proto/Structs/ElectricBeamInfo.xml @@ -1,29 +1,48 @@ - - - - - - - - 1.0 - - - - 10.0 - - - 0.1 - - - 150.0 - - - - 1.0 - - - 0.0 - - - + + + ElectricBeamInfo + + + + ELSC + + + + + + ELSC + + + + + CAUD + + + + 1.0 + + + + 10.0 + + + 0.1 + + + 150.0 + + + + PART + + + + 1.0 + + + 0.0 + + + + diff --git a/templates/mp3proto/Structs/FOVInterpolationMethod.xml b/templates/mp3proto/Structs/FOVInterpolationMethod.xml index 47c614de..06013550 100644 --- a/templates/mp3proto/Structs/FOVInterpolationMethod.xml +++ b/templates/mp3proto/Structs/FOVInterpolationMethod.xml @@ -1,14 +1,17 @@ - - - - 0x2A1B6DFE - - - - - - - - - + + + FOVInterpolationMethod + + + 0x2A1B6DFE + + + + + + + + + + diff --git a/templates/mp3proto/Structs/FlareDef.xml b/templates/mp3proto/Structs/FlareDef.xml index b5ca88af..fee987d3 100644 --- a/templates/mp3proto/Structs/FlareDef.xml +++ b/templates/mp3proto/Structs/FlareDef.xml @@ -1,15 +1,26 @@ - - - - - 0.0 - - - 1.0 - - - 1.0, 1.0, 1.0, 1.0 - - - + + + FlareDef + + + + TXTR + + + + 0.0 + + + 1.0 + + + + 1.0 + 1.0 + 1.0 + + + + + diff --git a/templates/mp3proto/Structs/FlyerSwarmData.xml b/templates/mp3proto/Structs/FlyerSwarmData.xml index dd1fa6fe..1496c58f 100644 --- a/templates/mp3proto/Structs/FlyerSwarmData.xml +++ b/templates/mp3proto/Structs/FlyerSwarmData.xml @@ -1,23 +1,26 @@ - - - - 1.0 - - - 1.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - 0.0 - - - + + + FlyerSwarmData + + + 1.0 + + + 1.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + 0.0 + + + + diff --git a/templates/mp3proto/Structs/FriendlyData.xml b/templates/mp3proto/Structs/FriendlyData.xml index 725e25bd..cac05efb 100644 --- a/templates/mp3proto/Structs/FriendlyData.xml +++ b/templates/mp3proto/Structs/FriendlyData.xml @@ -1,68 +1,87 @@ - - - - false - - - - false - - - true - never - - - false - - - 8.0 - - - 1.0 - - - 10.0 - - - 90.0 - - - false - - - false - - - 10.0 - - - - - - - 5.0 - - - - - - - - - 10.0 - - - 1000.0 - - - false - - - 60.0 - - - 90.0 - - - + + + FriendlyData + + + false + + + + false + + + Never + true + + + false + + + 8.0 + + + 1.0 + + + 10.0 + + + 90.0 + + + false + + + false + + + 10.0 + + + + WPSC + + + + + CAUD + + + + + + 5.0 + + + + + + + + BFRC + + + + + CMDL + + + + 10.0 + + + 1000.0 + + + false + + + 60.0 + + + 90.0 + + + + diff --git a/templates/mp3proto/Structs/GrappleBlock.xml b/templates/mp3proto/Structs/GrappleBlock.xml index 7b50f388..b2531b1a 100644 --- a/templates/mp3proto/Structs/GrappleBlock.xml +++ b/templates/mp3proto/Structs/GrappleBlock.xml @@ -1,32 +1,35 @@ - - - - 0 - - - 0.0 - - - 0.0 - - - 1.0 - - - 5.0 - - - true - - - true - - - true - - - false - - - + + + GrappleBlock + + + 0 + + + 0.0 + + + 0.0 + + + 1.0 + + + 5.0 + + + true + + + true + + + true + + + false + + + + diff --git a/templates/mp3proto/Structs/GrappleData.xml b/templates/mp3proto/Structs/GrappleData.xml index cca714f4..30375210 100644 --- a/templates/mp3proto/Structs/GrappleData.xml +++ b/templates/mp3proto/Structs/GrappleData.xml @@ -1,25 +1,28 @@ - - - - 0 - - - true - - - 5.0 - - - true - - - false - - - - - - - - + + + GrappleData + + + 0 + + + true + + + 5.0 + + + true + + + false + + + + + + + + + diff --git a/templates/mp3proto/Structs/GuiWidgetProperties.xml b/templates/mp3proto/Structs/GuiWidgetProperties.xml index 1afad396..47b351a9 100644 --- a/templates/mp3proto/Structs/GuiWidgetProperties.xml +++ b/templates/mp3proto/Structs/GuiWidgetProperties.xml @@ -1,12 +1,15 @@ - - - - - 1 - - - false - - - + + + GuiWidgetProperties + + + + 1 + + + false + + + + diff --git a/templates/mp3proto/Structs/HealthInfo.xml b/templates/mp3proto/Structs/HealthInfo.xml index 46c7fa61..3d32547a 100644 --- a/templates/mp3proto/Structs/HealthInfo.xml +++ b/templates/mp3proto/Structs/HealthInfo.xml @@ -1,11 +1,14 @@ - - - - 5.0 - - - 1.0 - - - + + + HealthInfo + + + 5.0 + + + 1.0 + + + + diff --git a/templates/mp3proto/Structs/InterpolationMethod.xml b/templates/mp3proto/Structs/InterpolationMethod.xml index b8a4aa4d..8c4a42a1 100644 --- a/templates/mp3proto/Structs/InterpolationMethod.xml +++ b/templates/mp3proto/Structs/InterpolationMethod.xml @@ -1,27 +1,30 @@ - - - - 0xDD7C3483 - - - - - - - - - - - - - 0.25 - - - 0.75 - - - 1.0 - - - + + + InterpolationMethod + + + 0xDD7C3483 + + + + + + + + + + + + + 0.25 + + + 0.75 + + + 1.0 + + + + diff --git a/templates/mp3proto/Structs/LaunchProjectileData.xml b/templates/mp3proto/Structs/LaunchProjectileData.xml index 1d7160ab..586f2eb3 100644 --- a/templates/mp3proto/Structs/LaunchProjectileData.xml +++ b/templates/mp3proto/Structs/LaunchProjectileData.xml @@ -1,15 +1,34 @@ - - - - - - 1.0, 1.0, 1.0 - - - 1.0 - - - - - + + + LaunchProjectileData + + + + WPSC + + + + + + 1.0 + 1.0 + 1.0 + + + + 1.0 + + + + PART + + + + + CAUD + + + + + diff --git a/templates/mp3proto/Structs/LayerInfo.xml b/templates/mp3proto/Structs/LayerInfo.xml index 49f1ab6f..c2f9a962 100644 --- a/templates/mp3proto/Structs/LayerInfo.xml +++ b/templates/mp3proto/Structs/LayerInfo.xml @@ -1,20 +1,23 @@ - - - - 0 - - - 5.0 - - - 0.0 - - - 0.15 - - - 10.0 - - - + + + LayerInfo + + + 0 + + + 5.0 + + + 0.0 + + + 0.15000001 + + + 10.0 + + + + diff --git a/templates/mp3proto/Structs/LayerSwitch.xml b/templates/mp3proto/Structs/LayerSwitch.xml index 56237535..55749335 100644 --- a/templates/mp3proto/Structs/LayerSwitch.xml +++ b/templates/mp3proto/Structs/LayerSwitch.xml @@ -1,9 +1,16 @@ - - - - - 0 - - - + + + LayerSwitch + true + + + Area ID + + + Layer # + 0 + + + + diff --git a/templates/mp3proto/Structs/LightParameters.xml b/templates/mp3proto/Structs/LightParameters.xml index 13ff5d33..bc683782 100644 --- a/templates/mp3proto/Structs/LightParameters.xml +++ b/templates/mp3proto/Structs/LightParameters.xml @@ -1,56 +1,67 @@ - - - - true - - - 1.0 - - - 0 - - - 1.0 - - - 20.0 - - - 1.0, 1.0, 1.0, 1.0 - - - true - - - 0x00000001 - - - - - - - - - 1 - - - 0.0, 0.0, 0.0 - - - 4 - - - 4 - - - false - - - false - - - 0 - - - + + + LightParameters + + + true + + + 1.0 + + + 0 + + + 1.0 + + + 20.0 + + + + 1.0 + 1.0 + 1.0 + + + + true + + + 0x1 + + + + + + + + + 1 + + + + 0.0 + 0.0 + 0.0 + + + + 4 + + + 4 + + + false + + + false + + + 0 + + + + diff --git a/templates/mp3proto/Structs/MayaSpline.xml b/templates/mp3proto/Structs/MayaSpline.xml deleted file mode 100644 index d8759fcf..00000000 --- a/templates/mp3proto/Structs/MayaSpline.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/templates/mp3proto/Structs/MotionInterpolationMethod.xml b/templates/mp3proto/Structs/MotionInterpolationMethod.xml index 2419edec..1941163d 100644 --- a/templates/mp3proto/Structs/MotionInterpolationMethod.xml +++ b/templates/mp3proto/Structs/MotionInterpolationMethod.xml @@ -1,34 +1,18 @@ - - - - 0x41B91E67 - - - - - - - - - - - - 0x8C1B1D20 - - - - - - - - - - - - - - - - - + + + MotionInterpolationMethod + + + 0x41B91E67 + + + + + + + + + + + diff --git a/templates/mp3proto/Structs/OffsetInterpolant.xml b/templates/mp3proto/Structs/OffsetInterpolant.xml index 4e45245d..24800904 100644 --- a/templates/mp3proto/Structs/OffsetInterpolant.xml +++ b/templates/mp3proto/Structs/OffsetInterpolant.xml @@ -1,8 +1,11 @@ - - - - - - - + + + OffsetInterpolant + + + + + + + diff --git a/templates/mp3proto/Structs/OrientationInterpolationMethod.xml b/templates/mp3proto/Structs/OrientationInterpolationMethod.xml index cdb115ca..a30d1338 100644 --- a/templates/mp3proto/Structs/OrientationInterpolationMethod.xml +++ b/templates/mp3proto/Structs/OrientationInterpolationMethod.xml @@ -1,16 +1,19 @@ - - - - 0x355476D5 - - - - - - - - - - - + + + OrientationInterpolationMethod + + + 0x355476D5 + + + + + + + + + + + + diff --git a/templates/mp3proto/Structs/PathDetermination.xml b/templates/mp3proto/Structs/PathDetermination.xml index 8a396997..21f38a0e 100644 --- a/templates/mp3proto/Structs/PathDetermination.xml +++ b/templates/mp3proto/Structs/PathDetermination.xml @@ -1,27 +1,18 @@ - - - - 0x571AA317 - - - - - - - - - - - 0x15F0534B - - - - - - - - - - - + + + PathDetermination + + + 0x571AA317 + + + + + + + + + + + diff --git a/templates/mp3proto/Structs/PatternedAITypedef.xml b/templates/mp3proto/Structs/PatternedAITypedef.xml index f63a2364..31736c84 100644 --- a/templates/mp3proto/Structs/PatternedAITypedef.xml +++ b/templates/mp3proto/Structs/PatternedAITypedef.xml @@ -1,105 +1,148 @@ - - - - 150.0 - - - - 2.0 - - - - - 1.0 - - - 2.0 - - - 0.0, 0.0, 0.0 - - - 0.1 - - - - - 0 - - - 5.0 - - - - 0 - - - 1.0 - - - 120.0 - - - 100.0 - - - 0.0 - - - 60.0 - - - 6.0 - - - 11.0 - - - 2.0 - - - 1.0 - - - 50.0 - - - 25.0 - - - 5.0 - - - 0.1 - - - 0.1 - - - 2.0 - - - - 1000.0 - - - 0.0 - - - - 0.0, 0.0, 0.0 - - - - - 1000.0 - - - - - 0.0, 0.0, 0.0 - - - - + + + PatternedAITypedef + + + 150.0 + + + + 2.0 + + + + + 1.0 + + + 2.0 + + + + 0.0 + 0.0 + 0.0 + + + + 0.1 + + + + + FSM2 + + + + 0 + + + 5.0 + + + + RULE + + + + 0 + + + 1.0 + + + 120.0 + + + 100.0 + + + 0.0 + + + 60.0 + + + 6.0 + + + 11.0 + + + 2.0 + + + 1.0 + + + 50.0 + + + 25.0 + + + 5.0 + + + 0.1 + + + 0.1 + + + 2.0 + + + + CAUD + + + + 1000.0 + + + 0.0 + + + + CAUD + + + + + 0.0 + 0.0 + 0.0 + + + + + PART + + + + + 1000.0 + + + + CAUD + + + + + + 0.0 + 0.0 + 0.0 + + + + + PART + + + + + diff --git a/templates/mp3proto/Structs/PhysicsDebrisPropertiesOrientationEnum.xml b/templates/mp3proto/Structs/PhysicsDebrisPropertiesOrientationEnum.xml index 9dc4c4dd..418e639e 100644 --- a/templates/mp3proto/Structs/PhysicsDebrisPropertiesOrientationEnum.xml +++ b/templates/mp3proto/Structs/PhysicsDebrisPropertiesOrientationEnum.xml @@ -1,8 +1,11 @@ - - - - 0x76A5FBFD - - - + + + PhysicsDebrisPropertiesOrientationEnum + + + 0x76A5FBFD + + + + diff --git a/templates/mp3proto/Structs/PlasmaBeamInfo.xml b/templates/mp3proto/Structs/PlasmaBeamInfo.xml index 081aa8a5..605e39a5 100644 --- a/templates/mp3proto/Structs/PlasmaBeamInfo.xml +++ b/templates/mp3proto/Structs/PlasmaBeamInfo.xml @@ -1,47 +1,84 @@ - - - - 0 - - - - - - - - 10.0 - - - 0.1 - - - 1.0 - - - 10.0 - - - 10.0 - - - 1.0 - - - 1.0 - - - 1.0 - - - 150.0 - - - 1.0, 1.0, 1.0, 0.0 - - - 0.0, 0.0, 0.0, 0.0 - - - - + + + PlasmaBeamInfo + + + 0 + + + + WPSC + + + + + PART + + + + + PART + + + + + TXTR + + + + + TXTR + + + + 10.0 + + + 0.1 + + + 1.0 + + + 10.0 + + + 10.0 + + + 1.0 + + + 1.0 + + + 1.0 + + + 150.0 + + + + 1.0 + 1.0 + 1.0 + 0.0 + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + PART + + + + + diff --git a/templates/mp3proto/Structs/PlatformMotionProperties.xml b/templates/mp3proto/Structs/PlatformMotionProperties.xml index 636ab3d7..46cfde96 100644 --- a/templates/mp3proto/Structs/PlatformMotionProperties.xml +++ b/templates/mp3proto/Structs/PlatformMotionProperties.xml @@ -1,19 +1,22 @@ - - - - - - 10.0 - - - 0.0 - - - 288 - - - - - - + + + PlatformMotionProperties + + + + + 10.0 + + + 0.0 + + + 288 + + + + + + + diff --git a/templates/mp3proto/Structs/PlayerInventoryItem.xml b/templates/mp3proto/Structs/PlayerInventoryItem.xml index d6276f63..e3009c51 100644 --- a/templates/mp3proto/Structs/PlayerInventoryItem.xml +++ b/templates/mp3proto/Structs/PlayerInventoryItem.xml @@ -1,11 +1,14 @@ - - - - 0 - - - 0 - - - + + + PlayerInventoryItem + + + 0 + + + 0 + + + + diff --git a/templates/mp3proto/Structs/PuddleControlData.xml b/templates/mp3proto/Structs/PuddleControlData.xml index 21f8f9a8..f1122f62 100644 --- a/templates/mp3proto/Structs/PuddleControlData.xml +++ b/templates/mp3proto/Structs/PuddleControlData.xml @@ -1,16 +1,19 @@ - - - - 1.0 - - - 1.0 - - - - - - - - + + + PuddleControlData + + + 1.0 + + + 1.0 + + + + + + + + + diff --git a/templates/mp3proto/Structs/PuddleControlPhaseData.xml b/templates/mp3proto/Structs/PuddleControlPhaseData.xml index 8e3a7e92..98ac72a2 100644 --- a/templates/mp3proto/Structs/PuddleControlPhaseData.xml +++ b/templates/mp3proto/Structs/PuddleControlPhaseData.xml @@ -1,17 +1,20 @@ - - - - 1.0 - - - 1.0 - - - 1.0 - - - 0.0 - - - + + + PuddleControlPhaseData + + + 1.0 + + + 1.0 + + + 1.0 + + + 0.0 + + + + diff --git a/templates/mp3proto/Structs/RagDollData.xml b/templates/mp3proto/Structs/RagDollData.xml index fdcd7fb3..76ce4c73 100644 --- a/templates/mp3proto/Structs/RagDollData.xml +++ b/templates/mp3proto/Structs/RagDollData.xml @@ -1,54 +1,69 @@ - - - - 0.0, 0.0, -50.0 - - - 8000.0 - - - 1.2 - - - 0.0, 0.0, -3.0 - - - 1000.0 - - - 0.125 - - - 0.85 - - - 1.0 - - - 3000.0 - - - 0.5 - - - 5.0 - - - - false - - - true - - - false - - - false - - - false - - - + + + RagDollData + + + + 0.0 + 0.0 + -50.0 + + + + 8000.0 + + + 1.2 + + + + 0.0 + 0.0 + -3.0 + + + + 1000.0 + + + 0.125 + + + 0.85000002 + + + 1.0 + + + 3000.0 + + + 0.5 + + + 5.0 + + + + CAUD + + + + false + + + true + + + false + + + false + + + false + + + + diff --git a/templates/mp3proto/Structs/ScannableParameters.xml b/templates/mp3proto/Structs/ScannableParameters.xml index d6cdf47b..b9d13141 100644 --- a/templates/mp3proto/Structs/ScannableParameters.xml +++ b/templates/mp3proto/Structs/ScannableParameters.xml @@ -1,6 +1,13 @@ - - - - - + + + ScannableParameters + + + + SCAN + + + + + diff --git a/templates/mp3proto/Structs/SeedBoss1Action.xml b/templates/mp3proto/Structs/SeedBoss1Action.xml index 89e8ff28..9e5f3f83 100644 --- a/templates/mp3proto/Structs/SeedBoss1Action.xml +++ b/templates/mp3proto/Structs/SeedBoss1Action.xml @@ -1,14 +1,17 @@ - - - - false - - - 100.0 - - - 50.0 - - - + + + SeedBoss1Action + + + false + + + 100.0 + + + 50.0 + + + + diff --git a/templates/mp3proto/Structs/SeedBoss1Stage.xml b/templates/mp3proto/Structs/SeedBoss1Stage.xml index 005fbc27..b829236d 100644 --- a/templates/mp3proto/Structs/SeedBoss1Stage.xml +++ b/templates/mp3proto/Structs/SeedBoss1Stage.xml @@ -1,29 +1,32 @@ - - - - 0.0 - - - 0.0 - - - 0.0 - - - false - - - false - - - false - - - - - - - - - + + + SeedBoss1Stage + + + 0.0 + + + 0.0 + + + 0.0 + + + false + + + false + + + false + + + + + + + + + + diff --git a/templates/mp3proto/Structs/ShockWaveInfo.xml b/templates/mp3proto/Structs/ShockWaveInfo.xml index 6868aaac..c77b594f 100644 --- a/templates/mp3proto/Structs/ShockWaveInfo.xml +++ b/templates/mp3proto/Structs/ShockWaveInfo.xml @@ -1,24 +1,39 @@ - - - - - - 0.0 - - - 1.0 - - - 0.5 - - - 1.0 - - - 0.0 - - - - - + + + ShockWaveInfo + + + + PART + + + + + 0.0 + + + 1.0 + + + 0.5 + + + 1.0 + + + 0.0 + + + + ELSC + + + + + CAUD + + + + + diff --git a/templates/mp3proto/Structs/SpacePirateWeaponData.xml b/templates/mp3proto/Structs/SpacePirateWeaponData.xml index de7546dd..0a59b16b 100644 --- a/templates/mp3proto/Structs/SpacePirateWeaponData.xml +++ b/templates/mp3proto/Structs/SpacePirateWeaponData.xml @@ -1,88 +1,135 @@ - - - - true - - - false - - - false - - - false - - - true - - - true - - - - 15.0 - - - 50.0 - - - - - - - 25.0 - - - 0.4 - - - 20.0 - - - 50.0 - - - 0.0 - - - 45.0 - - - 45.0 - - - 2 - - - - - 8.0 - - - 5.0 - - - 0.0 - - - 0.0 - - - - - 0.0, 0.0, 1.0, 1.0 - - - 1.0, 0.0, 0.0, 1.0 - - - - - 0.0 - - - 0.0 - - - + + + SpacePirateWeaponData + + + true + + + false + + + false + + + false + + + true + + + true + + + + CMDL + + + + 15.0 + + + 50.0 + + + + + PART + + + + + PART + + + + + PART + + + + 25.0 + + + 0.40000001 + + + 20.0 + + + 50.0 + + + 0.0 + + + 45.0 + + + 45.0 + + + 2 + + + + CAUD + + + + + CAUD + + + + 8.0 + + + 5.0 + + + 0.0 + + + 0.0 + + + + CAUD + + + + + CAUD + + + + + 0.0 + 0.0 + 1.0 + + + + + 1.0 + 0.0 + 0.0 + + + + + PART + + + + + 0.0 + + + 0.0 + + + + diff --git a/templates/mp3proto/Structs/SpindlePositionInterpolant.xml b/templates/mp3proto/Structs/SpindlePositionInterpolant.xml index 78e2dd35..716f0b5e 100644 --- a/templates/mp3proto/Structs/SpindlePositionInterpolant.xml +++ b/templates/mp3proto/Structs/SpindlePositionInterpolant.xml @@ -1,19 +1,22 @@ - - - - 0xCEA073FF - - - - - - - - - - - - - - + + + SpindlePositionInterpolant + + + 0xCEA073FF + + + + + + + + + + + + + + + diff --git a/templates/mp3proto/Structs/SplineType.xml b/templates/mp3proto/Structs/SplineType.xml index b798d00f..3c5f099c 100644 --- a/templates/mp3proto/Structs/SplineType.xml +++ b/templates/mp3proto/Structs/SplineType.xml @@ -1,8 +1,11 @@ - - - - 0 - - - + + + SplineType + + + 0 + + + + diff --git a/templates/mp3proto/Structs/StaticGeometryTest.xml b/templates/mp3proto/Structs/StaticGeometryTest.xml index e963395e..d03b353d 100644 --- a/templates/mp3proto/Structs/StaticGeometryTest.xml +++ b/templates/mp3proto/Structs/StaticGeometryTest.xml @@ -1,13 +1,16 @@ - - - - 0x549547E6 - - - - - - - - + + + StaticGeometryTest + + + 0x549547E6 + + + + + + + + + diff --git a/templates/mp3proto/Structs/SwarmBasicsData.xml b/templates/mp3proto/Structs/SwarmBasicsData.xml index cda25893..2cc1167b 100644 --- a/templates/mp3proto/Structs/SwarmBasicsData.xml +++ b/templates/mp3proto/Structs/SwarmBasicsData.xml @@ -1,122 +1,129 @@ - - - - - - 5.0 - - - 5.0 - - - - - 1.0 - - - 0.3 - - - 0.7 - - - 0.0 - - - 3.0 - - - 50 - - - 0 - - - 2.5 - - - 1.0 - - - 0.7 - - - 0.4 - - - 0.7 - - - 0.7 - - - 10.0 - - - 6.0 - - - 5 - - - 0.0 - - - 0.0 - - - - - 2.0 - - - 2.0 - - - - - - - 5 - - - 1.0 - - - 90.0 - - - false - - - false - - - true - - - false - - - - - 0.0 - - - 100.0 - - - 20 - - - 127 - - - 5.0 - - - 0.0 - - - + + + SwarmBasicsData + + + + + 5.0 + + + 5.0 + + + + + 1.0 + + + 0.30000001 + + + 0.69999999 + + + 0.0 + + + 3.0 + + + 50 + + + 0 + + + 2.5 + + + 1.0 + + + 0.69999999 + + + 0.40000001 + + + 0.69999999 + + + 0.69999999 + + + 10.0 + + + 6.0 + + + 5 + + + 0.0 + + + 0.0 + + + + + 2.0 + + + 2.0 + + + + + + + PART + + + + 5 + + + 1.0 + + + 90.0 + + + false + + + false + + + true + + + false + + + + + 0.0 + + + 100.0 + + + 20 + + + 127 + + + 5.0 + + + 0.0 + + + + diff --git a/templates/mp3proto/Structs/TextProperties.xml b/templates/mp3proto/Structs/TextProperties.xml index 5871ee7b..0fd13e91 100644 --- a/templates/mp3proto/Structs/TextProperties.xml +++ b/templates/mp3proto/Structs/TextProperties.xml @@ -1,42 +1,61 @@ - - - - 1 - - - 1 - - - 100.0 - - - 0 - - - 0 - - - 1.0, 1.0, 1.0, 1.0 - - - 0.0, 0.0, 0.0, 1.0 - - - 1.0, 1.0, 1.0, 1.0 - - - - 0 - - - 0 - - - false - - - false - - - + + + TextProperties + + + 1 + + + 1 + + + 100.0 + + + 0 + + + 0 + + + + 1.0 + 1.0 + 1.0 + + + + + 0.0 + 0.0 + 0.0 + + + + + 1.0 + 1.0 + 1.0 + + + + + FONT + + + + 0 + + + 0 + + + false + + + false + + + + diff --git a/templates/mp3proto/Structs/Transform.xml b/templates/mp3proto/Structs/Transform.xml index 5fe91767..0e1933dd 100644 --- a/templates/mp3proto/Structs/Transform.xml +++ b/templates/mp3proto/Structs/Transform.xml @@ -1,14 +1,33 @@ - - - - 0.0, 0.0, 0.0 - - - 0.0, 0.0, 0.0 - - - 1.0, 1.0, 1.0 - - - + + + Transform + true + + + Position + + 0.0 + 0.0 + 0.0 + + + + Rotation + + 0.0 + 0.0 + 0.0 + + + + Scale + + 1.0 + 1.0 + 1.0 + + + + + diff --git a/templates/mp3proto/Structs/TriggerInfo.xml b/templates/mp3proto/Structs/TriggerInfo.xml index 10948f12..cc261e88 100644 --- a/templates/mp3proto/Structs/TriggerInfo.xml +++ b/templates/mp3proto/Structs/TriggerInfo.xml @@ -1,15 +1,22 @@ - - - - 254 - - - 0 - - - - 0.0, 0.0, 0.0 - - - + + + TriggerInfo + + + 254 + + + 0 + + + + + 0.0 + 0.0 + 0.0 + + + + + diff --git a/templates/mp3proto/Structs/Vector2f.xml b/templates/mp3proto/Structs/Vector2f.xml index 3be26a5e..25823e4f 100644 --- a/templates/mp3proto/Structs/Vector2f.xml +++ b/templates/mp3proto/Structs/Vector2f.xml @@ -1,11 +1,14 @@ - - - - 0.0 - - - 0.0 - - - + + + Vector2f + + + 0.0 + + + 0.0 + + + + diff --git a/templates/mp3proto/Structs/VisorParameters.xml b/templates/mp3proto/Structs/VisorParameters.xml index 78b920e9..944023ec 100644 --- a/templates/mp3proto/Structs/VisorParameters.xml +++ b/templates/mp3proto/Structs/VisorParameters.xml @@ -1,11 +1,14 @@ - - - - false - - - 15 - - - + + + VisorParameters + + + false + + + 15 + + + + diff --git a/templates/mp3proto/Structs/WeaponVulnerability.xml b/templates/mp3proto/Structs/WeaponVulnerability.xml index 544b4c16..9114f2da 100644 --- a/templates/mp3proto/Structs/WeaponVulnerability.xml +++ b/templates/mp3proto/Structs/WeaponVulnerability.xml @@ -1,15 +1,18 @@ - - - - 100.0 - % - - - 0 - - - false - - - + + + WeaponVulnerability + + + % + 100.0 + + + 0 + + + false + + + +