Check these out in define.h:
Code:
#define METARULE_CAR_CURRENT_TOWN 30
#define METARULE_GIVE_CAR_TO_PARTY 31
#define METARULE_GIVE_CAR_GAS 32
#define car_current_town metarule(METARULE_CAR_CURRENT_TOWN, 0)
#define car_give_to_party metarule(METARULE_GIVE_CAR_TO_PARTY, 0)
#define car_give_gas(AMOUNT) metarule(METARULE_GIVE_CAR_GAS, AMOUNT)
Also, check out denbus1.ssl for how to add or remove the car from the map, depending on if you brought it with you or not.
This is the procedure when you get the car.
Code:
procedure Node012 begin
gfade_out(ONE_GAME_SECOND);
game_time_advance(ONE_GAME_HOUR);
set_smitty_part(state_smitty_part_given);
item_caps_adjust(self_obj,2000);
item_caps_adjust(dude_obj,-2000);
set_global_var(GVAR_PLAYER_GOT_CAR, 1);
remove_pid_qty(dude_obj, PID_CAR_FUEL_CELL_CONTROLLER, 1)
gfade_in(ONE_GAME_SECOND);
Reply(370);
NOption(371, Node990, 004);
end
As you can see, it just changes a global var from 0 to 1.
Once you enter a map, the map script should check if you "have the car", then add/remove the car to the map.
Once the car is there(use macro - "Create_Car(CAR_UNCLAIMED_HEX, CAR_UNCLAIMED_ELEV)"), then I think it works as usual. More specifically, the macro makes a scenery car, then adds a script to it - "ZCDRVCAR". The trunk has a different script - "ZICITRNK".