
####################################################################
# Camera setup
####################################################################
cameraInit
{
	#-----screen configuration-------------
	configure(
		0,
		sec,
		0,
		0x00FF,
		native,rgb,campal.pcc
	);

	offset = (345,  0); bgLine(ModeAlwaysActive, 0, (0,479), 0x03);
	offset = (346,212); bgLine(ModeAlwaysActive, 0, (293,0), 0x03);

	#-----secondary display----------------
	port = sec;
	offset=(0,0);
	nav(
		A, ModeAlwaysActive,
		(344,479),
		0x00,0x3C,
		MapRange,MapLinearPosition,MapAngularPosition
	   );
	offset = (346,479);
	ranking(
		P,ModeAlwaysActive,
		font32.pcc,
		33,0x2D,0x0003
		);

	offset = (346,0);
	gps(
		Q,ModeAlwaysActive,
		(128,211),1.0
	);

	offset = (476,179);
	digitalClock(
		F,ModeAlwaysActive,
		(150,33),
		font32.pcc,
		5,time,
		0x00,0x2D
	);

}

####################################################################
# VTV setup
####################################################################
# "A" is normal common stuff.
# "B" is basic mode
# "D" is non-basic
# "C" is config

##################################
# lepton
##################################
leptonInit
{
	common_setup;
	twoBoosterInit;
	oneChuteInit;
        lu;
}

##################################
# proton
##################################
protonInit
{
	common_setup;
	twoBoosterInit;
	oneChuteInit;
	rivetInit;
        la;
}

##################################
# quark
##################################
quarkInit
{
	common_setup;
	twoBoosterInit;
        lu;
}

##################################
# dragon
##################################
dragonInit
{
	uncommon_setup;
	rivet1AInit;
	rivet2BInit;
	slaver3BInit;
	po;
}

##################################
# puck
##################################
puckInit
{
	common_setup;
	oneBoosterInit;
  	laserFunkyInit;
	pa;
}

##################################
# dark puck
##################################
darkInit
{
	common_setup;
	oneBoosterInit;
  	laserFunky2Init;
	demopack1AInit;
	demopack2BInit;
	pa;
}
##################################
# discus
##################################
diskInit
{
	common_setup;
	twoBoosterInit;
	oneChuteInit;
	pu;
}

##################################
# speck
##################################
speckInit
{
	common_setup;
	twoBoosterInit;
	oneChuteInit;
	su;
}

##################################
# Black speck
##################################
blkspkInit
{
	common_setup;
	threeBoosterInit;
	oneChuteInit;
	su;
}

##################################
# bug
##################################
bugInit
{
	common_setup;
	twoBoosterInit;
	oneChuteInit;
	su;
}

##################################
# flea
##################################
fleaInit
{
	common_setup;
	twoBoosterInit;
	oneChuteInit;
	demopack1AInit;
	sa;
}

##################################
# wasp
##################################
waspInit
{
	common_setup;
	twoBoosterInit;
	oneChuteInit;
	stinger1AInit;
##	stinger2BInit;
	sa;
}

##################################
# chigger
##################################
chiggerInit
{
	common_setup;
	twoBoosterInit;
	oneChuteInit;
	rivetInit;
	sa;
}

##################################
# skeeter
##################################
skeeterInit
{
	common_setup;
	twoBoosterInit;
	oneChuteInit;
	laserFunkyInit;
	sa;
}

##################################
# roach
##################################
roachInit
{
	common_setup;
	twoBoosterInit;
	oneChuteInit;
	rivet1AInit;
	rivet2BInit;
	sa;
}

##################################
# barge (uses same subsystems as mule)
##################################
bargeInit
{
	common_setup;
	twoBoosterInit;
	oneChuteInit;
	mu;
}

##################################
# mule
##################################
muleInit
{
	common_setup;
	twoBoosterInit;
	oneChuteInit;
	mu;
}

##################################
# broccoli
##################################
broccoliInit
{
	common_setup;
	threeBoosterInit;
	oneChuteInit;
	mu;
}

##################################
# vole
##################################
voleInit
{
	common_setup;
	twoBoosterInit;
	oneChuteInit;
	laserInit;
	ma;
}

##################################
# grunt
##################################
gruntInit
{
	common_setup;
	twoBoosterInit;
	oneChuteInit;
	rivetInit;
	ma;
}

##################################
# burro
##################################
burroInit
{
	common_setup;
	oneBoosterInit;
	oneChuteInit;
	mu;
}

##################################
# battlebarge
##################################
bttlbrgInit
{
	common_setup;
	twoBoosterInit;
	oneChuteInit;
	laserInit;
	demopack1BInit;
	ma;
}

##################################
# gator
##################################
gatorInit
{
	common_setup;
	twoBoosterInit;
	oneChuteInit;
	rivetInit;
	demopack1BInit;
	ma;
}

##################################
# bull
##################################
bullInit
{
	common_setup;
	twoBoosterInit;
	oneChuteInit;
	bu;
}

