Jump to content
DerelictStudios Forums

booto

Volcano Citizen
  • Content count

    87
  • Joined

  • Last visited

Community Reputation

0 Neutral

About booto

  • Rank
    Sergeant Major
  1. An indication of progress, for those interested:
  2. booto

    Red Alert 3 Modding And Mapping

    FYI, from what I've seen while perusing files included with the beta, the RA3 resources are very similar to the C&C3 resources. The manifest/bin/relo/imp filesets are almost exactly the same in structure with many stream types contained within with the same names. I strongly suspect they're using the same core tools to process the XML and generate this stuff, or at least 'newer versions' of those same tools... maybe we can hope they've boilerplated some user interface on top or integrated them into a mod studio type environment... e.g. of stream names/types within RA3 beta:
  3. Anyone interested in looking at the RA3 beta data files in a similar way to what was done with the C&C3 data files [binopener and the like]. before the SDK was released? A preliminary look into it has shown that the backend resource storage [read: the xml/brmi stuff] is pretty much the same - essentially a series of packed streams with magic 'fixup' files [the relo and imp parts] to touch up pointer addresses. Just trying to find out if anyone is interested at all, or if people are kinda over it. --booto
  4. booto

    Sage Engine Scripting

    Are you sure it's complete? e.g. There's no "UpgradedBoost" node for the "AutoDepositUpdate" module like appears in data\ini\object\civilianbuildings.ini in the zerohour inizh.big file.
  5. booto

    Sage Engine Scripting

    Worked on this a bit more, been referencing BFME stuff for syntax so far... Is anyone here interested in this stuff, or am I just unnecessarily filling the forum db with large posts? Edit: I take it ~= is "not equal to"... when seeing it, I was trying to make sense of it with regard to languages I know (it's similar to perl regex syntax), and it didn't seem to make sense in that context. Object GDIAirTower SelectPortrait = Portrait_GDIAirfield ButtonImage = Portrait_GDIAirfield DisplayName = Name:GDIAirfield Cost = 1000 BuildTime = 10.0 EnergyUse = -8 PreRequisites Object = GDICommandPost End CommandSet = GDIAirTowerCommandSet ArmorSet Armor = GDIAirTowerArmor DamageFX = FactionStructureDamageFX End Draw = W3DScriptedModelDraw ModuleTag_Draw ExtraPublicBone = Runway0Park0Han ExtraPublicBone = Runway0Park1Han ExtraPublicBone = Runway1Park0Han ExtraPublicBone = Runway1Park1Han DefaultConditionState Model = GBAirField End ModelConditionState = STRUCTURE_UNPACKING Model = GBAIRFIELD_ASKN End ModelConditionState = DAMAGED Model = GBAIRFIELD_D2SN ParticleSysBone = FXBone01 GDIPPDamagedSmoke End ModelConditionState = REALLYDAMAGED Model = GBAIRFIELD_D2SN ParticleSysBone = FXBone02 GDIPPDamagedSmoke ParticleSysBone = FXBone01 GDIPPDamagedFire ParticleSysBone = FXBone01 GDIPPDamagedSmoke ParticleSysBone = FXBone01 GDIRefineryDamagedDist End ModelConditionState = DYING Model = GBAIRFIELD_D3SN End IdleAnimationState End AnimationState = STRUCTURE_UNPACKING Animation = GBAIRFIELD_ABLD AnimationMode = ONCE End ParticleSysBone = NONE Con_Small End AnimationState = RUBBLE StateName = STATE_Rubble Flags = START_FRAME_LAST Animation = GBAIRFIELD_D3AN AnimationMode = MANUAL End BeginScript Prev = CurDrawablePrevAnimationState(); if Prev ~= "STATE_Rubble" and Prev ~= "TRANS_IntoRubble" then CurDrawableSetTransitionAnimState("TRANS_IntoRubble") end EndScript ParticleSysBone = NONE Des_Medium End AnimationState = REALLYDAMAGED StateName = STATE_ReallyDamaged Flags = START_FRAME_LAST Animation = GBAIRFIELD_D2AN AnimationMode = MANUAL End BeginScript Prev = CurDrawablePrevAnimationState(); if Prev ~= "STATE_ReallyDamaged" and Prev ~= "TRANS_IntoReallyDamaged" then CurDrawableSetTransitionAnimState("TRANS_IntoReallyDamaged") end EndScript End IdleAnimationState Animation = GBAIRFIELD_D2AN AnimationMode = ONCE End End IdleAnimationState Animation = GBAIRFIELD_D3AN AnimationMode = ONCE End End End Draw = W3DScriptedModelDraw ModuleTag_Draw_Door01 DefaultConditionState Model = GBAIRDOOR01_SKN End ModelConditionState = STRUCTURE_UNPACKING Model = GBAIRDOOR_A End ModelConditionState = DYING PARKINGPLACE_1_DOOR_OPEN Model = GBAIRDOOR01_SKN End ModelConditionState = DYING Model = GBAIRDOOR01_D3SN End ModelConditionState = REALLYDAMAGED Model = GBAIRDOOR01_SKN End ModelConditionState = DAMAGED Model = GBAIRDOOR01_SKN End IdleAnimationState Animation = GBAIRDOOR_OPNS AnimationMode = ONCE End End AnimationState = STRUCTURE_UNPACKING Animation = GBAIRDOOR_A AnimationMode = ONCE End End AnimationState = DYING PARKINGPLACE_1_DOOR_OPEN Animation = GBAIRDOOR_OPNS AnimationMode = ONCE End End AnimationState = DYING Animation = GBAIRDOOR_D3AN AnimationMode = ONCE End End AnimationState = PARKINGPLACE_1_DOOR_OPENING Animation = GBAIRDOOR_OPN AnimationMode = ONCE End End AnimationState = PARKINGPLACE_1_DOOR_OPEN Animation = GBAIRDOOR_OPNS AnimationMode = ONCE End End AnimationState = PARKINGPLACE_1_DOOR_CLOSING Animation = GBAIRDOOR_CLS AnimationMode = ONCE End End AnimationState = PARKINGPLACE_1_DOOR_CLOSED Animation = GBAIRDOOR_CLSS AnimationMode = ONCE End End End Draw = W3DScriptedModelDraw ModuleTag_Draw_Door02 DefaultConditionState Model = GBAIRDOOR02_SKN End ModelConditionState = STRUCTURE_UNPACKING Model = GBAIRDOOR_A End ModelConditionState = DAMAGED Model = GBAIRDOOR02_SKN End ModelConditionState = REALLYDAMAGED Model = GBAIRDOOR02_SKN End ModelConditionState = DYING PARKINGPLACE_1_DOOR_OPEN Model = GBAIRDOOR02_SKN End ModelConditionState = DYING Model = GBAIRDOOR02_D3SN End IdleAnimationState Animation = GBAIRDOOR_OPNS AnimationMode = ONCE End End AnimationState = STRUCTURE_UNPACKING Animation = GBAIRDOOR_A AnimationMode = ONCE End End AnimationState = DYING PARKINGPLACE_1_DOOR_OPEN Animation = GBAIRDOOR_OPNS AnimationMode = ONCE End End AnimationState = DYING Animation = GBAIRDOOR_D3AN AnimationMode = ONCE End End AnimationState = PARKINGPLACE_3_DOOR_OPENING Animation = GBAIRDOOR_OPN AnimationMode = ONCE End End AnimationState = PARKINGPLACE_3_DOOR_OPEN Animation = GBAIRDOOR_OPNS AnimationMode = ONCE End End AnimationState = PARKINGPLACE_3_DOOR_CLOSING Animation = GBAIRDOOR_CLS AnimationMode = ONCE End End AnimationState = PARKINGPLACE_3_DOOR_CLOSED Animation = GBAIRDOOR_CLSS AnimationMode = ONCE End End End Draw = W3DScriptedModelDraw ModuleTag_Draw_Door03 DefaultConditionState Model = GBAIRDOOR03_SKN End ModelConditionState = STRUCTURE_UNPACKING Model = GBAIRDOOR_A End ModelConditionState = DAMAGED Model = GBAIRDOOR03_SKN End ModelConditionState = REALLYDAMAGED Model = GBAIRDOOR03_SKN End ModelConditionState = DYING PARKINGPLACE_1_DOOR_OPEN Model = GBAIRDOOR03_SKN End ModelConditionState = DYING Model = GBAIRDOOR03_D3SN End IdleAnimationState Animation = GBAIRDOOR_OPNS AnimationMode = ONCE End End AnimationState = STRUCTURE_UNPACKING Animation = GBAIRDOOR_A AnimationMode = ONCE End End AnimationState = DYING PARKINGPLACE_1_DOOR_OPEN Animation = GBAIRDOOR_OPNS AnimationMode = ONCE End End AnimationState = DYING Animation = GBAIRDOOR_D3AN AnimationMode = ONCE End End AnimationState = PARKINGPLACE_2_DOOR_OPENING Animation = GBAIRDOOR_OPN AnimationMode = ONCE End End AnimationState = PARKINGPLACE_2_DOOR_OPEN Animation = GBAIRDOOR_OPNS AnimationMode = ONCE End End AnimationState = PARKINGPLACE_2_DOOR_CLOSING Animation = GBAIRDOOR_CLS AnimationMode = ONCE End End AnimationState = PARKINGPLACE_2_DOOR_CLOSED Animation = GBAIRDOOR_CLSS AnimationMode = ONCE End End End Draw = W3DScriptedModelDraw ModuleTag_Draw_Door04 DefaultConditionState Model = GBAIRDOOR04_SKN End ModelConditionState = STRUCTURE_UNPACKING Model = GBAIRDOOR_A End ModelConditionState = DAMAGED Model = GBAIRDOOR04_SKN End ModelConditionState = REALLYDAMAGED Model = GBAIRDOOR04_SKN End ModelConditionState = DYING PARKINGPLACE_1_DOOR_OPEN Model = GBAIRDOOR04_SKN End ModelConditionState = DYING Model = GBAIRDOOR04_D3SN End IdleAnimationState Animation = GBAIRDOOR_OPNS AnimationMode = ONCE End End AnimationState = STRUCTURE_UNPACKING Animation = GBAIRDOOR_A AnimationMode = ONCE End End AnimationState = DYING PARKINGPLACE_1_DOOR_OPEN Animation = GBAIRDOOR_OPNS AnimationMode = ONCE End End AnimationState = DYING Animation = GBAIRDOOR_D3AN AnimationMode = ONCE End End AnimationState = PARKINGPLACE_4_DOOR_OPENING Animation = GBAIRDOOR_OPN AnimationMode = ONCE End End AnimationState = PARKINGPLACE_4_DOOR_OPEN Animation = GBAIRDOOR_OPNS AnimationMode = ONCE End End AnimationState = PARKINGPLACE_4_DOOR_CLOSING Animation = GBAIRDOOR_CLS AnimationMode = ONCE End End AnimationState = PARKINGPLACE_4_DOOR_CLOSED Animation = GBAIRDOOR_CLSS AnimationMode = ONCE End End End Draw = W3DScriptedModelDraw ModuleTag_Draw_RADAR DefaultConditionState Model = GBAIRRADAR End ModelConditionState = STRUCTURE_UNPACKING Model = GBAIRDOOR_A End ModelConditionState = DAMAGED Model = GBAIRRADARD End ModelConditionState = REALLYDAMAGED Model = GBAIRRADARD End ModelConditionState = DYING Model = (null) End IdleAnimationState Flags = DO_NOT_PLAY_WHEN_UNPOWERED Animation = GBAIRRADAR AnimationMode = LOOP End End AnimationState = STRUCTURE_UNPACKING Animation = GBAIRDOOR_A AnimationMode = ONCE End End AnimationState = DAMAGED Flags = DO_NOT_PLAY_WHEN_UNPOWERED Animation = GBAIRRADARD AnimationMode = LOOP End End AnimationState = REALLYDAMAGED Flags = DO_NOT_PLAY_WHEN_UNPOWERED Animation = GBAIRRADARD AnimationMode = LOOP End End AnimationState = DYING Flags = DO_NOT_PLAY_WHEN_UNPOWERED Animation = GBAIRRADARD AnimationMode = LOOP End End End Draw = W3DScriptedModelDraw ModuleTag_RepairDecal DefaultConditionState Model = (null) End ModelConditionState = SELECTED Model = FXINVISBONE End End ; list 2 ; AttributeModifierPoolUpdate (DefaultAttributeModifierPoolUpdate:0x513bc476) ; FireWeaponWhenDeadBehavior (ModuleTag_CatalystDeathWeapon:0xdded328f) ; BuildingBehavior (ModuleTag_BuildingBehavior:0x2118a085) ; ProductionUpdate (ProductionUpdateModuleTag:0x34fe0d85) ; RecallUnitsSpecialPower (ModuleTag_RecallSpecialPower:0x6f3fa92f) ; SpawnBehavior (ModuleTag_SpawnRepairDrones:0xcf506a74) ; ParkingPlaceBehavior (ModuleTag_ParkingPlaceBehavior:0xb3283851) ; SlowDeathBehavior (ModuleTag_Death:0x73542d4a) ; FXListBehavior (ModuleTag_FXList:0xc74c39d8) ; StructureUnpackUpdate ((null):0x00000000) ; OCLSpecialPower (ModuleTag_OCLSpecialPowerBombingRun:0xca2e4032) ; AISpecialPowerUpdate (ModuleTag_CommandPostBombingRunAI:0xa6c8892a) ; OCLSpecialPower (ModuleTag_CallSupportBloodhound:0xc4577502) ; AISpecialPowerUpdate (ModuleTag_CommandPostCallBloodhoundAI:0x01043484) ; RepairUpdate (ModuleTag_RepairUpdate:0x41fdeb2a) ; EngineerContain (ModuleTag_EngineerContain:0xe2be8599) ; CreateObjectDie (ModuleTag_CreateOccupiedDie:0x34fd1923) ; CreateObjectDie (ModuleTag_CreateOccupiedSuicide:0x4bf392a4) End
  6. booto

    Sage Engine Scripting

    Do the TransitionState/ConditionState blocks in the above code look valid given other references in the shown code, such as that in the Script sections? (What's the difference between the ~= operator and the == operator in the context of 'Prev'?) Here's another example that seems to have more problems: (Ignore the duplicated SelectPortrait thing, that's okay for now.) Object GDIAirTower SelectPortrait = Portrait_GDIAirfield SelectPortrait = Portrait_GDIAirfield DisplayName = Name:GDIAirfield Cost = 1000 PreRequisites Object = GDICommandPost End CommandSet = GDIAirTowerCommandSet ArmorSet Armor = GDIAirTowerArmor DamageFX = FactionStructureDamageFX End Draw = W3DScriptedModelDraw ModuleTag_Draw ExtraPublicBone = Runway0Park0Han ExtraPublicBone = Runway0Park1Han ExtraPublicBone = Runway1Park0Han ExtraPublicBone = Runway1Park1Han DefaultConditionState Model = GBAirField End ConditionState = STRUCTURE_UNPACKING Model = GBAIRFIELD_ASKN End ConditionState = DAMAGED Model = GBAIRFIELD_D2SN ParticleSysBone = FXBone01 GDIPPDamagedSmoke End ConditionState = REALLYDAMAGED Model = GBAIRFIELD_D2SN ParticleSysBone = FXBone02 GDIPPDamagedSmoke ParticleSysBone = FXBone01 GDIPPDamagedFire ParticleSysBone = FXBone01 GDIPPDamagedSmoke ParticleSysBone = FXBone01 GDIRefineryDamagedDist End ConditionState = DYING Model = GBAIRFIELD_D3SN End TransitionState = End TransitionState = Animation = GBAIRFIELD_ABLD AnimationMode = ONCE ParticleSysBone = NONE Con_Small StateName = STRUCTURE_UNPACKING End TransitionState = STATE_Rubble Flags = START_FRAME_LAST Animation = GBAIRFIELD_D3AN AnimationMode = MANUAL BeginScript Prev = CurDrawablePrevAnimationState(); if Prev ~= "STATE_Rubble" and Prev ~= "TRANS_IntoRubble" then CurDrawableSetTransitionAnimState("TRANS_IntoRubble") end EndScript ParticleSysBone = NONE Des_Medium StateName = RUBBLE End TransitionState = STATE_ReallyDamaged Flags = START_FRAME_LAST Animation = GBAIRFIELD_D2AN AnimationMode = MANUAL BeginScript Prev = CurDrawablePrevAnimationState(); if Prev ~= "STATE_ReallyDamaged" and Prev ~= "TRANS_IntoReallyDamaged" then CurDrawableSetTransitionAnimState("TRANS_IntoReallyDamaged") end EndScript StateName = REALLYDAMAGED End TransitionState = TRANS_IntoReallyDamaged Animation = GBAIRFIELD_D2AN AnimationMode = ONCE End TransitionState = TRANS_IntoRubble Animation = GBAIRFIELD_D3AN AnimationMode = ONCE End End Draw = W3DScriptedModelDraw ModuleTag_Draw_Door01 DefaultConditionState Model = GBAIRDOOR01_SKN End ConditionState = STRUCTURE_UNPACKING Model = GBAIRDOOR_A End ConditionState = DYING PARKINGPLACE_1_DOOR_OPEN Model = GBAIRDOOR01_SKN End ConditionState = DYING Model = GBAIRDOOR01_D3SN End ConditionState = REALLYDAMAGED Model = GBAIRDOOR01_SKN End ConditionState = DAMAGED Model = GBAIRDOOR01_SKN End TransitionState = Animation = GBAIRDOOR_OPNS AnimationMode = ONCE End TransitionState = Animation = GBAIRDOOR_A AnimationMode = ONCE StateName = STRUCTURE_UNPACKING End TransitionState = Animation = GBAIRDOOR_OPNS AnimationMode = ONCE StateName = DYING PARKINGPLACE_1_DOOR_OPEN End TransitionState = Animation = GBAIRDOOR_D3AN AnimationMode = ONCE StateName = DYING End TransitionState = Animation = GBAIRDOOR_OPN AnimationMode = ONCE StateName = PARKINGPLACE_1_DOOR_OPENING End TransitionState = Animation = GBAIRDOOR_OPNS AnimationMode = ONCE StateName = PARKINGPLACE_1_DOOR_OPEN End TransitionState = Animation = GBAIRDOOR_CLS AnimationMode = ONCE StateName = PARKINGPLACE_1_DOOR_CLOSING End TransitionState = Animation = GBAIRDOOR_CLSS AnimationMode = ONCE StateName = PARKINGPLACE_1_DOOR_CLOSED End End Draw = W3DScriptedModelDraw ModuleTag_Draw_Door02 DefaultConditionState Model = GBAIRDOOR02_SKN End ConditionState = STRUCTURE_UNPACKING Model = GBAIRDOOR_A End ConditionState = DAMAGED Model = GBAIRDOOR02_SKN End ConditionState = REALLYDAMAGED Model = GBAIRDOOR02_SKN End ConditionState = DYING PARKINGPLACE_1_DOOR_OPEN Model = GBAIRDOOR02_SKN End ConditionState = DYING Model = GBAIRDOOR02_D3SN End TransitionState = Animation = GBAIRDOOR_OPNS AnimationMode = ONCE End TransitionState = Animation = GBAIRDOOR_A AnimationMode = ONCE StateName = STRUCTURE_UNPACKING End TransitionState = Animation = GBAIRDOOR_OPNS AnimationMode = ONCE StateName = DYING PARKINGPLACE_1_DOOR_OPEN End TransitionState = Animation = GBAIRDOOR_D3AN AnimationMode = ONCE StateName = DYING End TransitionState = Animation = GBAIRDOOR_OPN AnimationMode = ONCE StateName = PARKINGPLACE_3_DOOR_OPENING End TransitionState = Animation = GBAIRDOOR_OPNS AnimationMode = ONCE StateName = PARKINGPLACE_3_DOOR_OPEN End TransitionState = Animation = GBAIRDOOR_CLS AnimationMode = ONCE StateName = PARKINGPLACE_3_DOOR_CLOSING End TransitionState = Animation = GBAIRDOOR_CLSS AnimationMode = ONCE StateName = PARKINGPLACE_3_DOOR_CLOSED End End Draw = W3DScriptedModelDraw ModuleTag_Draw_Door03 DefaultConditionState Model = GBAIRDOOR03_SKN End ConditionState = STRUCTURE_UNPACKING Model = GBAIRDOOR_A End ConditionState = DAMAGED Model = GBAIRDOOR03_SKN End ConditionState = REALLYDAMAGED Model = GBAIRDOOR03_SKN End ConditionState = DYING PARKINGPLACE_1_DOOR_OPEN Model = GBAIRDOOR03_SKN End ConditionState = DYING Model = GBAIRDOOR03_D3SN End TransitionState = Animation = GBAIRDOOR_OPNS AnimationMode = ONCE End TransitionState = Animation = GBAIRDOOR_A AnimationMode = ONCE StateName = STRUCTURE_UNPACKING End TransitionState = Animation = GBAIRDOOR_OPNS AnimationMode = ONCE StateName = DYING PARKINGPLACE_1_DOOR_OPEN End TransitionState = Animation = GBAIRDOOR_D3AN AnimationMode = ONCE StateName = DYING End TransitionState = Animation = GBAIRDOOR_OPN AnimationMode = ONCE StateName = PARKINGPLACE_2_DOOR_OPENING End TransitionState = Animation = GBAIRDOOR_OPNS AnimationMode = ONCE StateName = PARKINGPLACE_2_DOOR_OPEN End TransitionState = Animation = GBAIRDOOR_CLS AnimationMode = ONCE StateName = PARKINGPLACE_2_DOOR_CLOSING End TransitionState = Animation = GBAIRDOOR_CLSS AnimationMode = ONCE StateName = PARKINGPLACE_2_DOOR_CLOSED End End Draw = W3DScriptedModelDraw ModuleTag_Draw_Door04 DefaultConditionState Model = GBAIRDOOR04_SKN End ConditionState = STRUCTURE_UNPACKING Model = GBAIRDOOR_A End ConditionState = DAMAGED Model = GBAIRDOOR04_SKN End ConditionState = REALLYDAMAGED Model = GBAIRDOOR04_SKN End ConditionState = DYING PARKINGPLACE_1_DOOR_OPEN Model = GBAIRDOOR04_SKN End ConditionState = DYING Model = GBAIRDOOR04_D3SN End TransitionState = Animation = GBAIRDOOR_OPNS AnimationMode = ONCE End TransitionState = Animation = GBAIRDOOR_A AnimationMode = ONCE StateName = STRUCTURE_UNPACKING End TransitionState = Animation = GBAIRDOOR_OPNS AnimationMode = ONCE StateName = DYING PARKINGPLACE_1_DOOR_OPEN End TransitionState = Animation = GBAIRDOOR_D3AN AnimationMode = ONCE StateName = DYING End TransitionState = Animation = GBAIRDOOR_OPN AnimationMode = ONCE StateName = PARKINGPLACE_4_DOOR_OPENING End TransitionState = Animation = GBAIRDOOR_OPNS AnimationMode = ONCE StateName = PARKINGPLACE_4_DOOR_OPEN End TransitionState = Animation = GBAIRDOOR_CLS AnimationMode = ONCE StateName = PARKINGPLACE_4_DOOR_CLOSING End TransitionState = Animation = GBAIRDOOR_CLSS AnimationMode = ONCE StateName = PARKINGPLACE_4_DOOR_CLOSED End End Draw = W3DScriptedModelDraw ModuleTag_Draw_RADAR DefaultConditionState Model = GBAIRRADAR End ConditionState = STRUCTURE_UNPACKING Model = GBAIRDOOR_A End ConditionState = DAMAGED Model = GBAIRRADARD End ConditionState = REALLYDAMAGED Model = GBAIRRADARD End ConditionState = DYING Model = (null) End TransitionState = Flags = DO_NOT_PLAY_WHEN_UNPOWERED Animation = GBAIRRADAR AnimationMode = LOOP End TransitionState = Animation = GBAIRDOOR_A AnimationMode = ONCE StateName = STRUCTURE_UNPACKING End TransitionState = Flags = DO_NOT_PLAY_WHEN_UNPOWERED Animation = GBAIRRADARD AnimationMode = LOOP StateName = DAMAGED End TransitionState = Flags = DO_NOT_PLAY_WHEN_UNPOWERED Animation = GBAIRRADARD AnimationMode = LOOP StateName = REALLYDAMAGED End TransitionState = Flags = DO_NOT_PLAY_WHEN_UNPOWERED Animation = GBAIRRADARD AnimationMode = LOOP StateName = DYING End End Draw = W3DScriptedModelDraw ModuleTag_RepairDecal DefaultConditionState Model = (null) End ConditionState = SELECTED Model = FXINVISBONE End End End
  7. booto

    Sage Engine Scripting

    Also, I realise that it's not anywhere close to a complete GameObject def'n, the models/animations just seemed like as good a place as any to start.
  8. booto

    Sage Engine Scripting

    Nobody? The reason I ask this is because I've started taking a look at the GameObject stream type, but I'm not really familiar with various syntaxes allowed in previous sage engines, etc (beyond googling). It would be helpful if there was someone about who was fairly knowledgeable about this stuff who I could ask about stuff. At the moment, I'm outputting the processed stream in a format similar to gens/bfme ini style, it's just an output format to try and work out what blocks are, etc... the original input format was believed to by an xml form of this data. An example of what I can currently 'automagically' output: Object GDIRefinery SelectPortrait = Portrait_GDIRefinery SelectPortrait = Portrait_GDIRefinery DisplayName = Name:GDIRefinery Cost = 2000 PreRequisites Object = End CommandSet = GDIRefineryCommandSet ArmorSet Armor = GDIRefineryArmor DamageFX = FactionStructureDamageFX End Draw = W3DScriptedModelDraw ModuleTag_Draw DefaultConditionState Model = GBRefinery End ConditionState = STRUCTURE_UNPACKING Model = GBREFINERY_ASN End ConditionState = DAMAGED Model = GBREFINERY_D2 ParticleSysBone = FXBone01 GDIRefineryDamagedSmoke ParticleSysBone = FXBone02 GDIRefineryDamagedSmoke ParticleSysBone = FXBone02 GDIRefineryDamagedFire ParticleSysBone = FXBone02 GDIRefineryDamagedDist ParticleSysBone = FXSmokeStackA GDIRefinerySmoke ParticleSysBone = FXSmokeStackA GDIRefinerySmokeDistortion ParticleSysBone = FXTiberiumA GDIRefineryTibA ParticleSysBone = FXTiberiumA GDIRefineryTibDistortionA End ConditionState = REALLYDAMAGED Model = GBREFINERY_D2 ParticleSysBone = FXBone01 GDIRefineryDamagedSmoke ParticleSysBone = FXBone01 GDIRefineryDamagedFire ParticleSysBone = FXBone01 GDIRefineryDamagedDist ParticleSysBone = FXBone02 GDIRefineryDamagedDist ParticleSysBone = FXBone02 GDIRefineryDamagedSmoke ParticleSysBone = FXBone02 GDIRefineryDamagedFire ParticleSysBone = FXBone03 GDIRefineryDamagedSteam ParticleSysBone = FXBone03 GDIRefineryDamagedDist2 ParticleSysBone = FXSmokeStackA GDIRefinerySmoke ParticleSysBone = FXSmokeStackA GDIRefinerySmokeDistortion ParticleSysBone = FXTiberiumA GDIRefineryTibA ParticleSysBone = FXTiberiumA GDIRefineryTibDistortionA End ConditionState = DYING Model = GBREFINERY_D3 End ConditionState = USER_1 Model = GBRefinery ParticleSysBone = FXSmokeStackA GDIRefinerySmoke ParticleSysBone = FXSmokeStackA GDIRefinerySmokeDistortion ParticleSysBone = FXSmokeStackB GDIRefinerySmoke ParticleSysBone = FXSmokeStackB GDIRefinerySmokeDistortion ParticleSysBone = FXTiberiumA GDIRefineryTibA ParticleSysBone = FXTiberiumA GDIRefineryTibDistortionA End TransitionState = STATE_bored End TransitionState = STATE_Buildup Animation = GBREFINERY_AAN AnimationMode = ONCE ParticleSysBone = NONE Con_Large StateName = STRUCTURE_UNPACKING End TransitionState = Animation = GBREFINERY_AAN AnimationMode = ONCE StateName = TRANS_Buildup End TransitionState = STATE_Damaged Flags = START_FRAME_FIRST Animation = GBREFINERY_D2A AnimationMode = MANUAL StateName = DAMAGED End TransitionState = STATE_ReallyDamaged Animation = GBREFINERY_D2A AnimationMode = ONCE BeginScript Prev = CurDrawablePrevAnimationState(); if Prev == "STATE_Damaged" then CurDrawableSetTransitionAnimState("TRANS_DamagedToReallyDamaged") end; EndScript StateName = REALLYDAMAGED End TransitionState = STATE_Dying Animation = GBREFINERY_D3A AnimationMode = ONCE ParticleSysBone = NONE Des_Large StateName = DYING End TransitionState = Animation = GBREFINERY_D2A AnimationMode = ONCE StateName = TRANS_DamagedToReallyDamaged End End Draw = W3DScriptedModelDraw ModuleTag_Draw_TIB DefaultConditionState Model = GBREFINERY_TIB End ConditionState = STRUCTURE_UNPACKING Model = NBEMPTY_ABLD End TransitionState = BeginScript CurDrawableHideSubObject("Tib_25") CurDrawableHideSubObject("Tib_50") CurDrawableHideSubObject("Tib_75") CurDrawableHideSubObject("Tib_100") CurDrawableHideSubObject("FXGlows_25") CurDrawableHideSubObject("FXGlows_50") CurDrawableHideSubObject("FXGlows_75") CurDrawableHideSubObject("FXGlows_100") EndScript End TransitionState = STATE_Buildup Animation = NBEMPTY_ABLD AnimationMode = ONCE StateName = STRUCTURE_UNPACKING End TransitionState = BeginScript CurDrawableShowSubObject("Tib_25") CurDrawableHideSubObject("Tib_50") CurDrawableHideSubObject("Tib_75") CurDrawableHideSubObject("Tib_100") CurDrawableShowSubObject("FXGlows_25") CurDrawableHideSubObject("FXGlows_50") CurDrawableHideSubObject("FXGlows_75") CurDrawableHideSubObject("FXGlows_100") EndScript StateName = MONEY_STORED_AMOUNT_1 End TransitionState = BeginScript CurDrawableHideSubObject("Tib_25") CurDrawableShowSubObject("Tib_50") CurDrawableHideSubObject("Tib_75") CurDrawableHideSubObject("Tib_100") CurDrawableHideSubObject("FXGlows_25") CurDrawableShowSubObject("FXGlows_50") CurDrawableHideSubObject("FXGlows_75") CurDrawableHideSubObject("FXGlows_100") EndScript StateName = MONEY_STORED_AMOUNT_2 End TransitionState = BeginScript CurDrawableHideSubObject("Tib_25") CurDrawableHideSubObject("Tib_50") CurDrawableShowSubObject("Tib_75") CurDrawableHideSubObject("Tib_100") CurDrawableHideSubObject("FXGlows_25") CurDrawableHideSubObject("FXGlows_50") CurDrawableShowSubObject("FXGlows_75") CurDrawableHideSubObject("FXGlows_100") EndScript StateName = MONEY_STORED_AMOUNT_3 End TransitionState = BeginScript CurDrawableHideSubObject("Tib_25") CurDrawableHideSubObject("Tib_50") CurDrawableHideSubObject("Tib_75") CurDrawableShowSubObject("Tib_100") CurDrawableHideSubObject("FXGlows_25") CurDrawableHideSubObject("FXGlows_50") CurDrawableHideSubObject("FXGlows_75") CurDrawableShowSubObject("FXGlows_100") EndScript StateName = MONEY_STORED_AMOUNT_4 End End Draw = W3DScriptedModelDraw ModuleTag_Draw_Arm DefaultConditionState Model = GBREFINERYX_SKN End ConditionState = STRUCTURE_UNPACKING Model = GBREFINERYXD3 End ConditionState = DAMAGED Model = GBREFINERYXD2 End ConditionState = REALLYDAMAGED Model = GBREFINERYXD2 End ConditionState = DYING Model = GBREFINERYXD3 End TransitionState = Animation = GBREFINERYX_IDL AnimationMode = LOOP BeginScript CurDrawableHideSubObject("Bar_01") EndScript End TransitionState = Animation = GBREFINERYX_LOA AnimationMode = ONCE BeginScript CurDrawableShowSubObject("Bar_01") EndScript StateName = DOCKING_ACTIVE End End End While some of the above strings are taken straight from the streams, some are simply what I've tried to piece together based on bfme/gens scripts I've been able to google... I realise that some of it might not be valid... or make sense... which is one of the main reasons why I'm asking if anyone out there wants to lend a hand.
  9. Are there people idling about here who are quite knowledgeable about ini scripting of sage engine things? (gens through to the most recent bfme thing - specifically the legal syntax of GameObject blocks)
  10. New version, GPL license. Support for more streams (mostly within map brmi files). Support for hashtable loading for string resolution. (need to extract the hashtable from stringhashes.{bin,manifest,relo,imp} first) binopener.r00
  11. No longer necessary to extract Art.big, the tool should be able to locate it automatically and use the contents on-the-fly. Also included is a dll (src & GPL'd) for big file access. TerrainTextureAtlasCompiler.r00
  12. There were issues if there were too many textures in the atlas, this should no longer be an issue. Please use OS Big Editor to extract Art.big, not FinalBig... I used the latter, spent a while trying to track down the cause of odd problems, switched to the former and the problems no longer existed. I think FinalBig might do weird things with the names of files and/or directories (including unprintable characters?) --rj TerrainTextureAtlasCompiler.r00
  13. Not much in the way of docs with this, basically run it with a map.xml file in the current directory. In order to specify directories to get the textures from, use the -a commandline switch e.g. TerrainTextureAtlasCompiler.exe -a G:\tmp\art (this is the command I run locally - G:\tmp is the root of extraction from the Art.big file)
  14. This commandline app should help create the two dds images and the trailer for a TerrainTextureAtlas. Source is included, app released under GPL. TerrainTextureAtlasCompiler.r00
  15. booto

    .bin Data

    I had a quick look through the GameObject stuff, it seems like a binary version of the Object definitions from BFME. The strings you can see are referenced via offsets in the file at locations given by the relo offsets. (Strings in files from the brmi sets typically consist of a 8byte (length, offset) pair, GameObject adheres to this.) I had a quick look at Lua stuff and the sections I looked at didn't seem to be 'sane' Lua bytecode using the standard open source Lua implementation (presumably what EA would have used, as it's free to use in commercial projects.)
×