Grand Prix 4 No Refuel Animation [VERSION 1.0] [released]

Posted by 32BOBO32 


For the past 10 years I have had to abandon the idea of using no refuel scripts previously made by the community (thanks Mitsuno Sano - KTC - gitanes - Ref. .:: THIS THREAD::.) due to constant CTDs.
So I decided to spend a few hours trying to understand how GP4 manages the pitstop animations and in general understand how the anim.wad file is structured.
After a series of tests I was able to find the right settings that allowed me to obtain a tweak able to eliminate the refueling animation and, at the same time, not to generate crashes.

**Your confirmation is kindly required** ;)




Installation

Just overwrite the normalchange.ssc file present in anim.wad at the following path: animationdata\race\scenescript\normalchange.ssc

.:: DOWNLOAD HERE ::.


Best with...

...of course Paulo No Refuel patch available .:: HERE ::.


General Notes on anim.wad structure

Analyzing the structure of the anim.wad file, I understood that as regards the part relating to animations, there are a series of interconnected files. Eliminating one results in the probable CTD during the call of the pit stop or during a phase of it. All annotations refer to the "race" section of the anim.wad file (anim.wad / animationdata / race…) and are limited to the most important folders:

Scenescript / normalchange.ssc (file) = contains the description of the 15 scenes (SCENE race_changes 15) that can occur during the race (the first 10 at the pitstop and the following 5 on the track) by setting EVENTs and EFFECTs variables:

-------->• normal_change
-------->• duct_change
-------->• nose_change
-------->• wing_change
-------->• nose_and_wing_change
-------->• fuel_problem
-------->• tire_fl_problem
-------->• tire_rl_problem
-------->• tire_rr_problem
-------->• tyre_fr_problem
-------->• marshall_recover
-------->• flag_righttrackwave
-------->• flag_leftttrackwave
-------->• flag_rightfencewave
-------->• flag_leftfencewave

Events (Folder) = Contains events (which invoke scripts) for characters that appear in race animations:

-------->• pc00 - pc19 = pit crew members (animations described in the first 10 scenes of normalchange.ssc)
-------->• ms00 = track marshall (animations described in scene 11 of normalchange.ssc)
-------->• fm00 = flag marshall (animations described in normalchange.ssc scenes 12-15)

Script (folder) = contains all action scripts for the characters that appear in the race animations

Pitcrew (folder) = contains all animations for pc, ms and fm in * anb format (not editable to date)

Props (folder) = contains the objects (meshes) used during the scenes (e.g. pneumatic guns, nosecones, frontjack, rearjack etc) in * .rfb format


How I acted

In the simplest way possible :) I proceeded to eliminate (for all the 10 pit stop scenes) the call of the refuell animation that involves pitcrew members 15 and 16 (pc15, pc 16) but I let the EVENT EV_FUELFULL be set in such a way as to eliminate the CTDs (in practice GP4 is convinced to refuel even if it is not displayed graphically). Moreover Scene n° 6 (fuel_problem), unlike the other 9, recalls a special animation for the pitstop where a refueling problem occurs: for this scene I have replaced the recalled animation with that of a classic pitstop without refueling.
The following quote shows as I acted (in this case for Scene n°1 = normal pit stop) and some notes:

SCENE race_changes 15 (15 means that normalchange.ssc describes 15 animated SCENES)