##################################
# tarantula
##################################
tarntulaInit
{
	common_setup;
	threeBoosterInit;
	oneChuteInit;
	bu;
}

##################################
# black
##################################
blackInit
{
	common_setup;
	fourBoosterInit;
	offsetChuteInit;
	bu;
}



##################################
# ripper
##################################
ripperInit
{
	common_setup;
	twoBoosterInit;
	oneChuteInit;
	demopack1AInit;
	ba;
}

##################################
# spitter
##################################
spitterInit
{
	common_setup;
	twoBoosterInit;
	oneChuteInit;
	rivet1AInit;
	rivet2BInit;
	ba;
}

##################################
# mantis
##################################
mantisInit
{
	common_setup;
	twoBoosterInit;
	oneChuteInit;
	laser1AInit;
	laser2BInit;
	ba;
}

##################################
# roadblock
##################################
roadblkInit
{
	common_setup;
	twoBoosterInit;
	oneChuteInit;
	rivetInit;
	laser1BInit;
	demopack1CInit;
	ba;
}
####################################################################
# PO (dragon,armored)-based VTV's
####################################################################
po
{
	offset=(162,86); bgPixelMap(ModeAlwaysActive, spo.pcc, 1);
	offset=(162,86); colorState(
		Q, ModeAlwaysActive,
		sdpo.pcc,
		0x3A,0.2,
		0x29,0.4,
		0x38,0.6,
		0x39,0.8,
		0x31,0,
		DamageZones
	);
}

####################################################################
# PA (puck,armored)-based VTV's
####################################################################
pa
{
	offset=(162,86);
	bgPixelMap(ModeAlwaysActive, spa.pcc, 1);
	offset=(162,86);
	colorState(
		Q, ModeAlwaysActive,
		sdpa.pcc,
		0x3A,0.2,
		0x29,0.4,
		0x38,0.6,
		0x39,0.8,
		0x31,0,
		DamageZones
	);
}

####################################################################
# PU (puck,unarmored)-based VTV's
####################################################################
pu
{
	offset=(162,86);
	bgPixelMap(ModeAlwaysActive, spa.pcc, 1);
	offset=(162,86);
	colorState(
		Q, ModeAlwaysActive,
		sdpu.pcc,
		0x3A,0.2,
		0x29,0.4,
		0x38,0.6,
		0x39,0.8,
		0x31,0,
		DamageZones
	);
}

####################################################################
# LU (lepton,unarmored)-based VTV's
####################################################################
lu
{
        offset=(162,86); bgPixelMap(ModeAlwaysActive, slu.pcc, 1);
	offset=(162,86); colorState(
		Q, ModeAlwaysActive,
                sdlu.pcc,
		0x3A,0.2,
		0x29,0.4,
		0x38,0.6,
		0x39,0.8,
		0x31,0,
		DamageZones
	);
}

####################################################################
# LA (lepton,armored)-based VTV's
####################################################################
la
{
        offset=(162,86); bgPixelMap(ModeAlwaysActive, slu.pcc, 1);
	offset=(162,86); colorState(
		Q, ModeAlwaysActive,
                sdlu.pcc,
		0x3A,0.2,
		0x29,0.4,
		0x38,0.6,
		0x39,0.8,
		0x31,0,
		DamageZones
	);
}

