##################################
#
# Sample PSG File
#
# by Fred Anderson (fred@speedcircuit.com)
#
# thanks to: Papyrus
# TheUSPits
# Kevin Combs
#
# models and Graphics copyright Papyrus 2003
#
##################################
##################################
#
# Initial Variables
#
##################################
# Empty mesh which can be used in LODs
maEmpty: EMPTY_MESH
masterMinMax: BBOX MIN (-3.02300000190735, -0.961000025272369, -0.328999996185303) MAX (2.2260000705719, 0.961000025272369, 0.916000008583069)
# External View Bounding Box. Is used to prevent extrem lower fps when "on car shadows" are activated
maxCars: MESH_GROUP "car.PAS" RENAME_MAT (paintjob paintjob)
# Mips which are used for the different wheel states
slowbrdg: MIP "slowgdyr_wc.mip"
medbrdg: MIP "mediumgdyr_wc.mip"
fastbrdg: MIP "fastgdyr_wc.mip"
#####################################################
#
# Custom wheels
#
#####################################################
#####################################################
# Left Front
#####################################################
###################
# Slow Speed Tire
###################
# I have to load the wheels from my scene.
# L1 is the high poly model
# L4 is the med poly model
# L7 is the low poly model
# you can use more than 3 Level of Detail (LOD),
# but for my mods 3 are enough
L1_left_tire: MESH maxCars wheel_lf
L4_left_tire: MESH maxCars wheel_lf
L7_left_tire: MESH maxCars wheel_lf
L1_LF_LOD1: GROUP(L1_left_tire)
L4_LF_LOD4: GROUP(L4_left_tire)
L7_LF_LOD7: GROUP(L7_left_tire)
# LF Slow LOD
# I prefer STATIC_LOD to get better fps for people with low end PC.
LF_slow: STATIC_LOD (0 L1_LF_LOD1,
2 L1_LF_LOD1,
4.5 L1_LF_LOD1,
6.8 L4_LF_LOD4,
9.2 L4_LF_LOD4,
12.3 L4_LF_LOD4,
16.4 L7_LF_LOD7,
20.9 L7_LF_LOD7,
30.5 L7_LF_LOD7,
48.2 L7_LF_LOD7,
70 L7_LF_LOD7)
LF_slow_all: GROUP (LF_slow)
###################
# Medium Speed Tire
###################
L1_left_tire_M: COPY L1_left_tire
L4_left_tire_M: COPY L4_left_tire
L7_left_tire_M: COPY L7_left_tire
# here we swap the slow speed texture with medium speed texture
MODIFY TEXTURE BASE_TEXTURE L1_left_tire_M slowbrdg medbrdg
MODIFY TEXTURE BASE_TEXTURE L4_left_tire_M slowbrdg medbrdg
MODIFY TEXTURE BASE_TEXTURE L7_left_tire_M slowbrdg medbrdg
L1_LF_LOD1_M: GROUP(L1_left_tire_M)
L4_LF_LOD4_M: GROUP(L4_left_tire_M)
L7_LF_LOD7_M: GROUP(L7_left_tire_M)
#LOD
LF_med: STATIC_LOD (0 L1_LF_LOD1_M,
2 L1_LF_LOD1_M,
4.5 L1_LF_LOD1_M,
6.8 L4_LF_LOD4_M,
9.2 L4_LF_LOD4_M,
12.3 L4_LF_LOD4_M,
16.4 L7_LF_LOD7_M,
20.9 L7_LF_LOD7_M,
30.5 L7_LF_LOD7_M,
48.2 L7_LF_LOD7_M,
70 L7_LF_LOD7_M)
LF_med_all: GROUP (LF_med)
###################
# Fast Speed Tire
###################
L1_left_tire_F: COPY L1_left_tire
L4_left_tire_F: COPY L4_left_tire
L7_left_tire_F: COPY L7_left_tire
# here we swap the slow speed texture with fast speed texture
MODIFY TEXTURE BASE_TEXTURE L1_left_tire_F slowbrdg fastbrdg
MODIFY TEXTURE BASE_TEXTURE L4_left_tire_F slowbrdg fastbrdg
MODIFY TEXTURE BASE_TEXTURE L7_left_tire_F slowbrdg fastbrdg
L1_LF_LOD1_F: GROUP(L1_left_tire_F)
L4_LF_LOD4_F: GROUP(L4_left_tire_F)
L7_LF_LOD7_F: GROUP(L7_left_tire_F)
#LOD
LF_fast: STATIC_LOD (0 L1_LF_LOD1_F,
2 L1_LF_LOD1_F,
4.5 L1_LF_LOD1_F,
6.8 L4_LF_LOD4_F,
9.2 L4_LF_LOD4_F,
12.3 L4_LF_LOD4_F,
16.4 L7_LF_LOD7_F,
20.9 L7_LF_LOD7_F,
30.5 L7_LF_LOD7_F,
48.2 L7_LF_LOD7_F,
70 L7_LF_LOD7_F)
LF_fast_all: GROUP (LF_fast)
####################
#
# Speed State Switch
# The Speed State Switch swaps the tire models with the modified texture,
# at different speeds.
#
####################
wheelSpeedlf: STATE_SWITCH VAR wheel_speed_0 (0 LF_slow_all, 1 LF_med_all, 2 LF_fast_all, 3)
#####################################################
# Right Front
#####################################################
###################
# Slow Speed Tire
###################
L1_right_tire: MESH maxCars wheel_rf
L4_right_tire: MESH maxCars wheel_rf
L7_right_tire: MESH maxCars wheel_rf
L1_RF_LOD1: GROUP(L1_right_tire)
L4_RF_LOD4: GROUP(L4_right_tire)
L7_RF_LOD7: GROUP(L7_right_tire)
# rf Slow LOD
RF_slow: STATIC_LOD (0 L1_RF_LOD1,
2 L1_RF_LOD1,
4.5 L1_RF_LOD1,
6.8 L4_RF_LOD4,
9.2 L4_RF_LOD4,
12.3 L4_RF_LOD4,
16.4 L7_RF_LOD7,
20.9 L7_RF_LOD7,
30.5 L7_RF_LOD7,
48.2 L7_RF_LOD7,
70 L7_RF_LOD7)
RF_slow_all: GROUP (RF_slow)
###################
# Medium Speed Tire
###################
L1_right_tire_M: COPY L1_right_tire
L4_right_tire_M: COPY L4_right_tire
L7_right_tire_M: COPY L7_right_tire
MODIFY TEXTURE BASE_TEXTURE L1_right_tire_M slowbrdg medbrdg
MODIFY TEXTURE BASE_TEXTURE L4_right_tire_M slowbrdg medbrdg
MODIFY TEXTURE BASE_TEXTURE L7_right_tire_M slowbrdg medbrdg
L1_RF_LOD1_M: GROUP(L1_right_tire_M)
L4_RF_LOD4_M: GROUP(L4_right_tire_M)
L7_RF_LOD7_M: GROUP(L7_right_tire_M)
# rf Slow LOD
RF_med: STATIC_LOD (0 L1_RF_LOD1_M,
2 L1_RF_LOD1_M,
4.5 L1_RF_LOD1_M,
6.8 L4_RF_LOD4_M,
9.2 L4_RF_LOD4_M,
12.3 L4_RF_LOD4_M,
16.4 L7_RF_LOD7_M,
20.9 L7_RF_LOD7_M,
30.5 L7_RF_LOD7_M,
48.2 L7_RF_LOD7_M,
70 L7_RF_LOD7_M)
RF_med_all: GROUP (RF_med)
###################
# Fast Speed Tire
###################
L1_right_tire_F: COPY L1_right_tire
L4_right_tire_F: COPY L4_right_tire
L7_right_tire_F: COPY L7_right_tire
MODIFY TEXTURE BASE_TEXTURE L1_right_tire_F slowbrdg fastbrdg
MODIFY TEXTURE BASE_TEXTURE L4_right_tire_F slowbrdg fastbrdg
MODIFY TEXTURE BASE_TEXTURE L7_right_tire_F slowbrdg fastbrdg
L1_RF_LOD1_F: GROUP(L1_right_tire_F)
L4_RF_LOD4_F: GROUP(L4_right_tire_F)
L7_RF_LOD7_F: GROUP(L7_right_tire_F)
# rf Slow LOD
RF_fast: STATIC_LOD (0 L1_RF_LOD1_F,
2 L1_RF_LOD1_F,
4.5 L1_RF_LOD1_F,
6.8 L4_RF_LOD4_F,
9.2 L4_RF_LOD4_F,
12.3 L4_RF_LOD4_F,
16.4 L7_RF_LOD7_F,
20.9 L7_RF_LOD7_F,
30.5 L7_RF_LOD7_F,
48.2 L7_RF_LOD7_F,
70 L7_RF_LOD7_F)
RF_fast_all: GROUP (RF_fast)
####################
# Speed State Switch
####################
wheelSpeedrf: STATE_SWITCH VAR wheel_speed_1 (0 RF_slow_all, 1 RF_med_all, 2 RF_fast_all, 3)
#####################################################
#
# Im a bit lazy, thats why i copy my LF Tire for the LR Tire.
# Left Rear (copy of Left Front)
#
#####################################################
####################
# Speed State Switch
####################
wheelSpeedlr: STATE_SWITCH VAR wheel_speed_2 (0 LF_slow_all, 1 LF_med_all, 2 LF_fast_all, 3)
#####################################################
#
# Same procedure like i used for the LR tire, but this time i copy the RF tire.
# Right Rear (copy of Right Front)
#
#####################################################
####################
# Speed State Switch
####################
wheelspeedrr: STATE_SWITCH VAR wheel_speed_3 (0 RF_slow_all, 1 RF_med_all, 2 RF_fast_all, 3)
#########################################
#
# here we set up our tire a give them the right position.
# I do it this way, cos you can have for each make different wheels positions.
# But for the SIMoCOT i just needed one.
#
###########################################
rfwheelObj: GROUP (wheelspeedlf)
lfwheelObj: GROUP (wheelspeedrf)
rrwheelObj: GROUP (wheelspeedlr)
lrwheelObj: GROUP (wheelspeedrr)
lf: TRANSFORM NAME lfwheel POS( 0.0, 0.0, 0.0) ROT(0, 0, 0) lfwheelObj
rf: TRANSFORM NAME rfwheel POS( 0.0, 0.0, 0.0) ROT(0, 0, 0) rfwheelObj
lr: TRANSFORM NAME lrwheel POS( 0.0, 0.0, 0.0) ROT(0, 0, 0) lrwheelObj
rr: TRANSFORM NAME rrwheel POS( 0.0, 0.0, 0.0) ROT(0, 0, 0) rrwheelObj
lfgrp0: GROUP (lf)
rfgrp0: GROUP (rf)
lrgrp0: GROUP (lr)
rrgrp0: GROUP (rr)
lfmake0: TRANSFORM POS(1.266, 0.75, 0) ROT(0, 0, 0) lfgrp0
rfmake0: TRANSFORM POS(1.266, -0.75, 0) ROT(0, 0, 0) rfgrp0
lrmake0: TRANSFORM POS(-1.539, 0.75, 0) ROT(0, 0, 0) lrgrp0
rrmake0: TRANSFORM POS(-1.539, -0.75, 0) ROT(0, 0, 0) rrgrp0
###################################
#Exterior View
##################################
staticDriver: MESH maxCars driver
staticMirror: MESH maxCars mirror
staticSeat: MESH maxCars seat
staticShifter: MESH maxCars shifter
staticWheel: MESH maxCars steering_wheel
# Make0
body0: MESH maxCars body_0
cage0: MESH maxCars cage_0
cam0: MESH maxCars cam_0
chassis0: MESH maxCars chassis_0
front0: MESH maxCars front_0
hood0: MESH maxCars hood_0
net0: MESH maxCars net_0
rear0: MESH maxCars rear_0
roof0: MESH maxCars roof_0
spoilerparts0: MESH maxCars spoiler_attaches_0
susp0: MESH maxCars suspension_0
tubes0: MESH maxCars tubes_0
underbody0: MESH maxCars underbody_0
windowparts0: MESH maxCars window_parts_0
windows0: MESH maxCars windows_0
Exterior0: GROUP
(lfmake0,rfmake0,lrmake0,rrmake0,staticDriver,staticWheel,staticSeat,staticMirror,staticShifter,body0,cage0,cam0,chassis0,hood0,front0,net0,rear0,roof0,spoilerparts0,susp0,tubes0,underbody0,windows0,windowparts0)
# Make1
body1: MESH maxCars body_1
cage1: MESH maxCars cage_1
cam1: MESH maxCars cam_1
chassis1: MESH maxCars chassis_1
front1: MESH maxCars front_1
hood1: MESH maxCars hood_1
net1: MESH maxCars net_1
rear1: MESH maxCars rear_1
roof1: MESH maxCars roof_1
spoilerparts1: MESH maxCars spoiler_attaches_1
susp1: MESH maxCars suspension_1
tubes1: MESH maxCars tubes_1
underbody1: MESH maxCars underbody_1
windowparts1: MESH maxCars window_parts_1
windows1: MESH maxCars windows_1
Exterior1: GROUP
(lfmake0,rfmake0,lrmake0,rrmake0,staticDriver,staticWheel,staticSeat,staticMirror,staticShifter,body1,cage1,cam1,chassis1,hood1,front1,net1,rear1,roof1,spoilerparts1,susp1,tubes1,underbody1,windows1,windowparts1)
# Make2
body2: MESH maxCars body_2
cage2: MESH maxCars cage_2
cam2: MESH maxCars cam_2
chassis2: MESH maxCars chassis_2
front2: MESH maxCars front_2
hood2: MESH maxCars hood_2
net2: MESH maxCars net_2
rear2: MESH maxCars rear_2
roof2: MESH maxCars roof_2
spoilerparts2: MESH maxCars spoiler_attaches_2
susp2: MESH maxCars suspension_2
tubes2: MESH maxCars tubes_2
underbody2: MESH maxCars underbody_2
windowparts2: MESH maxCars window_parts_2
windows2: MESH maxCars windows_2
Exterior2: GROUP
(lfmake0,rfmake0,lrmake0,rrmake0,staticDriver,staticWheel,staticSeat,staticMirror,staticShifter,body2,cage2,cam2,chassis2,hood2,front2,net2,rear2,roof2,spoilerparts2,susp2,tubes2,underbody2,windows2,windowparts2)
# Make3
body3: MESH maxCars body_3
cage3: MESH maxCars cage_3
cam3: MESH maxCars cam_3
chassis3: MESH maxCars chassis_3
front3: MESH maxCars front_3
hood3: MESH maxCars hood_3
net3: MESH maxCars net_3
rear3: MESH maxCars rear_3
roof3: MESH maxCars roof_3
spoilerparts3: MESH maxCars spoiler_attaches_3
susp3: MESH maxCars suspension_3
tubes3: MESH maxCars tubes_3
underbody3: MESH maxCars underbody_3
windowparts3: MESH maxCars window_parts_3
windows3: MESH maxCars windows_3
Exterior3: GROUP
(lfmake0,rfmake0,lrmake0,rrmake0,staticDriver,staticWheel,staticSeat,staticMirror,staticShifter,body3,cage3,cam3,chassis3,hood3,front3,net3,rear3,roof3,spoilerparts3,susp3,tubes3,underbody3,windows3,windowparts3)
extView: STATE_SWITCH Var carMakeIdx (0 exterior0, 1 Exterior1,2 Exterior2,3 Exterior3, 4)
##################################
#
# Interior View
#
##################################
maInt: MESH_GROUP "interior.pas" RENAME_MAT (paintjob paintjob)
# Windshield enable
window: MESH maInt glass
windshield: STATE_SWITCH VAR windshieldEnable (0.0 window, 0.9)
# Descklid
deck: MESH maInt decklid
# Shifter
mashift: MESH maInt shift
tranShifter: TRANSFORM NAME shifter POS(0.114,-0.006,-0.146) ROT(0,0,0) mashift
# mirror
mir: MESH maInt mirror
maPort: MESH maInt revPortal
mirPort: PORTAL rearView maPort
mirGroup: GROUP (mirPort,mir)
rearViewMirror: STATE_SWITCH VAR mirrorFrameEnable (0 mirGroup, 1)
# steering wheel
sWheel: MESH maInt WHEEL
tranWheel: TRANSFORM NAME steer POS(-0.320,0.391,0.323) ROT(0,0.2,0.2) sWheel
ssWheel: STATE_SWITCH VAR steeringWheelEnable (0 tranWheel, 0.9)
# DashPanel
dashPanel: MESH maInt panel
# Tub
fullTub: MESH maInt tub
# Catch
catch: MESH maInt windowcatch
# bars
bars: MESH maInt cage
# Foam
intFoam: MESH maInt foam
# DashIgn
dashIgn: MESH maInt dash
# Netting
# Netting2
# Head
tranHead: TRANSFORM NAME head POS(-0.75,0.4,0.467) ROT(0,0,0) maEmpty
# Tach
dayCol: Mesh maInt TACHDAYCOL
dayFac: Mesh maInt TACHDAYFACE
daySwi: Mesh maInt TACHDAYSWI
nightCol: Mesh maInt TACHNIGHTCOL
nightFac: Mesh maInt TACHNIGHTFACE
nightSwi: Mesh maInt TACHNIGHTSWI
TACHDAY: GROUP (dayCol,dayFac,daySwi)
TACHNIGHT: GROUP (nightCol,nightFac,nightSwi)
tDaySelf: SELFLIGHTING AMBIENT(0.5,0.5,0.5) TACHDAY
tNightSelf: SELFLIGHTING AMBIENT(0.85,0.85,0.85) TACHNIGHT
ssTach: STATE_SWITCH VAR day_night (0 tDaySelf, 1 tNightSelf, 2)
# pTach
maPTACH: MESH maInt ptach
pTachSelf: SELFLIGHTING AMBIENT(0.7,0.7,0.7) maPTACH
ssPTach: STATE_SWITCH VAR day_night (0 maPTACH, 1 pTachSelf, 2)
tranPTACH: TRANSFORM NAME ptach POS(-0.083,0.503,0.329) ROT(0,0.349,0) ssPTach
# poilp
maPTELL: MESH maInt PTELL
tranPOILP: TRANSFORM NAME poilp POS(0.075,0.411,0.388) ROT(0,0.385,0) maPTELL
# poilt
tranPOILT: TRANSFORM NAME poilt POS(0.075,0.337,0.388) ROT(0,0.385,0) maPTELL
# pfuel
tranPFUEL: TRANSFORM NAME pfuel POS(0.075,0.488,0.388) ROT(0,0.385,0) maPTELL
# pwater
tranPWATER: TRANSFORM NAME pwater POS(0.075,0.262,0.389) ROT(0,0.385,0) maPTELL
# pvoltage
tranPVOLTAGE: TRANSFORM NAME pvoltage POS(0.075,-0.021,0.389) ROT(0,0.385,0) maPTELL
# tachlight
tLightOff: MESH maInt TACHLIGHTOFF
tLightOn: MESH maInt TACHLIGHTON
TACHLIGHTON: SELFLIGHTING AMBIENT(1.0,1.0,1.0) tLightOn
ssTachLight: STATE_SWITCH VAR tachLightEnable (0 tLightOff,1 TACHLIGHTON,2)
# oilPressureLight
dum1off: MESH maInt DUMMY1OFF
dum1on: MESH maInt DUMMY1ON
slDummy1: SELFLIGHTING AMBIENT(1.0,1.0,1.0) dum1on
ssDummyOne: STATE_SWITCH VAR oilPressureLightEnable (0 dum1off,1 slDummy1,2)
tranDum1: TRANSFORM POS(0.091,0.375,0.423) ROT(0,0.366,0) ssDummyOne
# WaterTempLight
dum2off: MESH maInt DUMMY2OFF
dum2on: MESH maInt DUMMY2ON
slDummy2: SELFLIGHTING AMBIENT(1.0,1.0,1.0) dum2on
ssDummyTwo: STATE_SWITCH VAR waterTempLightEnable (0 dum2off,1 slDummy2,2)
tranDum2: TRANSFORM POS(0.091,0.397,0.423) ROT(0,0.366,0) ssDummyTwo
# FuelPressureLight
ssDummyFuel: STATE_SWITCH VAR fuelPressureLightEnable (0 dum1off,1 slDummy1,2)
tranDumFuel: TRANSFORM POS(0.091,0.452,0.423) ROT(0,0.366,0) ssDummyFuel
maInterior: GROUP (windshield,deck,tranShifter,rearViewMirror,ssWheel,dashPanel,fullTub,catch,bars,intFoam,dashIgn,tranHead,ssTach,tranPTACH,tranPOILP,tranPOILT,tranPFUEL,tranPWATER,tranPVOLTAGE,ssTachLight,tranDum1,tranDum2,tranDumFuel)
##################################
#
# Rear-View
#
##################################
maRear: MESH_GROUP "rearview.pas" RENAME_MAT (paintjob paintjob, window windshield)
rv_deck: MESH maRear deck_0
rv_glass: MESH maRear wind_0
rv_cage: MESH maRear gren_0
maRearview: GROUP (rv_deck,rv_glass,rv_cage)
##################################
#
# Cockpit View StateSwitch
#
##################################
cView: STATE_SWITCH VAR cockpitView (0 extView, 1 maInterior, 2 maRearview, 9.9)
OUTPUT cView "make_a.3do"