SCENESCRIPT normal_change 10 (The script is referred to a "Normal Change (pitstop)" and it contains 10 STAGES

STAGE ss_setup 2 1 8000 This STAGE had 2 EVENT and a total duration is set to 8000 ms (8 seconds). It means that after 8ss the script goes to the following STAGE (the animation duration depends by the single PC *.ANB files). I modified it to 1 EVENT because i deleted the refueller EVENT  

0		EVENT		EV_SETUP (Starting from relative time 0, the first stage call the EVENT animation " EV_SETUP" which is the animation where pitcrews go outside from boxes and wait for the car entry. 
0		EVENT		EV_SETUPFUELLERS This EVENT has been deleted to avoid the animation of the two guys for refueling (PC15 & PC16) 

STAGE ss_fuelfinished 1 100 This STAGE has 1 EVENT and a total duration is set to 100 ms (0,1 seconds). 
0		EVENT		EV_FUELFULL It probably confirm to GP4 that refuel operation is completed. I moved up this STAGE just to be sure to close all fuel task before going ahead during testing phase. 

STAGE ss_reinsertrefueller 1 100 This STAGE has 1 EVENT and a total duration is set to 100 ms (0,1 seconds). 
0		EVENT		EV_FUELFULL It probably confirm to GP4 that refuel operation is completed after something happened (reinsert refueller head???). I moved up this STAGE just to be sure to close all fuel task before going ahead during testing phase. 

STAGE ss_jackup 13 6000 This STAGE has 13 EVENTs/EFFECTs and a total duration is set to 6000 ms (6 seconds). 
0		EVENT		EV_PITINDICATED (Starting from relative time 0, the first event call the PIT INDICATED animation (The pit guy with lollipop which shows the proper box to the incoming car). 
100		EVENT		EV_CARIN (Starting from relative time 100 ms, the event confirm the CAR IN in proper area. 
500		EFFECT	NEW_FRONT_JACKING_HEIGHT 	0 (Starting from relative time 500 ms, the FRONT JACK heights the car. (setting a status to 0)
1070		EFFECT	CARWHEEL_FR				0 (Starting from relative time 1070 ms, the FRONT RIGHT WHEEL status is set to 0 (tyre removed). 
1150		EFFECT	NEW_REAR_JACKING_HEIGHT 	1 (Starting from relative time 1150 ms, the REAR JACK heights the car. (setting a status to 1)
1630		EFFECT	CARWHEEL_RL				0 (Starting from relative time 1630 ms, the REAR LEFT WHEEL status is set to 0 (tyre removed). 
2306		EFFECT	CARWHEEL_FL				0 (Starting from relative time 2306 ms, the FRONT LEFT WHEEL status is set to 0 (tyre removed). 
2450		EFFECT	FINISHED_ANY_JACKING_UP (Starting from relative time 2450 ms, the JACKING UP operations are set as completed. 
2633		EFFECT	CARWHEEL_RR				0 (Starting from relative time 2633 ms, the REAR RIGHT WHEEL status is set to 0 (tyre removed). 
4150		EFFECT	CARWHEEL_RL				1 (Starting from relative time 4150 ms, the REAR LEFT WHEEL status is set to 1 (new tyre fixed). 
4360		EFFECT	CARWHEEL_FR				1 (Starting from relative time 4360 ms, the FRONT RIGHT WHEEL status is set to 1 (new tyre fixed). 
4570		EFFECT	CARWHEEL_FL				1 (Starting from relative time 4570 ms, the FRONT LEFT WHEEL status is set to 1 (new tyre fixed). 
5596		EFFECT	CARWHEEL_RR				1 (Starting from relative time 5596 ms, the REAR RIGHT WHEEL status is set to 1 (new tyre fixed). 

STAGE ss_partsfinished 4 600 This STAGE has 4 EVENTs/EFFECTs and a total duration is set to 600 ms (0,6 seconds). 
0		EFFECT	STARTED_ANY_JACKING_DOWN (Starting from relative time 0 ms, the operation for jacking down the car starts. 
0		EVENT		EV_WHEELSDONE (Starting from relative time 0 ms, the EVENT of TYRES CHANGED is declared. 
450		EFFECT	NEW_FRONT_JACKING_HEIGHT 	2 (Starting from relative time 450 ms, the FRONT JACK pull down the car. (setting a status to 2)
500		EFFECT	NEW_REAR_JACKING_HEIGHT 	3 (Starting from relative time 450 ms, the REAR JACK pull down the car. (setting a status to 2)

STAGE ss_changefinished 2 1500 This STAGE has 2 EVENTs/EFFECTs and a total duration is set to 1500 ms (1,5 seconds). 
0		EVENT		EV_CARGO (Starting from relative time 0 ms, the EVENT of CAR GO is declared. (It's when we ear "go go go" after the pit) 
1300		EFFECT	PITSTOP_SEQUENCE_OVER (Starting from relative time 1300 ms, the PITSTOP is declared over. 

STAGE ss_finished 1 200 This STAGE has 1 EVENT and a total duration set to 200 ms (0,2 seconds). 
0		EVENT		EV_CARGONE (Starting from relative time 0 ms, the EVENT of CAR GONE is declared. (The car leaved the pit) 

STAGE ss_cancel 1 8000 This STAGE has 1 EVENT and a total duration set to 8000 ms (8,0 seconds). 
0		EVENT		EV_CANCEL (Starting from relative time 0 ms, the EVENT of CANCEL is declared. (I suppose it's whe pit crews come back inside box after the pitstop?) 

STAGE ss_jackmandanger 1 1200 This STAGE has 1 EVENT and a total duration set to 1200 ms (1,2 seconds). 
0		EVENT		EV_PANIC (Starting from relative time 0 ms, the EVENT of PANIC is declared. (Still unknown) 

STAGE ss_jackmandangerover 1 8000 This STAGE has 1 EVENT and a total duration set to 8000 ms (8,0 seconds). 
0		EVENT		EV_PANICOVER (Starting from relative time 0 ms, the EVENT of PANIC OVER is declared. (Still unknown) 


As a consequence of these findings I can hypothesize that the CTDs caused by the version of normalchange.ssc available up to now were caused by the strings

STAGE ss_fuelfinished 1 0 100
0 EVENT EV_FUELFULL

STAGE ss_reinsertrefueller 1 0 100
0 EVENT EV_FUELFULL


which have been completely eliminated bringing the game to crash when the verification of these events was requested by the scripts of pc15 and pc16 (the two men assigned to refueling).

In addition, the file available so far eliminated the refueling animation only in the SCENE of a normal pitstop and not in the other 9 variants (nose replacement, wing replacement, tire problems etc.)



Readme

30th October 2021
=============================================================================================================

Title:		Grand Prix 4 No Refuel Animation
Version:	1.0
Revision:	
Authors:	Samuele Pinna (32bobo32)
Based on:	Inspired by Mitsuno Sano, KTC and gitanes previous works
Contact:	[www.grandprixgames.org] forum
Other contact:	samupinna@gmail.com
Description:	Grand Prix 4 No Refuel Animation
Requirement:    Grand Prix 4

=============================================================================================================

* Construction *

Base		: 
Editor(s) used	: Notepad++
Known Bugs	: Hopefully none
Build Time	: 30 seconds after some days of reverse code engineering and attempts


* Description *
 
For the past 10 years I have had to abandon the idea of using no refuel scripts previously made by the community due to constant CTDs.
So I decided to spend a few hours trying to understand how GP4 manages the pitstop animations and in general understand how the anim.wad file is structured.
After a series of tests I was able to find the right settings that allowed me to obtain a tweak able to eliminate the refueling animation and, at the same time, not to generate crashes.

* Installation *
 
Just overwrite the normalchange.ssc file present in anim.wad at the following path: animationdata\race\scenescript\normalchange.ssc


* Notes *

None


* COPYRIGHT / PERMISSIONS *

All rights remain with the original authors. This file can be used and hosted without asking permission to author but please give the correct credits :)


* DISCLAIMER *

The author of this package takes no responsibility for its use. These files are provided "as is" without warranty of any kind, either expressed or implied.
The author will not be held responsable for any losses incurred, either directly or indirectly by the use of these files.
These files are not related to or supported by Microprose or Hasbro Interactive/Infogrames. The author is not connected with them.
Do not forget: BACKUP your old files before installing the new ones !!!


=============================================================================================================
Copyright

Samuele
32BOBO32



Edited 6 time(s). Last edit at 10/30/2021 11:09PM by 32BOBO32.
thank you samu! gp4 made such a step in the last few months!



GP Files | GP Videos | Discord: Carl_gpgames#2350
Ottimo! Grazie Samuele (Y)
Superb Samu!

GP4 reborn, no GP5!

------------------------------------------------------------------------------------------------


PLEASE VISIT: Grand Prix Mods Blog
great finding, thank you Samuele(Y)
Thank you, very much!
Absolutely fantastic Samu! And great description for future reference and further investigations (Y)

This is one of the best years in a long time for the modding scene, congratulations on your findings Samu :-)


My unfinished tracks: [www.grandprixgames.org]
Send bug reports and track editing questions to f1virtualblog@gmail.com
Iam having a bug: when I press return to sign to pit-in or if enter the pit lane, the game crashes.
What could it be? I try it in 1 mod and original.

Sorry! It works fine!(Y) My mistake: I was copy the normalchange.ssc directly from zip to wad! (H)



Edited 1 time(s). Last edit at 10/31/2021 12:26AM by landex.
Thanks Samuele, amazing job!!
What a day! This and Prblanco's tweak in conjunction are both fantastic contributions to older and newer mods in removing the refuelling. Thank you for your time and effort in making this work, tremendous!


No words to thank. Great work!
Amazing Samuele, you're certainly adding a lot to GP4 this season, thanks again
Can anyone help me with this fuel hose problem?

I managed to solve it, thanks anyway

Sorry, only registered users may post in this forum.

Click here to login

Maintainer: mortal, stephan | Design: stephan, Lo2k | Moderatoren: mortal, TomMK, Noog, stephan | Downloads: Lo2k | Supported by: Atlassian Experts Berlin | Forum Rules | Policy