####################################################################
# SU (speck,unarmored)-based VTV's
####################################################################
su
{
	offset=(162,86); bgPixelMap(ModeAlwaysActive, ssu.pcc, 1);
	offset=(162,86); colorState(
		Q, ModeAlwaysActive,
		sdsu.pcc,
		0x3A,0.2,
		0x29,0.4,
		0x38,0.6,
		0x39,0.8,
		0x31,0,
		DamageZones
	);
}
####################################################################
# SA (speck,armored)-based VTV's
####################################################################
sa
{
	offset=(162,86); bgPixelMap(ModeAlwaysActive, ssa.pcc, 1);
	offset=(162,86); colorState(
		Q, ModeAlwaysActive,
		sdsa.pcc,
		0x3A,0.2,
		0x29,0.4,
		0x38,0.6,
		0x39,0.8,
		0x31,0,
		DamageZones
	);
}
####################################################################
# MU (mule,unarmored)-based VTV's
####################################################################
mu
{
	offset=(162,93); bgPixelMap(ModeAlwaysActive, smu.pcc, 1);
	offset=(162,93); colorState(
		Q, ModeAlwaysActive,
		sdmu.pcc,
		0x3A,0.2,
		0x29,0.4,
		0x38,0.6,
		0x39,0.8,
		0x31,0,
		DamageZones
	);
}
####################################################################
# MA (mule,armored)-based VTV's
####################################################################
ma
{
	offset=(162,93); bgPixelMap(ModeAlwaysActive, sma.pcc, 1);
	offset=(162,93); colorState(
		Q, ModeAlwaysActive,
		sdma.pcc,
		0x3A,0.2,
		0x29,0.4,
		0x38,0.6,
		0x39,0.8,
		0x31,0,
		DamageZones
	);
}
####################################################################
# BU (bull,unarmored)-based VTV's
####################################################################
bu
{
	offset=(162,93); bgPixelMap(ModeAlwaysActive, sbu.pcc, 1);
	offset=(162,93); colorState(
		Q, ModeAlwaysActive,
		sdbu.pcc,
		0x3A,0.2,
		0x29,0.4,
		0x38,0.6,
		0x39,0.8,
		0x31,0,
		DamageZones
	);
}
####################################################################
# BA (bull,armored)-based VTV's
####################################################################
ba
{
	offset=(162,86); bgPixelMap(ModeAlwaysActive, sba.pcc, 1);
	offset=(162,86); colorState(
		Q, ModeAlwaysActive,
		sdba.pcc,
		0x3A,0.2,
		0x29,0.4,
		0x38,0.6,
		0x39,0.8,
		0x31,0,
		DamageZones
	);
}
####################################################################
# Common (VTV-independent) configuration
####################################################################
common_setup
{
	#-----screen configuration-------------
	configure(
		0,
		sec,
		270,
		0x00ff,
		clut0,rgb,secpal.pcc
	);

	configure(
		6,
		auxUL2,
		0,
		0x2000,
		clut2,blank,NULL
	);
	configure(
		7,
		auxUR2,
		0,
		0x4000,
		clut2,blank,NULL
	);

	configure(
		1,
		auxUL,
		0,
		0x0100,
		clut2,blue,NULL
	);
	configure(
		2,
		auxUR,
		0,
		0x0200,
		clut2,red,NULL
	);
	configure(
		3,
		auxLR,
		0,
		0x0400,
		clut1,red,NULL
	);
	configure(
		4,
		auxLL,
		0,
		0x0800,
		clut1,red,NULL
	);
	configure(
		5,
		auxC, 
		0,
		0x1000,
		clut2,green,NULL
	);

	reconfigure(ModeBasic, 6,clut2,blank, NULL);
	reconfigure(ModeBasic, 1,clut2,blue,  NULL);
	reconfigure(ModeBasic, 7,clut2,blank, NULL);
	reconfigure(ModeBasic, 2,clut2,red,   NULL);

	reconfigure(ModeStandard,1,clut2,blank,NULL);
	reconfigure(ModeStandard,6,clut2,blue ,NULL);
	reconfigure(ModeStandard,2,clut2,blank,NULL);
	reconfigure(ModeStandard,7,clut2,red,  NULL);

	externalConfigure(
		8,
		plasma,
		0xFF
	);

	#-----secondary display----------------
	port = sec;
	offset=(  0,  0); tags;
	offset=( 16,224); navGroup;
	offset=( 16,  0); statusGroup;
	offset=(239,  0); speedGroup;
	offset=(352,  0); compassGroup;
	offset=(239,112); msgGroup;

	#-----intercom auxiliary display-------
	port = auxC;
	offset = (128,400);
	ranking(V,ModeAlwaysActive,font32.pcc,40,255,0x0004);

	offset = (0,431);
		bgBitMap(ModeIntercom, strpcom1.pcc,1,255,0);
	offset = (0,  0);
		bgBitMap(ModeIntercom, strpcom2.pcc,1,255,0);

	#-----common auxiliary displays--------
	port = auxLL;
	offset=(0, 45);
		bgBitMap(ModeAlwaysActive, cpictool.pcx,1,255,0);
	offset=(0,431);
		bgBitMap(ModeNonConfig,strptol1.pcc,1,255,0);
		bgBitMap(ModeConfigReady,strpset1.pcc,1,255,0);
	offset=(0,  0);
		bgBitMap(ModeNonConfig,strptol2.pcc,1,255,0);
		bgBitMap(ModeConfigReady,strpset2.pcc,1,255,0);

	port = auxLR;
	offset=(0, 45);
		bgBitMap(ModeAlwaysActive, cpictool.pcx,0,255,0);
	offset=(0,431);
		bgBitMap(ModeNonConfig,strptol1.pcc,1,255,0);
		bgBitMap(ModeConfigReady,strpset1.pcc,1,255,0);
	offset=(0,  0);
		bgBitMap(ModeNonConfig,strptol2.pcc,1,255,0);
		bgBitMap(ModeConfigReady,strpset2.pcc,1,255,0);

	#-----'basic' auxiliary displays--------
	port=auxUR;
	offset=(0, 45); bgBitMap(ModeAlwaysActive, cpicjoyb.pcx,1,255,0);
	offset=(0,431); bgFilledRect(ModeAlwaysActive, (639,48),0x00);
	offset=(0,  0); bgBitMap(ModeAlwaysActive, strpcnf2.pcc,1,255,0);

	port=auxUL;
	offset=(0, 45); bgBitMap(ModeAlwaysActive,cpicthrt.pcx,1,255,0);
	offset=(0,431); bgFilledRect(ModeAlwaysActive,(639,48),0x00);
	offset=(0,  0); bgFilledRect(ModeAlwaysActive,(639,48),0x00);

	#-----'non-basic' auxiliary displays--------
	port=auxUR2;
	offset=( 0, 45); bgBitMap(ModeAlwaysActive,cpiccnfg.pcx,1,255,0);
	offset=( 0,431); bgBitMap(ModeAlwaysActive,strpcnf1.pcc,1,255,0);
	offset=( 0,  0); bgBitMap(ModeAlwaysActive,strpcnf2.pcc,1,255,0);

	offset = (89,100);
	configMap(
		  G,ModeStandard,
		  cfgNone.pcc,
		  cfgOther.pcc,
		  cfgMe.pcc,
		  cfgBoth.pcc
		 );

	port=auxUL2;
	offset=(0, 45);
		bgBitMap(ModeAlwaysActive,cpictool.pcx,1,255,0);
	offset=(0,431);
		bgBitMap(ModeNonConfig,strptol1.pcc,1,255,0);
		bgBitMap(ModeConfigReady,strpset1.pcc,1,255,0);
	offset=(0,  0);
		bgBitMap(ModeNonConfig,strptol2.pcc,1,255,0);
		bgBitMap(ModeConfigReady,strpset2.pcc,1,255,0);

	offset=( 22,240); bgBitMap(ModeAlwaysActive,rpalcut.pcc,0,255,0);
	offset=(327,240); bgBitMap(ModeAlwaysActive,rpaslip.pcc,0,255,0);
	offset=(327, 54); bgBitMap(ModeAlwaysActive,rpahorn.pcc,0,255,0);

	#-----common external displays--------
	port = plasma;
	offset=(33,0); rankAndScore(L,ModeAlwaysActive,tinyfont.pcc,1,0);
}
####################################################################
# UnCommon (VTV-independent) configuration
####################################################################
uncommon_setup
{
	#-----screen configuration-------------
	configure(
		0,
		sec,
		270,
		0x00ff,
		clut0,rgb,secpal.pcc
	);

	configure(
		6,
		auxUL2,
		0,
		0x2000,
		clut2,blank,NULL
	);
	configure(
		7,
		auxUR2,
		0,
		0x4000,
		clut2,blank,NULL
	);

	configure(
		1,
		auxUL,
		0,
		0x0100,
		clut2,blue,NULL
	);
	configure(
		2,
		auxUR,
		0,
		0x0200,
		clut2,red,NULL
	);
	configure(
		3,
		auxLR,
		0,
		0x0400,
		clut1,green,NULL
	);
	configure(
		4,
		auxLL,
		0,
		0x0800,
		clut1,red,NULL
	);
	configure(
		5,
		auxC, 
		0,
		0x1000,
		clut2,green,NULL
	);

	reconfigure(ModeBasic, 6,clut2,blank, NULL);
	reconfigure(ModeBasic, 1,clut2,blue,  NULL);
	reconfigure(ModeBasic, 7,clut2,blank, NULL);
	reconfigure(ModeBasic, 2,clut2,red,   NULL);

	reconfigure(ModeStandard,1,clut2,blank,NULL);
	reconfigure(ModeStandard,6,clut2,blue ,NULL);
	reconfigure(ModeStandard,2,clut2,blank,NULL);
	reconfigure(ModeStandard,7,clut2,red,  NULL);

	externalConfigure(
		8,
		plasma,
		0xFF
	);

	#-----secondary display----------------
	port = sec;
	offset=(  0,  0); tags;
	offset=( 16,224); navGroup;
	offset=( 16,  0); statusGroup;
	offset=(239,  0); speedGroup;
	offset=(352,  0); compassGroup;
	offset=(239,112); msgGroup;

	#-----intercom auxiliary display-------
	port = auxC;
	offset = (128,400);
	ranking(V,ModeAlwaysActive,font32.pcc,40,255,0x0004);

	offset = (0,431);
		bgBitMap(ModeIntercom, strpcom1.pcc,1,255,0);
	offset = (0,  0);
		bgBitMap(ModeIntercom, strpcom2.pcc,1,255,0);

	#-----common auxiliary displays--------
	port = auxLL;
	offset=(0, 45);
		bgBitMap(ModeAlwaysActive, cpictool.pcx,1,255,0);
	offset=(0,431);
		bgBitMap(ModeNonConfig,strptol1.pcc,1,255,0);
		bgBitMap(ModeConfigReady,strpset1.pcc,1,255,0);
	offset=(0,  0);
		bgBitMap(ModeNonConfig,strptol2.pcc,1,255,0);
		bgBitMap(ModeConfigReady,strpset2.pcc,1,255,0);

	port = auxLR;
	offset=(0, 45);
		bgBitMap(ModeAlwaysActive, cpictool.pcx,0,255,0);
	offset=(0,431);
		bgBitMap(ModeNonConfig,strptol1.pcc,1,255,0);
		bgBitMap(ModeConfigReady,strpset1.pcc,1,255,0);
	offset=(0,  0);
		bgBitMap(ModeNonConfig,strptol2.pcc,1,255,0);
		bgBitMap(ModeConfigReady,strpset2.pcc,1,255,0);

	#-----'basic' auxiliary displays--------
	port=auxUR;
	offset=(0, 45); bgBitMap(ModeAlwaysActive, cpicjoyb.pcx,1,255,0);
	offset=(0,431); bgFilledRect(ModeAlwaysActive, (639,48),0x00);
	offset=(0,  0); bgBitMap(ModeAlwaysActive, strpcnf2.pcc,1,255,0);

	port=auxUL;
	offset=(0, 45); bgBitMap(ModeAlwaysActive,cpicthrt.pcx,1,255,0);
	offset=(0,431); bgFilledRect(ModeAlwaysActive,(639,48),0x00);
	offset=(0,  0); bgFilledRect(ModeAlwaysActive,(639,48),0x00);

	#-----'non-basic' auxiliary displays--------
	port=auxUR2;
	offset=( 0, 45); bgBitMap(ModeAlwaysActive,cpiccnfg.pcx,1,255,0);
	offset=( 0,431); bgBitMap(ModeAlwaysActive,strpcnf1.pcc,1,255,0);
	offset=( 0,  0); bgBitMap(ModeAlwaysActive,strpcnf2.pcc,1,255,0);

	offset = (89,100);
	configMap(
		  G,ModeStandard,
		  cfgNone.pcc,
		  cfgOther.pcc,
		  cfgMe.pcc,
		  cfgBoth.pcc
		 );

	port=auxUL2;
	offset=(0, 45);
		bgBitMap(ModeAlwaysActive,cpictool.pcx,1,255,0);
	offset=(0,431);
		bgBitMap(ModeNonConfig,strptol1.pcc,1,255,0);
		bgBitMap(ModeConfigReady,strpset1.pcc,1,255,0);
	offset=(0,  0);
		bgBitMap(ModeNonConfig,strptol2.pcc,1,255,0);
		bgBitMap(ModeConfigReady,strpset2.pcc,1,255,0);

	offset=( 22,240); bgBitMap(ModeAlwaysActive,rpadive.pcc,0,255,0);
	offset=(327,240); bgBitMap(ModeAlwaysActive,rpaslip.pcc,0,255,0);
	offset=(327, 54); bgBitMap(ModeAlwaysActive,rpahorn.pcc,0,255,0);

	#-----common external displays--------
	port = plasma;
	offset=(33,0); rankAndScore(L,ModeAlwaysActive,tinyfont.pcc,1,0);
}

