Command and Conquer: Renegade Official Forums - RDF feed
C&C: Renegade --> Dying since 2003™, resurrected in 2024!
TL;DR See bottom of post EDIT: Using this post as overall progress report. The completed/uncompleted lists now contain all the scripts I have. Hello, here I am again after some time. I am re-releasing M13 reversed engineered scripts. Why? You may ask.. Well because of the following: - I was bored and wanted to learn more and improve upon myself - The first release was total shit (http://www.renegadeforums.com/index.php?t=msg&goto=470778& and http://www.renegadeforums.com/index.php?t=tree&th=39557&) It was one big file, non-compileable maybe like 60-70% accurate decompilation and no code flow analyzation had been done. - Because I can. This release should be like 99.99% close to what the original scripts were. I have a lot of confidence that you could replace all original scripts with these and make M13 run normal. I pretty much decompiled every. single. script. that is used in some way in M13 (Including, but not limited to some M00 scripts). I even included some scripts that mention M13, but aren't used in any way. Also note: the release contains 2 txt files: Completed.txt and Uncompleted.txt. What these files mean is that completed has FULL code flow analysis (e.g. proper local/member variable names and comments). The uncompleted file contains some scripts that are still missing some parts. This is because I was unable to find the code flow for those parts. I've marked those parts with TODO labels, in-case I find them later, or somebody else does. So again, the scripts marked uncompleted will function correctly/the same as the original. Also, Also, I included all cinematic files that are used (that I know of) Now a list of released scripts: Completed Toggle Spoiler Havoc_Script MX0_Engineer_Goto M00_Soldier_Powerup_Disable M00_Send_Object_ID MX0_NOD_TroopDrop M00_Play_Sound MX0_A02_ZONE_STARTUP M00_Cinematic_Attack_Command_DLS M00_Cinematic_Kill_Object_DAY M00_Disable_Loiter_DAY M00_Generic_Conv_DME MX0_SniperAction MX0_KillNotify MX0_Engineer_Goto2 MX0_A02_GDI_APC MX0_A02_GDI_VEHICLE MX0_A02_HELICOPTER MX0_A02_GDI_MEDTANK MX0_A03_TANK MX0_A03_NOD_PLACED_MINIGUNNER M00_Nod_Turret MX0_A03_NOD_TURRET MX0_GDI_ORCA MX0_A03_NOD_HARVESTER MX0_A03_NOD_BUGGIE MX0_Area4_Zone_DLS MX0_Nod_Bunker_DLS M01_Destroyed_SAMSITE_JDG M03_Destroyed_SAM_Site MX0_GDI_Killed_DLS MX0_Explosive_Barrels_DLS MX0_Plant_Ion_Beacon_DLS MX0_A03_FIRST_PLAYER_ZONE MX0_A03_GDI_TROOP_DROP_ZONE_DAK MX0_A03_GDI_INFANTRY MX0_A03_CONTROLLER_DAK MX0_MissionStart_DME MX0_Engineer1 MX0_Engineer2 MX0_GDI_Soldier_DLS MX0_A03_END_ZONE MX0_Vehicle_DLS MX0_SAM_DLS MX0_Nod_RocketSoldier_DLS MX0_Gun_Emplacement_DLS MX0_A03_GDI_TROOPER_ONE M00_BuildingStateSoundController M00_BuildingStateSoundSpeaker M00_Soldier_Powerup_Grant M00_Damage_Modifier_DME M00_Powerup_Destroy M00_Disable_Transition M00_Play_Sound_Object_Bone_DAY M00_Disable_Physical_Collision_JDG M00_Vehicle_Regen_DAK M02_Nod_Jet_Waypath M02_Mendoza M02_Nod_Jet M02_Nod_Sakura M02_GDI_Helicopter M02_Reset_Spawn M02_Destroy_Vehicle DLS_Where_Am_I M02_Helipad M01_Barn_Truck_JDG M02_Destroy_Objective M02_Nod_Convoy_Truck M02_Dam_MCT M02_Encyclopedia_Reveal M02_Commando_Start M02_Data_Disk M02_Approach_Vehicle M02_GDI_Soldier M02_Nod_Apache M02_Nod_Soldier M02_Nod_Vehicle M02_Obelisk M02_Objective_Controller M02_Objective_Zone M02_Player_Vehicle M02_Power_Plant M02_Respawn_Controller M02_Stationary_Vehicle M03_SAM_Site_Logic M07_Disable_Hibernation M01_First_AutoRifle_JDG M01_Flyover_Generic_Script_JDG M01_FP_BaseToBase_NorthSouth_Contoller_JDG M01_FP_BaseToBase_SouthNorth_Contoller_JDG M01_FP_GDIOcean_NorthSouth_Contoller_JDG M01_FP_GDIOcean_SouthNorth_Contoller_JDG M01_FP_NodBase_NorthSouth_Contoller_JDG M01_FP_NodBase_SouthNorth_Contoller_JDG M01_FP_NodBase_EastWest_Contoller_JDG M01_FP_NodBase_WestEast_Contoller_JDG M01_FP_NodBase_Dogfight_Contoller_JDG M01_Announce_First_ObjectiveZone_JDG M01_GDI_BeachGuy01_JDG M01_Beach_Datadisc_JDG M01_ConDropZone_JDG M01_Use_Ladder_Zone_JDG M01_Base_StartZone_JDG M01_Base_GDI_Fodder_JDG M01_AccessDenied_Zone_JDG M00_No_Falling_Damage_DME M00_HealthMedal_TextMessage M00_C130_Explosion M00_BUILDING_EXPLODE_NO_DAMAGE_DAK M00_ArmorMedal_TextMessage_JDG M00_Obelisk_Weapon M01_C130_Dropoff_Dude_JDG M01_SniperRifle_02_JDG M01_SniperRifle_02_AirdropZone_JDG M01_GDIBase_FirstChinookMinigunnerGuy_JDG M01_Nod_Truck_JDG M01_Base_Nod_Minigunner_JDG M01_C4_TutorialScript_JDG M01_SniperRifle_01_JDG M01_SniperRifle_01_Target_JDG M01_HON_FrontDoor_Evacuator_JDG M01_CommCenter_Evacuator_JDG M01_HarvesterScript_New_JDG M01_KeyCard01_Script_JDG M01_Tiberium_Cave_Helicopter_JDG M01_Nod_Chinook_Reinforcement_Guy_JDG M01_Hunt_The_Player_JDG M01_Evac_TroopBone_JDG M01_POW_Nod_Minigunner01_JDG M01_BackPath_EntranceZone_JDG M01_BasalBuilding_Population_JDG M01_QuickSave_Zone_JDG M01_TriggerZone_GDIBase_BaseCommander_JDG M01_Duncan_Assailer_JDG M01_MiniGunner_Point_Guard_JDG M01_BackPath_NodGuy_JDG M01_TibCave01_Datadisc_JDG M01_BarnArea_NOD_Commander_Trigger_Zone02_JDG M01_RealLightTank_TriggerZone_JDG M01_Announce_TankAirstrikeZone_JDG M01_GuardTower02_NewSniperTarget_JDG M01_GDI_GuardTower02_SniperRifle_JDG M01_GDIBase_AI_ExitZone_JDG M01_Player_is_Entering_GDI_Base_Zone M01_PlayerLeaving_BarnArea_Zone_JDG M01_Player_is_Leaving_GDI_Base_Zone M01_PlayerEntering_BarnArea_Zone_JDG M01_Barn_Point_Guard_01_JDG M01_C4_Tutorial_Zone_JDG M01_FodderHovercraft_Script_JDG M01_Medium_Tank01_JDG M01_Medium_Tank_JDG M01_Sinking_Gunboat_JDG M01_Gunboat_Spawn_Hovercraft_Zone_JDG M01_Barn_EntryZone_JDG M01_Barn_Door_Guard_JDG M01_Barn_Talk_Guard_01_JDG M01_Shed_Datadisc_JDG M01_Player_Is_Entering_Tailgun_Alley_Backway_JDG M01_Tunnel_Exterior_Zone M01_Tunnel_Interior_Zone M01_Player_Is_Entering_Tailgun_Alley_JDG M01_TurnOff_TankReminder_Zone_JDG M01_HON_Commander_Guy M01_Lose_Any_Church_Escorts_Zone_02 M01_Player_Is_Crossing_Bridge_Zone M01_Waterfall_Exterior_Zone M01_Waterfall_Interior_Zone M01_TibCave_StartZone_JDG M00_VisceroidInnate_DAY M01_TibCave02_Datadisc_JDG M01_Player_Is_Crossing_Bridge_Via_Cave_Zone M01_Tiberium_Cave_Spawn_Helicopter_Zone_JDG M01_Entering_Church_Area_Zone M01_Player_Is_Crossing_Bridge_Via_Church_Zone M01_Church_Loveshack_InterrogationConv_Zone_JDG M01_Church_Guard_MiniGunner_JDG M01_Priest_Datadisc_JDG M01_Nod_GuardTower_01_Enter_Zone_JDG M01_GuardTower_Sniper_Target_JDG M01_Turn_on_the_Hand_of_Nod_Zone_JDG M01_Lose_Any_Church_Escorts_Zone M01_Announce_Hand_of_Nod_Zone M01_ChurchArea_Spawner_Guy_JDG M01_Whack_A_Mole_Enter_Zone_JDG M01_Nod_GuardTower_03_Enter_Zone_JDG M01_HON_Medlab_DropOff_Guy_JDG M01_Lose_Any_HON_Escorts_Zone M01_HandOfNod_SAMSite_Script M01_Hand_Of_Nod_Exterior_Zone M01_Hand_Of_Nod_Interior_Zone M01_Havoc_Out_WarroomZone_JDG M01_Havoc_In_WarroomZone_JDG M01_HON_Escorts_Warroom_MCT_ZoneController_JDG M01_HON_Escorts_Warroom_MCT_Protector01_JDG M01_HON_Escorts_Warroom_MCT_Protector02_JDG M01_Hand_Of_Nod_Grunt_Zone M01_Hand_of_Nod_Building_Script_JDG M01_Hand_Of_Nod_Dojo_Zone M01_Civ_To_Minigunner_Guy_JDG M01_HON_Paintball_Team_02_JDG M01_HON_Paintball_Team_01_JDG M01_Right_Interrogation_Room_Enter_Zone_JDG M01_Left_Interrogation_Room_Enter_Zone_JDG M01_HON_RedKey_Zone_JDG M01_Medlab_Datadisc_JDG M01_UnScramble_Radar_Zone M01_Scramble_Radar_Zone M01_Lose_Any_HON_Escorts_Zone_02 M01_Announce_Prisoner_Objective_Zone M01_Comm_Center_Building_Script_JDG M01_CommCenter_SAMSite_Script M01_Comm_Center_Exterior_Zone M01_Comm_Center_Interior_Zone M01_Comm_Mainframe_PogZone_01_JDG M01_Comm_Mainframe_PogZone_02_JDG M01_Comm_Mainframe_PogZone_03_JDG M01_Comm_Base_Commander_Conv_Start_Zone_JDG M01_Comm_Base_Commander_JDG M11_Temple_Hologram_01_JDG M01_Obelisk_UpdateDisc_JDG M01_Mainframe_Tutorial_Zone_JDG M01_Detention_GuardTower_Enter_Zone_JDG M01_MovieProjector_JDG M01_TurretBeach_GDI_Guy_02_JDG M01_HON_BackDoor_Evacuator_JDG M01_Base_GDI_Grenadier_JDG M01_Ambient_Sound_Controller_JDG M01_Mission_Controller_JDG M01_Whack_A_Mole_Minigunner_JDG M01_HON_Easy_Spawned_Guy_01_JDG M01_HON_Easy_Spawned_Guy_02_JDG M01_HON_Easy_Spawned_Guy_03_JDG M01_COMM_Chinook_Spawned_Soldier_GDI M01_HON_Chinook_Spawned_Soldier_01_GDI_JDG M01_HON_Chinook_Spawned_Soldier_02_GDI_JDG M01_HON_Chinook_Spawned_Soldier_03_GDI_JDG M01_HON_Chinook_Spawned_Soldier_04_GDI_JDG M01_TurretBeach_Chinook_Spawned_Soldier_NOD M01_GDIBaseCommander_EvacController_JDG M01_GDIBaseCommander_Air_Evac_Waypath_JDG M01_GDIBaseCommander_Air_Evac_Chopper_JDG M01_GDIBaseCommander_Air_Evac_Rope_JDG M01_GDIBase_POW_Conversation_Controller_JDG M01_GDIBase_POWEncounter02_Controller_JDG M01_GDIBasePOW_Air_Evac_Waypath_JDG M01_GDIBasePOW_Air_Evac_Chopper_JDG M01_GDIBasePOW_Air_Evac_Rope_JDG M01_Base_POW01_JDG M01_Base_POW02_JDG M01_Duncan_InHere_ConvController_JDG M01_Commander_Shack_Zone_JDG M01_GDIBase_BaseCommander_JDG M01_Airstrike_Controller_JDG M01_Deco_LightTanks_JDG M01_GuardTower02_Sniper_TowerZone_JDG M01_GuardTower02_Sniper_Target01_JDG M01_GuardTower02_Sniper_Target02_JDG M01_GDI_GuardTower_NOD_Commander_JDG M01_GDIBase_RealLightTank_JDG M01_Billys_Conversation_Zone_JDG M01_Hovercraft_Explosion_Controller_JDG M01_TurretBeach_Turret_01_Script_JDG M01_TurretBeach_FodderHovercraft_Controller_JDG M01_Medium_Tank_Tunnel_Squish_Guy_JDG M01_TurretBeach_Engineer_JDG M01_GunboatAction_Controller_JDG M01_Initial_Gunboat_Script_JDG M01_BarnArea_EvacMonitor_JDG M01_BarnArea_Air_Evac_Waypath_JDG M01_BarnArea_Air_Evac_Chopper_JDG M01_BarnArea_Air_Evac_Rope_JDG M01_Barn_Prisoner_01_JDG M01_Barn_Prisoner_02_JDG M01_Barn_Prisoner_03_JDG M01_Barn_Babushkas_Conversation_Zone_JDG M01_BarnArea_AI_ExitZone_JDG M01_Tank_Entering_Tunnel_Zone_JDG M01_MediumTank_ReminderZone_JDG M01_TailGun_01_JDG M01_TailGun_02_JDG M01_TailGun_03_JDG M01_GDIBase_LightTank_JDG M01_GDI_Base_Spawner_Controller_JDG M01_CantBring_MediumTank_ThroughHereZone_JDG M01_TailgunRun_NOD_Commander_JDG M01_Visceroid01_JDG M01_Visceroid02_JDG M01_Visceroid03_JDG M01_Visceroid_NodGuy01_JDG M01_Visceroid_NodGuy02_JDG M01_Tailgun_Run_Spawner_Controller_JDG M01_TiberiumCave_UpThere_NodGuy_JDG M01_TibField_Guard01_New_JDG M01_Interior_Nun_Conversation_Zone_JDG M01_GDI_Escort_Conversation_Controller_GDI M01_ChurchArea_EvacMonitor_JDG M01_Church_EvacController_JDG M01_ChurchArea_Air_Evac_Waypath_JDG M01_ChurchArea_Air_Evac_Chopper_JDG M01_ChurchArea_Air_Evac_Rope_JDG M01_CHURCH_Chinook_Spawned_Soldier01_GDI M01_CHURCH_Chinook_Spawned_Soldier02_GDI M01_Church_Exterior_MiniGunner_JDG M01_Church_LoveShack_MiniGunner_JDG M01_Church_LoveShack_Nun_JDG M01_Priest_Conversation_Zone_JDG M01_Loveshack_Nun_Conversation_Zone_JDG M01_Church_Balcony_MiniGunner_JDG M01_Church_Priest_JDG M01_Church_Interior_Nun_JDG M01_ChurchArea_NOD_Commander_JDG M01_ChurchArea_Spawner_Controller_JDG M01_Whack_A_Mole_Exit_Zone_JDG M01_HON_WarroomController_JDG M01_HON_Escorts_Warroom_MCT_Commander_JDG M01_HON_Engineer02_JDG M01_GiveMCTSpeech_Zone_JDG M01_HON_Cafeteria_Walking_Guy_JDG M01_HON_Cafeteria_Eating_Guy_JDG M01_HON_Dorm_RocketGuy_JDG M01_HON_Dorm_ChemGuy_JDG M01_HON_Dorm_MiniGunner_JDG M01_HON_Dorm_FlameGuy_JDG M01_HON_Dorm_Crapper_JDG M01_HON_Dojo_Trainer_JDG M01_HON_Dojo_Civ_01_JDG M01_PaintballRoom_ChatterController_JDG M01_Interrogation_Room_Surprise_Guy_JDG M01_BuggyNew_Controller_JDG M01_BuggyScript_New_JDG M01_Comm_Stationary_Tech_JDG M01_Comm_Upstairs_Guard_JDG M01_Comm_Repair_Engineer_JDG M01_Comm_ComputerRoom_Tech_JDG M01_Comm_Center_Player_Terminal_Zone M01_GateSwitch_Tutorial_Zone_JDG M01_Comm_Center_Pen_Gate M01_DetentionPen_CivDeathMonitor M01_PrisonPen_Civilian_JDG M01_Propaganda_Sounds_Controller_JDG M01_DetentionPen_GDIDeathMonitor M01_PrisonPen_POW_JDG M01_TurretBeach_GDI_Guy_01_JDG M01_Nod_Commander_Conversation_Controller_GDI M01_GDIBase_EvacMonitor_JDG M01_Objective_Pog_Controller_JDG M01_DataDisc_TextController_JDG M01_GDI_Base_Artillery_Controller_JDG M01_Base_GDI_Minigunner_JDG M03_Cine_Explosion M03_Damage_Modifier_All M03_Killed_Sound RMV_Trigger_Killed M03_AggAndCover RMV_Home_Point M03_Beach_Radio M10_Pokeable_Item_OnePoke M03_Past_Pillbox M03_Reinforcement_Chinook M03_No_More_Parachute M03_Beach_Turret M03_Destroyed_Turret M03_Wheres_The_Star RMV_Trigger_Zone M09_Innate_Activate M00_Reveal_Enc_Character_DAY M03_DataDiscMessage RMV_Trigger_Zone_2 RMV_Hostage_Rescue_Point M03_Zone_Enabled_Spawner M03_Killed_Disabled_Spawner M10_Stationary M03_Structure_Powerup_Drop M03_Destroyed_Chinook M08_Nod_Turret M03_Engineer_Repair M03_Tiberium_Cave_Stay_Put M03_Ambient_Birdcall_Controller_JDG M03_Radar_UnScramble M10_Elevator_All_Zone M03_Power_Plant M03_Base_Patrol M03_Protect_The_MCT RMV_Camera_Behavior M03_Technician_Work M03_Mct_Poke RMV_M03_Comm_Center_Terminal Sakura_Killed M03_Sakura_Explosion M03_Officer_With_Key_Card2 M06_Activate_Secret_Door M03_Holograph_EntryZone_JDG M03_KaneHead_JDG RMV_Volcano_And_Lava_Ball_Creator RMV_Engine_Sound M03_Refinery M03_Officer_With_Key_Card M03_Key_Card M00_InnateIsStationary M09_Attack_Blocked_False M03_Mission_Complete_Zone RMV_Trigger_Poked M00_Trigger_When_Destroyed_RMV M03_Beach_Scenario_Controller M00_Object_Create_RMV M03_Intro_Substitute M00_Put_Script_On_Commando M00_Damaged_Warning M03_Initial_Powerups M03_Commando_Script M03_Objective_Controller M03_Objective_Tracker M03_Chinook_Reinforcements M03_Gunboat_Controller_RMV DLS_Volcano_Stumble M03_Beach_Reinforce M03_Chinook_ParaDrop M03_Paratrooper_Run M03_Conversation_Zone M03_Staged_Conversation_1 M09_Innate_Disable M00_Trigger_When_Killed_RMV M03_Alternate_Sam_Site M03_Chinook_Fodder_Creator M03_Inlet_Nod_Reinforcements M00_Object_Destroy_Self_RMV M03_Engineer_Target RMV_Test_Big_Gun_Turning M03_Radar_Scramble M10_Elevator_All_Controller M03_ConYardSeen M03_PowerPlant_Warning M03_Announce_PowerPlant_Controller_JDG M03_Area_Troop_Counter M03_Reinforce_Area M03_CommCenter_Arrow M03_CommCenter_Warning M03_Comm_Killed M03_Announce_CommCenter_Controller_JDG M03_Flyover_Controller M03_Base_Harvester RMV_Engineer_Wander M03_Announce_Refinery_Controller_JDG DLS_Volcano_Active // Below are scripts that are not used, but they are present MX0_A02_DEFAULT_OFF MX0_A02_ZONE_DEFAULT_ON MX0_A03_HAVOC_TANK MX0_A03_TROOPER_ONE_TEST MX0_A03_GDI_TANK_DROP_ZONE_DAK DAK_MX0_Sec_3_Humvee MX0_AmbientBattle MX0_Kill_Sniper MX0_Engineer_Return M01_GDI_GuardTower_02_Enter_Zone_JDG M01_ConYard_Dropoff_Dude_JDG M01_GDI_BaseCommander_Backside_EntryZone_JDG M01_GDIBase_BackPath_NodGuy_JDG M01_GDIBase_LightTank_PastTunnelZone_JDG M01_BarnArea_NOD_Commander_Trigger_Zone_JDG M01_GDIBase_FirstChinookFlamethrowerGuy_JDG M01_GDIBase_FirstChinook_Script_JDG M01_Nod_GuardTower_Tailgun_JDG M01_DetentionGDI_Air_Evac_Chopper_JDG M01_DetentionGDI_Air_Evac_Waypath_JDG M01_DetentionPen_Evac_Controller02_JDG M01_DetentionCiv_Air_Evac_Chopper_JDG M01_DetentionCiv_Air_Evac_Waypath_JDG M01_DetentionPen_Evac_Controller01_JDG M01_Barn_Point_Guard_02_JDG M01_Nod_GuardTower_02_Enter_Zone_JDG M01_TailgunRun_Spawner_Guy_JDG M01_GDI_Base_Spawner_Guy_JDG M01_GDI_Toolshed_PatrolGuy_JDG M01_Comm_MCT_Placeholder_JDG M01_HON_MCT_Placeholder_JDG M01_Comm_Kane_n_Havoc_Conv_Start_Zone_JDG M01_Tailgun_02_SpawnApache_Zone_JDG M01_TailGunner_03_JDG M01_TailGunner_02_JDG M01_TailGunner_01_JDG M01_Interrogation_Room_L03_Keycard_JDG M01_Flamethrower_Point_Guard_JDG M01_Announce_Barn_Objective_Zone M01_COMM_Commander_Guy M03_Goto_Star M03_Staged_Conversation_Soldier M03_Big_Gun_Explosion M03_Tailgun_Fodder M03_Tailgun_Fodder_Zone M03_Tailgun M03_Chinook_Spawned_Soldier_GDI M03_Beach_Soldier_GDI M03_Inlet_Soldier_GDI M03_Chinook_Drop_Soldiers_GDI M03_Move_Commando_To_Start M03_CommCenter_SateliteDish_Controller_JDG M03_Outro_Cinematic M03_A05_Evac_Zone Uncompleted: Toggle Spoiler M08_Petra_C_Helo MX0_A03_HUMVEE MX0_NOD_INFANTRY MX0_A03_NOD_TROOPER_TIB_DEATH MX0_Area4_Controller_DLS MX0_Obelisk_Weapon_DLS MX0_A02_ACTOR MX0_A02_Controller M00_Nod_Obelisk Now this took me some time to do, but don't be a party pooper and steal my shit and claim it as yours. I've put the GPL-3.0 licence on here, which basically means you can do anything you want but you've got to mention my credits. I might plan on continuing, but I might not. Maybe in a day/week/month/year, who knows. Feel free to contact me for any mistakes/additions/changes that need to be made. Disclaimer: I have not tested any script whatsoever, but again I'm pretty confident this time around. I've put alot more care in my analyzation this time Note #2: I compiled this in VS2017 Enterprise with VS2012 XP build tools. However you should be able to open it in express too, just be sure you have VS2012 with at least update 1 to enable the VS2012 XP build tools in later versions. Note #3: @JonWil or somebody else from TT feel free to add this to the scripts release. If you'd like to change the licence header to that of all the other files that is no problem, but can it atleast have my name in it ? It would be really cool to see something I've made come in a release of TT scripts. GitHub link: https://github.com/Neijwiert/C-C-Renegade-Mission-Scripts
Cool stuff. Wonder if you can look into figuring out the crazy scripts like the m02_respawn_controller. It seems to be one giant megascript that controls all of the maps cinematics. It has a bunch of scriptzones all over the map. M02_Objective_Zone is attached on most of the zones but with no parameters. It seems like m02_respawn_controller has a bunch of hardcode zone ids that it uses to trigger things. I actually have very good versions of m02, m07, and m11 that are tailored for a coop server that I made although I am not running them on an actual server at the moment. I have them installed on my test server. If you have a chance let me know and I'll show them to you.
Ok I'll continue with M02 then instead of M01. Not sure how looking at a modded version of the original level would help me though. I can just open up the original ones. Do you know where this respawn controller is located? or maybe the object id? Mind you, its pretty tough to do an analysis if its situated at the end of the level, altough decomlilation should be no problem EDIT: lol you're not wrong that it does alot. Member fields alone makes it 276 bytes big. It's probably gonna take some time to do this one.
I would love to see how M03_Goto_Star is done ;p awesome work
sla.ro(master) wrote on Sat, 09 September 2017 05:13 I would love to see how M03_Goto_Star is done ;p awesome work Sure will look at that one too, again the same here. May not be able to do proper analysis of the code flow without all the other scripts. But decompilation should be no problem. EDIT: Done, see GitHub
sla.ro(master) wrote on Sat, 09 September 2017 05:13 I would love to see how M03_Goto_Star is done ;p awesome work Jerad has a clone of that script with a bunch of fixes on it as well. It doesn't break if the closest player is in an area with no pathfinding. It will go to the next closest player in that case. Its probably a better one to use for any coop maps since it was designed with multiple players in mind. JMG_Utility_AI_Goto_Player
dblaney1 wrote on Fri, 08 September 2017 15:41 Cool stuff. Wonder if you can look into figuring out the crazy scripts like the m02_respawn_controller. It seems to be one giant megascript that controls all of the maps cinematics. It has a bunch of scriptzones all over the map. M02_Objective_Zone is attached on most of the zones but with no parameters. It seems like m02_respawn_controller has a bunch of hardcode zone ids that it uses to trigger things. I actually have very good versions of m02, m07, and m11 that are tailored for a coop server that I made although I am not running them on an actual server at the moment. I have them installed on my test server. If you have a chance let me know and I'll show them to you. I have decompiled M02_Respawn_Controller, see GitHub. as mentioned before, no code flow analysis has been done (so no proper member field naming yet and comments). I believe this script does not interact that much with the script zones but the other way around. M02_Objective_Zone is pretty big too and I haven't checked out M02_Objective_Controller. I will in the future and when I get to M02 I'll do some proper code flow analysis too.
Neijwiert wrote on Sat, 09 September 2017 13:33 dblaney1 wrote on Fri, 08 September 2017 15:41 Cool stuff. Wonder if you can look into figuring out the crazy scripts like the m02_respawn_controller. It seems to be one giant megascript that controls all of the maps cinematics. It has a bunch of scriptzones all over the map. M02_Objective_Zone is attached on most of the zones but with no parameters. It seems like m02_respawn_controller has a bunch of hardcode zone ids that it uses to trigger things. I actually have very good versions of m02, m07, and m11 that are tailored for a coop server that I made although I am not running them on an actual server at the moment. I have them installed on my test server. If you have a chance let me know and I'll show them to you. I have decompiled M02_Respawn_Controller, see GitHub. as mentioned before, no code flow analysis has been done (so no proper member field naming yet and comments). I believe this script does not interact that much with the script zones but the other way around. M02_Objective_Zone is pretty big too and I haven't checked out M02_Objective_Controller. I will in the future and when I get to M02 I'll do some proper code flow analysis too. Yeah sorry, I meant m02_objective_controller and M02_Objective_Zone interact with each other a bunch.
May I ask, what do you use to decompile scripts? and do you decompile the whole scripts.dll file at once, or is it possible to decompile a single script at a time? Thanks!
I read somewhere that IDA and Hex-Rays Decompiler are the best tools to use.
dubstar wrote on Mon, 11 September 2017 15:23 I read somewhere that IDA and Hex-Rays Decompiler are the best tools to use. Yes and no, it's far from perfect, its good that you can have asm file, but in rest is manually done
XD_ERROR_XD wrote on Mon, 11 September 2017 04:25 May I ask, what do you use to decompile scripts? and do you decompile the whole scripts.dll file at once, or is it possible to decompile a single script at a time? Thanks! dubstar wrote on Mon, 11 September 2017 05:23 I read somewhere that IDA and Hex-Rays Decompiler are the best tools to use. Yeah I use IDA Pro + Hex rays. No I just target the scripts that I need. I use the Linux build of the 'scripts' file to decompile, since that one has debug information. The debug information saved a lot of function names. Also update: I will use this post to post my progress and stuff. Progress for this comment has been M02_objective_Controller, again see GitHub.
alternatively rec studio http://www.backerstreet.com/rec/rec.htm
IDA Pro + HexRays is the only way to go when reverse engineering complex things like Renegade. Nothing else even comes close
dblaney1 wrote on Fri, 08 September 2017 15:41 Cool stuff. Wonder if you can look into figuring out the crazy scripts like the m02_respawn_controller. It seems to be one giant megascript that controls all of the maps cinematics. It has a bunch of scriptzones all over the map. M02_Objective_Zone is attached on most of the zones but with no parameters. It seems like m02_respawn_controller has a bunch of hardcode zone ids that it uses to trigger things. I actually have very good versions of m02, m07, and m11 that are tailored for a coop server that I made although I am not running them on an actual server at the moment. I have them installed on my test server. If you have a chance let me know and I'll show them to you. I have finished M02_Objective_Zone. You can look at the hardcoded customs and ids now if you want. it is still missing full code flow analysis though.
Neijwiert wrote on Tue, 12 September 2017 06:42 dblaney1 wrote on Fri, 08 September 2017 15:41 Cool stuff. Wonder if you can look into figuring out the crazy scripts like the m02_respawn_controller. It seems to be one giant megascript that controls all of the maps cinematics. It has a bunch of scriptzones all over the map. M02_Objective_Zone is attached on most of the zones but with no parameters. It seems like m02_respawn_controller has a bunch of hardcode zone ids that it uses to trigger things. I actually have very good versions of m02, m07, and m11 that are tailored for a coop server that I made although I am not running them on an actual server at the moment. I have them installed on my test server. If you have a chance let me know and I'll show them to you. I have finished M02_Objective_Zone. You can look at the hardcoded customs and ids now if you want. it is still missing full code flow analysis though. Cool thanks. If you don't mind m02_nod_apache would be cool as well.
I have completed M02_Nod_Apache. I see that it used WaypathSplined too from ActionParamsStruct but I have no idea what that actually does. Could @JonWil explain perhaps?
Completed: M02_Nod_Jet_Waypath M02_Mendoza On a side note, I decompiled Set_Camera_Host aswell void Set_Camera_Host(GameObject *obj) { if (obj) { PhysicalGameObj *pObj = obj->As_PhysicalGameObj(); if (pObj) { CCameraClass::Set_Host_Model(CombatManager::MainCamera, pObj->Peek_Model()); } } else { CCameraClass::Set_Host_Model(CombatManager::MainCamera, NULL); } }
Good, my clone I made with the netcall to send to client is pretty much identical to that.
Completed: M02_Player_Vehicle M02_Nod_Vehicle Uncompleted: M02_Nod_Jet M02_Nod_Sakura M02_GDI_Helicopter M02_Reset_Spawn M02_Destroy_Vehicle
Completed: DLS_Where_Am_I M02_Helipad M01_Barn_Truck_JDG M02_Destroy_Objective M02_Nod_Convoy_Truck M02_Dam_MCT Uncompleted: M02_Nod_Soldier M02_GDI_Soldier M07_Disable_Hibernation M02_Stationary_Vehicle M02_Approach_Vehicle
Good job so far, at this rate you will have a clone of every script in the original scripts.dll by the time its all said and done
I've completed all scripts used/related to M02. I will start code flow analysis now. But can anybody help me with the following: - How can you play a soldier animation in the W3DViewer that is started in a script with Action_Play_Animation? Since I want to comment what kind of animation it is. - Is there a way to check in LE if a certain preset, or even better, script is present in a preset? If not, could somebody prepare some mixes for me that are basically clones of the singleplayer maps but can be run on multiplayer so I can check these things out? Since I might have missed some scripts and mistakenly marked them as 'not used'. - I have submitted an issue on GitHub some time ago about float precision. Sometimes a float is passed to some function but it is very nearly a whole number (i.e. 4.999999 or something like that). Does anybody know if this is a precision error? - Sometimes the Renegade developers used Get_Random instead of the logical Get_Random_Int to put through a switch to check against, for example, 1/2/3 etc. Obviously it is cast to an integer somewhere. Does anybody know how I can check in IDA where this is being done? (I had exceptional problems in M02_Nod_Soldier::Timer_Expired with this to make sense of the code). EDIT: Also, to stop spamming I guess, I'll just post updates when a complete map has been done or a request of somebody.
Open the model that gets animated and then click and drag the animation w3d into the w3dviewer window. The easiest way to find out if a script is on a preset is to open the objects.ddb in a hexeditor and search for the script name.
dblaney1 wrote on Mon, 18 September 2017 13:42 Open the model that gets animated and then click and drag the animation w3d into the w3dviewer window. The easiest way to find out if a script is on a preset is to open the objects.ddb in a hexeditor and search for the script name. Ok, I'll try that. On a side note, I'm getting an error: mss32.dll was not found when trying to start W3dview.exe. Yeah I know how to check if its already on the preset, but I mean if its attached in the level. You know, you can add more scripts to a preset in a level when its that preset is created.
Neijwiert wrote on Mon, 18 September 2017 14:13 dblaney1 wrote on Mon, 18 September 2017 13:42 Open the model that gets animated and then click and drag the animation w3d into the w3dviewer window. The easiest way to find out if a script is on a preset is to open the objects.ddb in a hexeditor and search for the script name. Ok, I'll try that. On a side note, I'm getting an error: mss32.dll was not found when trying to start W3dview.exe. Yeah I know how to check if its already on the preset, but I mean if its attached in the level. You know, you can add more scripts to a preset in a level when its that preset is created. Do the same hexedit trick but on the .ldd file for that level.
I have completed all scripts of M02, including the full code flow analysis. dblaney1 wrote on Mon, 18 September 2017 14:44 Neijwiert wrote on Mon, 18 September 2017 14:13 dblaney1 wrote on Mon, 18 September 2017 13:42 Open the model that gets animated and then click and drag the animation w3d into the w3dviewer window. The easiest way to find out if a script is on a preset is to open the objects.ddb in a hexeditor and search for the script name. Ok, I'll try that. On a side note, I'm getting an error: mss32.dll was not found when trying to start W3dview.exe. Yeah I know how to check if its already on the preset, but I mean if its attached in the level. You know, you can add more scripts to a preset in a level when its that preset is created. Do the same hexedit trick but on the .ldd file for that level. Okay, that works nicely. But I don't really know the layout of an LDD file. I have been able to find preset Ids and object Ids. And also the scripts with their params, but I don't know how I can associate an object id with a script. Object ids are declared in the beginning of the file and scripts etc at the end. Would you happen to know what field or how many bytes offset of something where the relation is at?
Unless you understand the inner workings of the Renegade data files and classes (and I suspect you dont) then you will not be able to match scripts to objects. If you explain what you are trying to identify or figure out, I might be able to help.
jonwil wrote on Tue, 19 September 2017 07:41 Unless you understand the inner workings of the Renegade data files and classes (and I suspect you dont) then you will not be able to match scripts to objects. If you explain what you are trying to identify or figure out, I might be able to help. I'm trying to find if I missed any scripts that are present in the LE on the presets that are created. And if I can match an object id to that script then I can put proper comments in said script when/where it is used
Neijwiert wrote on Tue, 19 September 2017 08:18 jonwil wrote on Tue, 19 September 2017 07:41 Unless you understand the inner workings of the Renegade data files and classes (and I suspect you dont) then you will not be able to match scripts to objects. If you explain what you are trying to identify or figure out, I might be able to help. I'm trying to find if I missed any scripts that are present in the LE on the presets that are created. And if I can match an object id to that script then I can put proper comments in said script when/where it is used Anything created by scripts during a game only will spawn with scripts on the object in the ddb file where the preset exists and by the scripts themselves. What was attached to the presets in leveledit only applies to objects placed on the map during export. Those scripts will be shown in the ldd file.
Which levels in particular are you trying to do it for? All the single player levels? All the maps that come with Renegade? Other maps beyond that?
jonwil wrote on Tue, 19 September 2017 22:57 Which levels in particular are you trying to do it for? All the single player levels? All the maps that come with Renegade? Other maps beyond that? All the singleplayer mapa (mission maps) and I guess the skirmish map and tutorial map too.
I cant help you with the skirmish level since Westwood never released a .lvl file for that but here are some dumps for all the levels they did release as part of the SinglePlayerLVLs.zip as well as the stock objects.ddb. The dumps were taken via a specially hacked up (and not shippable) 4.x ttle.dll file and then loading each .lvl file into LE to produce the dump output. The level dumps contain an entry for each object that exists in the scene followed by entries for every script that has been placed on that object in LE (as opposed to being there because its on the preset in objects.ddb) The objects.ddb dump contains an entry for each preset followed by entries for every script that has been placed on that preset. Hopefully this helps you out in figuring out all the scripts the stock single player missions actually use.
jonwil wrote on Wed, 20 September 2017 05:15 I cant help you with the skirmish level since Westwood never released a .lvl file for that but here are some dumps for all the levels they did release as part of the SinglePlayerLVLs.zip as well as the stock objects.ddb. The dumps were taken via a specially hacked up (and not shippable) 4.x ttle.dll file and then loading each .lvl file into LE to produce the dump output. The level dumps contain an entry for each object that exists in the scene followed by entries for every script that has been placed on that object in LE (as opposed to being there because its on the preset in objects.ddb) The objects.ddb dump contains an entry for each preset followed by entries for every script that has been placed on that preset. Hopefully this helps you out in figuring out all the scripts the stock single player missions actually use. YES! Thank you that helps alot!. It is essential that I put comments on created events so that the code flow is clear to people. But I'm only human and it's easy to miss objects when going through the level. For example, on M02 I missed all the data disks and thought the script M02_Data_Disk wasn't used at first. I will verify all existing scripts to make sure all comments are correct. Will probably make a small program that checks the txt files for me.
Keep in mind that this won't give you stuff that gets spawned by spawners once the map actually starts. You will still need to check all the objects that get spawned by spawners etc preset scripts.
M01 Has been completely reversed engineered with code flow. The release contains the following scripts (May contain scripts that were missed in previous releases): Toggle Spoiler Uncompleted M00_Nod_Obelisk Completed M01_First_AutoRifle_JDG M01_Flyover_Generic_Script_JDG M01_FP_BaseToBase_NorthSouth_Contoller_JDG M01_FP_BaseToBase_SouthNorth_Contoller_JDG M01_FP_GDIOcean_NorthSouth_Contoller_JDG M01_FP_GDIOcean_SouthNorth_Contoller_JDG M01_FP_NodBase_NorthSouth_Contoller_JDG M01_FP_NodBase_SouthNorth_Contoller_JDG M01_FP_NodBase_EastWest_Contoller_JDG M01_FP_NodBase_WestEast_Contoller_JDG M01_FP_NodBase_Dogfight_Contoller_JDG M01_Announce_First_ObjectiveZone_JDG M01_GDI_BeachGuy01_JDG M01_Beach_Datadisc_JDG M01_ConDropZone_JDG M01_Use_Ladder_Zone_JDG M01_Base_StartZone_JDG M01_Base_GDI_Fodder_JDG M01_AccessDenied_Zone_JDG M00_No_Falling_Damage_DME M00_HealthMedal_TextMessage M00_C130_Explosion M00_BUILDING_EXPLODE_NO_DAMAGE_DAK M00_ArmorMedal_TextMessage_JDG M00_Obelisk_Weapon M01_C130_Dropoff_Dude_JDG M01_SniperRifle_02_JDG M01_SniperRifle_02_AirdropZone_JDG M01_GDIBase_FirstChinookMinigunnerGuy_JDG M01_Nod_Truck_JDG M01_Base_Nod_Minigunner_JDG M01_C4_TutorialScript_JDG M01_SniperRifle_01_JDG M01_SniperRifle_01_Target_JDG M01_HON_FrontDoor_Evacuator_JDG M01_CommCenter_Evacuator_JDG M01_HarvesterScript_New_JDG M01_KeyCard01_Script_JDG M01_Tiberium_Cave_Helicopter_JDG M01_Nod_Chinook_Reinforcement_Guy_JDG M01_Hunt_The_Player_JDG M01_Evac_TroopBone_JDG M01_POW_Nod_Minigunner01_JDG M01_BackPath_EntranceZone_JDG M01_BasalBuilding_Population_JDG M01_QuickSave_Zone_JDG M01_TriggerZone_GDIBase_BaseCommander_JDG M01_Duncan_Assailer_JDG M01_MiniGunner_Point_Guard_JDG M01_BackPath_NodGuy_JDG M01_TibCave01_Datadisc_JDG M01_BarnArea_NOD_Commander_Trigger_Zone02_JDG M01_RealLightTank_TriggerZone_JDG M01_Announce_TankAirstrikeZone_JDG M01_GuardTower02_NewSniperTarget_JDG M01_GDI_GuardTower02_SniperRifle_JDG M01_GDIBase_AI_ExitZone_JDG M01_Player_is_Entering_GDI_Base_Zone M01_PlayerLeaving_BarnArea_Zone_JDG M01_Player_is_Leaving_GDI_Base_Zone M01_PlayerEntering_BarnArea_Zone_JDG M01_Barn_Point_Guard_01_JDG M01_C4_Tutorial_Zone_JDG M01_FodderHovercraft_Script_JDG M01_Medium_Tank01_JDG M01_Medium_Tank_JDG M01_Sinking_Gunboat_JDG M01_Gunboat_Spawn_Hovercraft_Zone_JDG M01_Barn_EntryZone_JDG M01_Barn_Door_Guard_JDG M01_Barn_Talk_Guard_01_JDG M01_Shed_Datadisc_JDG M01_Player_Is_Entering_Tailgun_Alley_Backway_JDG M01_Tunnel_Exterior_Zone M01_Tunnel_Interior_Zone M01_Player_Is_Entering_Tailgun_Alley_JDG M01_TurnOff_TankReminder_Zone_JDG M01_HON_Commander_Guy M01_Lose_Any_Church_Escorts_Zone_02 M01_Player_Is_Crossing_Bridge_Zone M01_Waterfall_Exterior_Zone M01_Waterfall_Interior_Zone M01_TibCave_StartZone_JDG M00_VisceroidInnate_DAY M01_TibCave02_Datadisc_JDG M01_Player_Is_Crossing_Bridge_Via_Cave_Zone M01_Tiberium_Cave_Spawn_Helicopter_Zone_JDG M01_Entering_Church_Area_Zone M01_Player_Is_Crossing_Bridge_Via_Church_Zone M01_Church_Loveshack_InterrogationConv_Zone_JDG M01_Church_Guard_MiniGunner_JDG M01_Priest_Datadisc_JDG M01_Nod_GuardTower_01_Enter_Zone_JDG M01_GuardTower_Sniper_Target_JDG M01_Turn_on_the_Hand_of_Nod_Zone_JDG M01_Lose_Any_Church_Escorts_Zone M01_Announce_Hand_of_Nod_Zone M01_ChurchArea_Spawner_Guy_JDG M01_Whack_A_Mole_Enter_Zone_JDG M01_Nod_GuardTower_03_Enter_Zone_JDG M01_HON_Medlab_DropOff_Guy_JDG M01_Lose_Any_HON_Escorts_Zone M01_HandOfNod_SAMSite_Script M01_Hand_Of_Nod_Exterior_Zone M01_Hand_Of_Nod_Interior_Zone M01_Havoc_Out_WarroomZone_JDG M01_Havoc_In_WarroomZone_JDG M01_HON_Escorts_Warroom_MCT_ZoneController_JDG M01_HON_Escorts_Warroom_MCT_Protector01_JDG M01_HON_Escorts_Warroom_MCT_Protector02_JDG M01_Hand_Of_Nod_Grunt_Zone M01_Hand_of_Nod_Building_Script_JDG M01_Hand_Of_Nod_Dojo_Zone M01_Civ_To_Minigunner_Guy_JDG M01_HON_Paintball_Team_02_JDG M01_HON_Paintball_Team_01_JDG M01_Right_Interrogation_Room_Enter_Zone_JDG M01_Left_Interrogation_Room_Enter_Zone_JDG M01_HON_RedKey_Zone_JDG M01_Medlab_Datadisc_JDG M01_UnScramble_Radar_Zone M01_Scramble_Radar_Zone M01_Lose_Any_HON_Escorts_Zone_02 M01_Announce_Prisoner_Objective_Zone M01_Comm_Center_Building_Script_JDG M01_CommCenter_SAMSite_Script M01_Comm_Center_Exterior_Zone M01_Comm_Center_Interior_Zone M01_Comm_Mainframe_PogZone_01_JDG M01_Comm_Mainframe_PogZone_02_JDG M01_Comm_Mainframe_PogZone_03_JDG M01_Comm_Base_Commander_Conv_Start_Zone_JDG M01_Comm_Base_Commander_JDG M11_Temple_Hologram_01_JDG M01_Obelisk_UpdateDisc_JDG M01_Mainframe_Tutorial_Zone_JDG M01_Detention_GuardTower_Enter_Zone_JDG M01_MovieProjector_JDG M01_TurretBeach_GDI_Guy_02_JDG M01_HON_BackDoor_Evacuator_JDG M01_Base_GDI_Grenadier_JDG M01_Ambient_Sound_Controller_JDG M01_Mission_Controller_JDG M01_Whack_A_Mole_Minigunner_JDG M01_HON_Easy_Spawned_Guy_01_JDG M01_HON_Easy_Spawned_Guy_02_JDG M01_HON_Easy_Spawned_Guy_03_JDG M01_COMM_Chinook_Spawned_Soldier_GDI M01_HON_Chinook_Spawned_Soldier_01_GDI_JDG M01_HON_Chinook_Spawned_Soldier_02_GDI_JDG M01_HON_Chinook_Spawned_Soldier_03_GDI_JDG M01_HON_Chinook_Spawned_Soldier_04_GDI_JDG M01_TurretBeach_Chinook_Spawned_Soldier_NOD M01_GDIBaseCommander_EvacController_JDG M01_GDIBaseCommander_Air_Evac_Waypath_JDG M01_GDIBaseCommander_Air_Evac_Chopper_JDG M01_GDIBaseCommander_Air_Evac_Rope_JDG M01_GDIBase_POW_Conversation_Controller_JDG M01_GDIBase_POWEncounter02_Controller_JDG M01_GDIBasePOW_Air_Evac_Waypath_JDG M01_GDIBasePOW_Air_Evac_Chopper_JDG M01_GDIBasePOW_Air_Evac_Rope_JDG M01_Base_POW01_JDG M01_Base_POW02_JDG M01_Duncan_InHere_ConvController_JDG M01_Commander_Shack_Zone_JDG M01_GDIBase_BaseCommander_JDG M01_Airstrike_Controller_JDG M01_Deco_LightTanks_JDG M01_GuardTower02_Sniper_TowerZone_JDG M01_GuardTower02_Sniper_Target01_JDG M01_GuardTower02_Sniper_Target02_JDG M01_GDI_GuardTower_NOD_Commander_JDG M01_GDIBase_RealLightTank_JDG M01_Billys_Conversation_Zone_JDG M01_Hovercraft_Explosion_Controller_JDG M01_TurretBeach_Turret_01_Script_JDG M01_TurretBeach_FodderHovercraft_Controller_JDG M01_Medium_Tank_Tunnel_Squish_Guy_JDG M01_TurretBeach_Engineer_JDG M01_GunboatAction_Controller_JDG M01_Initial_Gunboat_Script_JDG M01_BarnArea_EvacMonitor_JDG M01_BarnArea_Air_Evac_Waypath_JDG M01_BarnArea_Air_Evac_Chopper_JDG M01_BarnArea_Air_Evac_Rope_JDG M01_Barn_Prisoner_01_JDG M01_Barn_Prisoner_02_JDG M01_Barn_Prisoner_03_JDG M01_Barn_Babushkas_Conversation_Zone_JDG M01_BarnArea_AI_ExitZone_JDG M01_Tank_Entering_Tunnel_Zone_JDG M01_MediumTank_ReminderZone_JDG M01_TailGun_01_JDG M01_TailGun_02_JDG M01_TailGun_03_JDG M01_GDIBase_LightTank_JDG M01_GDI_Base_Spawner_Controller_JDG M01_CantBring_MediumTank_ThroughHereZone_JDG M01_TailgunRun_NOD_Commander_JDG M01_Visceroid01_JDG M01_Visceroid02_JDG M01_Visceroid03_JDG M01_Visceroid_NodGuy01_JDG M01_Visceroid_NodGuy02_JDG M01_Tailgun_Run_Spawner_Controller_JDG M01_TiberiumCave_UpThere_NodGuy_JDG M01_TibField_Guard01_New_JDG M01_Interior_Nun_Conversation_Zone_JDG M01_GDI_Escort_Conversation_Controller_GDI M01_ChurchArea_EvacMonitor_JDG M01_Church_EvacController_JDG M01_ChurchArea_Air_Evac_Waypath_JDG M01_ChurchArea_Air_Evac_Chopper_JDG M01_ChurchArea_Air_Evac_Rope_JDG M01_CHURCH_Chinook_Spawned_Soldier01_GDI M01_CHURCH_Chinook_Spawned_Soldier02_GDI M01_Church_Exterior_MiniGunner_JDG M01_Church_LoveShack_MiniGunner_JDG M01_Church_LoveShack_Nun_JDG M01_Priest_Conversation_Zone_JDG M01_Loveshack_Nun_Conversation_Zone_JDG M01_Church_Balcony_MiniGunner_JDG M01_Church_Priest_JDG M01_Church_Interior_Nun_JDG M01_ChurchArea_NOD_Commander_JDG M01_ChurchArea_Spawner_Controller_JDG M01_Whack_A_Mole_Exit_Zone_JDG M01_HON_WarroomController_JDG M01_HON_Escorts_Warroom_MCT_Commander_JDG M01_HON_Engineer02_JDG M01_GiveMCTSpeech_Zone_JDG M01_HON_Cafeteria_Walking_Guy_JDG M01_HON_Cafeteria_Eating_Guy_JDG M01_HON_Dorm_RocketGuy_JDG M01_HON_Dorm_ChemGuy_JDG M01_HON_Dorm_MiniGunner_JDG M01_HON_Dorm_FlameGuy_JDG M01_HON_Dorm_Crapper_JDG M01_HON_Dojo_Trainer_JDG M01_HON_Dojo_Civ_01_JDG M01_PaintballRoom_ChatterController_JDG M01_Interrogation_Room_Surprise_Guy_JDG M01_BuggyNew_Controller_JDG M01_BuggyScript_New_JDG M01_Comm_Stationary_Tech_JDG M01_Comm_Upstairs_Guard_JDG M01_Comm_Repair_Engineer_JDG M01_Comm_ComputerRoom_Tech_JDG M01_Comm_Center_Player_Terminal_Zone M01_GateSwitch_Tutorial_Zone_JDG M01_Comm_Center_Pen_Gate M01_DetentionPen_CivDeathMonitor M01_PrisonPen_Civilian_JDG M01_Propaganda_Sounds_Controller_JDG M01_DetentionPen_GDIDeathMonitor M01_PrisonPen_POW_JDG M01_TurretBeach_GDI_Guy_01_JDG M01_Nod_Commander_Conversation_Controller_GDI M01_GDIBase_EvacMonitor_JDG M01_Objective_Pog_Controller_JDG M01_DataDisc_TextController_JDG M01_GDI_Base_Artillery_Controller_JDG M01_Base_GDI_Minigunner_JDG // Below are scripts that are not used, but they are present M01_GDI_GuardTower_02_Enter_Zone_JDG M01_ConYard_Dropoff_Dude_JDG M01_GDI_BaseCommander_Backside_EntryZone_JDG M01_GDIBase_BackPath_NodGuy_JDG M01_GDIBase_LightTank_PastTunnelZone_JDG M01_BarnArea_NOD_Commander_Trigger_Zone_JDG M01_GDIBase_FirstChinookFlamethrowerGuy_JDG M01_GDIBase_FirstChinook_Script_JDG M01_Nod_GuardTower_Tailgun_JDG M01_DetentionGDI_Air_Evac_Chopper_JDG M01_DetentionGDI_Air_Evac_Waypath_JDG M01_DetentionPen_Evac_Controller02_JDG M01_DetentionCiv_Air_Evac_Chopper_JDG M01_DetentionCiv_Air_Evac_Waypath_JDG M01_DetentionPen_Evac_Controller01_JDG M01_Barn_Point_Guard_02_JDG M01_Nod_GuardTower_02_Enter_Zone_JDG M01_TailgunRun_Spawner_Guy_JDG M01_GDI_Base_Spawner_Guy_JDG M01_GDI_Toolshed_PatrolGuy_JDG M01_Comm_MCT_Placeholder_JDG M01_HON_MCT_Placeholder_JDG M01_Comm_Kane_n_Havoc_Conv_Start_Zone_JDG M01_Tailgun_02_SpawnApache_Zone_JDG M01_TailGunner_03_JDG M01_TailGunner_02_JDG M01_TailGunner_01_JDG M01_Interrogation_Room_L03_Keycard_JDG M01_Flamethrower_Point_Guard_JDG M01_Announce_Barn_Objective_Zone M01_COMM_Commander_Guy A couple of notes on this release: - The guy at Westwood with the initials JDG did not know the principles of re-using code. This mission contains a buttload of code that is duplicate. - I think it is possible to make a script that will enable you to evac X amount of soldiers via chinook. See the scripts with evac in them. It contains some interesting code - Apparantly the coders of this mission left a substantial amount of unused code in the binary. For example: it seems that the 'tailgun alley' used to have soldiers that would actually enter the gun emplacements. Also the prisoners at the end of the level used to be evacuated via a chinook. See GitHub for the source code.
I suspect based on credits.txt (but can't be sure) that JDG is Joseph Gernert (listed under designers)
jonwil wrote on Fri, 06 October 2017 04:08 I suspect based on credits.txt (but can't be sure) that JDG is Joseph Gernert (listed under designers) I see. Well he also didnt know how to use script parameters. I believe only one script in the entirety of M01 code has script parameters. Its a real pain to decompile something and find out that youre practically reversing the same code. Edit: Well if he is a designer that could explain a few things.
Well I'm impressed on how much you have done in a short amount of time. Good Job.
Gen_Blacky wrote on Fri, 13 October 2017 10:26 Well I'm impressed on how much you have done in a short amount of time. Good Job. Why thank you, much apreciated. I'm curently working on m03 and I have everything up to and including the big gun.
M03 Has been completely reverse engineered with code flow. The release contains the following scripts (May contain scripts that were missed in previous releases): Toggle Spoiler Uncompleted No uncompleted scripts Completed M03_Cine_Explosion M03_Damage_Modifier_All M03_Killed_Sound RMV_Trigger_Killed M03_AggAndCover RMV_Home_Point M03_Beach_Radio M10_Pokeable_Item_OnePoke M03_Past_Pillbox M03_Reinforcement_Chinook M03_No_More_Parachute M03_Beach_Turret M03_Destroyed_Turret M03_Wheres_The_Star RMV_Trigger_Zone M09_Innate_Activate M00_Reveal_Enc_Character_DAY M03_DataDiscMessage RMV_Trigger_Zone_2 RMV_Hostage_Rescue_Point M03_Zone_Enabled_Spawner M03_Killed_Disabled_Spawner M10_Stationary M03_Structure_Powerup_Drop M03_Destroyed_Chinook M08_Nod_Turret M03_Engineer_Repair M03_Tiberium_Cave_Stay_Put M03_Ambient_Birdcall_Controller_JDG M03_Radar_UnScramble M10_Elevator_All_Zone M03_Power_Plant M03_Base_Patrol M03_Protect_The_MCT RMV_Camera_Behavior M03_Technician_Work M03_Mct_Poke RMV_M03_Comm_Center_Terminal Sakura_Killed M03_Sakura_Explosion M03_Officer_With_Key_Card2 M06_Activate_Secret_Door M03_Holograph_EntryZone_JDG M03_KaneHead_JDG RMV_Volcano_And_Lava_Ball_Creator RMV_Engine_Sound M03_Refinery M03_Officer_With_Key_Card M03_Key_Card M00_InnateIsStationary M09_Attack_Blocked_False M03_Mission_Complete_Zone RMV_Trigger_Poked M00_Trigger_When_Destroyed_RMV M03_Beach_Scenario_Controller M00_Object_Create_RMV M03_Intro_Substitute M00_Put_Script_On_Commando M00_Damaged_Warning M03_Initial_Powerups M03_Commando_Script M03_Objective_Controller M03_Objective_Tracker M03_Chinook_Reinforcements M03_Gunboat_Controller_RMV DLS_Volcano_Stumble M03_Beach_Reinforce M03_Chinook_ParaDrop M03_Paratrooper_Run M03_Conversation_Zone M03_Staged_Conversation_1 M09_Innate_Disable M00_Trigger_When_Killed_RMV M03_Alternate_Sam_Site M03_Chinook_Fodder_Creator M03_Inlet_Nod_Reinforcements M00_Object_Destroy_Self_RMV M03_Engineer_Target RMV_Test_Big_Gun_Turning M03_Radar_Scramble M10_Elevator_All_Controller M03_ConYardSeen M03_PowerPlant_Warning M03_Announce_PowerPlant_Controller_JDG M03_Area_Troop_Counter M03_Reinforce_Area M03_CommCenter_Arrow M03_CommCenter_Warning M03_Comm_Killed M03_Announce_CommCenter_Controller_JDG M03_Flyover_Controller M03_Base_Harvester RMV_Engineer_Wander M03_Announce_Refinery_Controller_JDG DLS_Volcano_Active // Below are scripts that are not used, but they are present M03_Goto_Star M03_Staged_Conversation_Soldier M03_Big_Gun_Explosion M03_Tailgun_Fodder M03_Tailgun_Fodder_Zone M03_Tailgun M03_Chinook_Spawned_Soldier_GDI M03_Beach_Soldier_GDI M03_Inlet_Soldier_GDI M03_Chinook_Drop_Soldiers_GDI M03_Move_Commando_To_Start M03_CommCenter_SateliteDish_Controller_JDG M03_Outro_Cinematic M03_A05_Evac_Zone Notes for this release: The devs used local variable address sharing through Send_Custom_Event. This is very unsafe and should not be used in any new scripts. (See M03_Area_Troop_Counter.cpp and M03_Reinforce_Area.cpp) See GitHub for the source code.
Neijwiert wrote on Tue, 24 October 2017 14:35 The devs used local variable address sharing through Send_Custom_Event. That sounds like the best type of awful!