#########################################################
# One chute
#########################################################
oneChuteInit
{
	oneChuteBG;
	port = auxLL;
	offset = (22, 54); chuteGauges;
}
oneChuteBG
{
	port=auxLL;
	offset = (22, 54); bgBitMap(ModeAlwaysActive,rpachute.pcc,1,255,0);
}

chuteGauges
{
	offset = (47, 13);
	numeric(
		E,ModeAlwaysActive,
		(78,45),
		bigfont.pcc,
		2,unsigned,0x00,255,
		Chute/ChutesRemaining
		);
	offset = (157,128);
	segmentarc(
		F,ModeAlwaysActive,
		88,125,
		88,125,
		180,90,-18,
		0x00,255,
		Chute/PercentDone
		);
}
#########################################################
# Offset chute
#########################################################
offsetChuteInit
{
	offsetChuteBG;
	port = auxLR;
	offset = (22, 240); offchuteGauges;
}
offsetChuteBG
{
	port=auxLR;
	offset = (22, 240); bgBitMap(ModeAlwaysActive,rpachute.pcc,1,255,0);
}

offchuteGauges
{
	offset = (47, 13);
	numeric(
		E,ModeAlwaysActive,
		(78,45),
		bigfont.pcc,
		2,unsigned,0x00,255,
		Chute/ChutesRemaining
		);
	offset = (157,128);
	segmentarc(
		F,ModeAlwaysActive,
		88,125,
		88,125,
		180,90,-18,
		0x00,255,
		Chute/PercentDone
		);
}
#########################################################
# One booster
#########################################################
oneBoosterInit
{
	oneBoosterBG;
	port = auxLL;
	offset = (22,240); boost1Gauge;
}
oneBoosterBG
{
	port = auxLL;
	offset = (22,240); bgBitMap(ModeAlwaysActive,rpaboost.pcc,0,255,0);
}
#########################################################
# Two booster
#########################################################
twoBoosterInit
{
	twoBoosterBG;
	port = auxLL;
	offset = ( 22,240); boost1Gauge;
	offset = (327,240); boost2Gauge;
}
twoBoosterBG
{
	port=auxLL;
	offset = ( 22,240); bgBitMap(ModeAlwaysActive,rpaboost.pcc,0,255,0);
	offset = (327,240); bgBitMap(ModeAlwaysActive,rpaboost.pcc,0,255,0);
}
#########################################################
# Three booster
#########################################################
threeBoosterInit
{
	threeBoosterBG;
	port = auxLL;
	offset = ( 22,240); boost1Gauge;
	offset = (327,240); boost2Gauge;
	offset = (327, 54); boost3Gauge;
}
threeBoosterBG
{
	port=auxLL;
	offset = ( 22,240); bgBitMap(ModeAlwaysActive,rpaboost.pcc,0,255,0);
	offset = (327,240); bgBitMap(ModeAlwaysActive,rpaboost.pcc,0,255,0);
	offset = (327, 54); bgBitMap(ModeAlwaysActive,rpaboost.pcc,0,255,0);
}
#########################################################
# Four booster
#########################################################
fourBoosterInit
{
	fourBoosterBG;
	port = auxLL;
	offset = ( 22,240); boost1Gauge;
	offset = (327,240); boost2Gauge;
	offset = (22, 54); boost3Gauge;
	offset = (327, 54); boost4Gauge;
}
fourBoosterBG
{
	port=auxLL;
	offset = ( 22,240); bgBitMap(ModeAlwaysActive,rpaboost.pcc,0,255,0);
	offset = (327,240); bgBitMap(ModeAlwaysActive,rpaboost.pcc,0,255,0);
	offset = (22, 54); bgBitMap(ModeAlwaysActive,rpaboost.pcc,0,255,0);
	offset = (327, 54); bgBitMap(ModeAlwaysActive,rpaboost.pcc,0,255,0);
}
###################################################
# Booster 1
###################################################
boost1Gauge
{
	offset = (47, 13);
	numeric(
		D,ModeAlwaysActive,
		(78,45),
		bigfont.pcc,
		2,unsigned,0x00,255,
		Booster1/BoostersRemaining
		);
	offset =(157,128);
	segmentarc(
		E,ModeAlwaysActive,
		88,125,
		88,125,
		180,90,-18,
		0x00,255,
		Booster1/PercentDone
		);
}
###################################################
# Booster 2
###################################################
boost2Gauge
{
	offset = (47, 13);
	numeric(
		D,ModeAlwaysActive,
		(78,45),
		bigfont.pcc,
		2,unsigned,0x00,255,
		Booster2/BoostersRemaining
		);
	offset =(157,128);
	segmentarc(
		E,ModeAlwaysActive,
		88,125,
		88,125,
		180,90,-18,
		0x00,255,
		Booster2/PercentDone
		);
}
###################################################
# Booster 3
###################################################
boost3Gauge
{
	offset = (47, 13);
	numeric(
		D,ModeAlwaysActive,
		(78,45),
		bigfont.pcc,
		2,unsigned,0x00,255,
		Booster3/BoostersRemaining
		);
	offset =(157,128);
	segmentarc(
		E,ModeAlwaysActive,
		88,125,
		88,125,
		180,90,-18,
		0x00,255,
		Booster3/PercentDone
		);
}

###################################################
# Booster 4
###################################################
boost4Gauge
{
	offset = (47, 13);
	numeric(
		D,ModeAlwaysActive,
		(78,45),
		bigfont.pcc,
		2,unsigned,0x00,255,
		Booster4/BoostersRemaining
		);
	offset =(157,128);
	segmentarc(
		E,ModeAlwaysActive,
		88,125,
		88,125,
		180,90,-18,
		0x00,255,
		Booster4/PercentDone
		);
}


#########################################################
# Lasers
#########################################################
laserInit
{
	port = auxLR;
	offset = (22,240);
	laserBG;
	laserGauge;
}
laserFunkyInit
{
	port = auxLR;
	offset = (22,240);
	laserBG;
	laser2Gauge;
}
laserFunky2Init
{
	port = auxLR;
	offset = (22,54);
	laserBG;
	laser2Gauge;
}

laser1AInit
{
	port = auxLR;
	offset = (22,240);
	laserBG;
	laser1Gauge;
}
laser1BInit
{
	port = auxLR;
	offset = (327,240);
	laserBG;
	laser1Gauge;
}
laser2BInit
{
	port = auxLR;
	offset = (327,240);
	laserBG;
	laser2Gauge;
}
laserBG
{
	bgBitMap(ModeAlwaysActive,rpalaser.pcc,0,255,0);
}
laserGauge
{
	offset=(157,128);
	segmentarc(
		F,ModeAlwaysActive,
		88,125,
		88,125,
		180,90,-18,
		0x00,255,
		LaserGun/PercentDone
		);
}
laser1Gauge
{
	offset=(157,128);
	segmentarc(
		F,ModeAlwaysActive,
		88,125,
		88,125,
		180,90,-18,
		0x00,255,
		LaserGun1/PercentDone
		);
}
laser2Gauge
{
	offset=(157,128);
	segmentarc(
		F,ModeAlwaysActive,
		88,125,
		88,125,
		180,90,-18,
		0x00,255,
		LaserGun2/PercentDone
		);
}
#########################################################
# Slavers
#########################################################
slaverInit
{
	port = auxLR;
	offset = (22,240);
	slaverBG;
	slaverGauge;
}
slaverFunkyInit
{
	port = auxLR;
	offset = (22,240);
	slaverBG;
	slaver2Gauge;
}
slaver1AInit
{
	port = auxLR;
	offset = (22,240);
	slaverBG;
	slaver1Gauge;
}
slaver1BInit
{
	port = auxLR;
	offset = (22,240);
	slaverBG;
	slaver1Gauge;
}
slaver2BInit
{
	port = auxLR;
	offset = (327,240);
	slaverBG;
	slaver2Gauge;
}
slaver3BInit
{
	port = auxLR;
	offset = (22,54);
	slaverBG;
	slaver3Gauge;
}
slaver4BInit
{
	port = auxLR;
	offset = (327,54);
	slaverBG;
	slaver4Gauge;
}
slaverBG
{
	bgBitMap(ModeAlwaysActive,rpaslav.pcc,0,255,0);
}
slaverGauge
{
	offset=(157,128);
	segmentarc(
		F,ModeAlwaysActive,
		88,125,
		88,125,
		180,90,-18,
		0x00,255,
		Slaver/PercentDone
		);
}
slaver1Gauge
{
	offset=(157,128);
	segmentarc(
		F,ModeAlwaysActive,
		88,125,
		88,125,
		180,90,-18,
		0x00,255,
		Slaver1/PercentDone
		);
}
slaver2Gauge
{
	offset=(157,128);
	segmentarc(
		F,ModeAlwaysActive,
		88,125,
		88,125,
		180,90,-18,
		0x00,255,
		Slaver2/PercentDone
		);
}
slaver3Gauge
{
	offset=(157,128);
	segmentarc(
		F,ModeAlwaysActive,
		88,125,
		88,125,
		180,90,-18,
		0x00,255,
		Slaver3/PercentDone
		);
}
slaver4Gauge
{
	offset=(157,128);
	segmentarc(
		F,ModeAlwaysActive,
		88,125,
		88,125,
		180,90,-18,
		0x00,255,
		Slaver4/PercentDone
		);
}
###################################################
# Rivet guns
###################################################
rivetInit
{
	port = auxLR;
	offset = (22,240);
	rivetBG;
	rivetGauge;
}
rivet1AInit
{
	port = auxLR;
	offset = (22,240);
	rivetBG;
	rivet1Gauge;
}
rivet1BInit
{
	port = auxLR;
	offset = (327,240);
	rivetBG;
	rivet1Gauge;
}
rivet2BInit
{
	port = auxLR;
	offset = (327,240);
	rivetBG;
	rivet2Gauge;
}
rivet3BInit
{
	port = auxLR;
	offset = (22,54);
	rivetBG;
	rivet3Gauge;
}
rivetBG
{
	bgBitMap(ModeAlwaysActive,rparivet.pcc,0,255,0);
}
rivetGauge
{
	offset = (47, 13);
	numeric(
		D,ModeAlwaysActive,
		(100,45),
		bigfont.pcc,
		3,unsigned,0x00,255,
		RivetGun/AmmoCount
		);
	offset = (157,133);
	segmentarc(
		E,ModeAlwaysActive,
		88,125,
		88,125,
		180,90,-18,
		0x00,255,
		RivetGun/PercentDone
		);
}
rivet1Gauge
{
	offset = (47, 13);
	numeric(
		D,ModeAlwaysActive,
		(100,45),
		bigfont.pcc,
		3,unsigned,0x00,255,
		RivetGun1/AmmoCount
		);
	offset = (157,133);
	segmentarc(
		E,ModeAlwaysActive,
		88,125,
		88,125,
		180,90,-18,
		0x00,255,
		RivetGun1/PercentDone
		);
}
rivet2Gauge
{
	offset = (47, 13);
	numeric(
		D,ModeAlwaysActive,
		(100,45),
		bigfont.pcc,
		3,unsigned,0x00,255,
		RivetGun2/AmmoCount
		);
	offset = (157,133);
	segmentarc(
		E,ModeAlwaysActive,
		88,125,
		88,125,
		180,90,-18,
		0x00,255,
		RivetGun2/PercentDone
		);
}
rivet3Gauge
{
	offset = (47, 13);
	numeric(
		D,ModeAlwaysActive,
		(100,45),
		bigfont.pcc,
		3,unsigned,0x00,255,
		RivetGun3/AmmoCount
		);
	offset = (157,133);
	segmentarc(
		E,ModeAlwaysActive,
		88,125,
		88,125,
		180,90,-18,
		0x00,255,
		RivetGun3/PercentDone
		);
}
###################################################
# demolition packs
###################################################
demopack1AInit
{
	port = auxLR;
	offset = (22,240);
	demopackBG;
	demopackGauge;
}
demopack1BInit
{
	port = auxLR;
	offset = (327,240);
	demopackBG;
	demopackGauge;
}
demopack2BInit
{
	port = auxLR;
	offset = (327,240);
	demopackBG;
	demopack2Gauge;
}

demopack1CInit
{
	port = auxLR;
	offset = (22,54);
	demopackBG;
	demopackGauge;
}
demopackBG
{
	bgBitMap(ModeAlwaysActive,rpadpack.pcc,0,255,0);
}
demopackGauge
{
	offset = (47, 13);
	numeric(
		D,ModeAlwaysActive,
		(100,45),
		bigfont.pcc,
		2,unsigned,0x00,255,
		DemopackDropper/AmmoCount
		);
	offset = (157,128);
	segmentarc(
		E,ModeAlwaysActive,
		88,125,
		88,125,
		180,90,-18,
		0x00,255,
		DemopackDropper/PercentDone
		);
}
demopack2Gauge
{
	offset = (47, 13);
	numeric(
		D,ModeAlwaysActive,
		(100,45),
		bigfont.pcc,
		2,unsigned,0x00,255,
		DemopackDropper2/AmmoCount
		);
	offset = (157,128);
	segmentarc(
		E,ModeAlwaysActive,
		88,125,
		88,125,
		180,90,-18,
		0x00,255,
		DemopackDropper2/PercentDone
		);
}
###################################################
# stinger
###################################################
stinger1AInit
{
	port = auxLR;
	offset = (22,240);
	stingerBG;
	stingerGauge;
}
stingerBG
{
	bgBitMap(ModeAlwaysActive,rpadpck.pcc,0,255,0);
}
stingerGauge
{
	offset = (47, 13);
	numeric(
		D,ModeAlwaysActive,
		(100,45),
		bigfont.pcc,
		2,unsigned,0x00,255,
		DemoPackDropper/AmmoCount
		);
	offset = (157,128);
	segmentarc(
		E,ModeAlwaysActive,
		88,125,
		88,125,
		180,90,-18,
		0x00,255,
		DemoPackDropper/PercentDone
		);
}
####################################################################
# Secondary groups
####################################################################
tags
{
	offset=(0,  525); bgBitMap(ModeAlwaysActive,butzmin.pcc,0,0x33,0);
	offset=(0,  420); bgBitMap(ModeAlwaysActive,butzmout.pcc,0,0x33,0);
	offset=(0,  210); bgBitMap(ModeAlwaysActive,buthorn.pcc,0,0x33,0);
	offset=(0,  315); bgBitMap(ModeAlwaysActive,butcross.pcc,0,0x33,0);

	offset=(464,525); bgBitMap(ModeAlwaysActive,butpres1.pcc,0,0x33,0);
	offset=(464,420); bgBitMap(ModeAlwaysActive,butpres2.pcc,0,0x33,0);
	offset=(464,315); bgBitMap(ModeAlwaysActive,butpres3.pcc,0,0x33,0);
	offset=(464,210); bgBitMap(ModeAlwaysActive,butpres4.pcc,0,0x33,0);
	offset=(464,105); bgBitMap(ModeAlwaysActive,butpres5.pcc,0,0x33,0);
	offset=(464,  0); bgBitMap(ModeAlwaysActive,butpres6.pcc,0,0x33,0);
}
navGroup
{
	offset = (0,0);
	nav(
		A,ModeAlwaysActive,
		(448,416),
		0x00,
		0x3C,
		NavigationRange,
		NavigationLinearPosition,
		NavigationAngularPosition
	   );
}
msgGroup
{
	offset = (0,0);
	bgPixelMap(ModeAlwaysActive,rpsmb.pcc,0);

	offset = (40,8);
	messageBoard(
		G,ModeAlwaysActive,
		(128,96),
		smlfont.pcc,
		rpsmsgs.pcx,
		0x00,
		0x31
	);
}
statusGroup
{
	offset = (0,0);
	bgPixelMap(ModeAlwaysActive,rpsgps.pcc,0);

	offset = (10,10);
	gps(R,ModeAlwaysActive,(125,203),1.0);

	offset = (146,194);
	digitalClock(I,ModeAlwaysActive, (67,20), clkfont.pcc,5,time,0x00,0x2D);
}
speedGroup
{
	offset = (0,0);
	bgPixelMap(ModeAlwaysActive,rpsspd.pcc,0);

	offset = (5,29);
	pixelbar(
		D,ModeAlwaysActive,
		(99,12),
		rpsspdb.pcc,
		0,right,
		0,300,
		ForwardVelocity
		);

	offset = (25,67);
	numeric(
		H,ModeAlwaysActive,
		(78,27),
		smlfont.pcc,
		4,absolute,0x00,0x2D,
		ForwardVelocity
		);

	offset = (25,47);
	twoState(
		E,ModeAlwaysActive,
		rpsrev.pcc,
		0x00,0x31,
		ControlsMapper/ReverseThrust
		);
}
compassGroup
{
	offset = (0,0);
	bgPixelMap(ModeAlwaysActive,rpscmp.pcc,0);

	offset = (54,56);
	compass(
		A,ModeAlwaysActive,
		45,
		0x3B,
		rpscmpn.pcc,
		rpscmpw.pcc,
		rpscmps.pcc,
		rpscmpe.pcc,
		rpscmpb.pcc
		);

	offset = (54,56);
	threat(C,ModeAlwaysActive,14,33,0x00,0x29,0x79,1000);
}
