From 0598a6d3c275f4700487d517cad395c937644f3a Mon Sep 17 00:00:00 2001 From: Magnus Date: Thu, 5 Nov 2009 05:12:48 +0000 Subject: [PATCH] git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3413 fc73d0e0-1445-4013-8a0c-d673dee63da5 --- quakec/fallout2/csqc/main.qc | 384 ++++++++++++++++++++++++++++++++++- 1 file changed, 382 insertions(+), 2 deletions(-) diff --git a/quakec/fallout2/csqc/main.qc b/quakec/fallout2/csqc/main.qc index 51fa9a601..99aa501c7 100644 --- a/quakec/fallout2/csqc/main.qc +++ b/quakec/fallout2/csqc/main.qc @@ -3,6 +3,361 @@ float viewmodelindex; .float lerptime; + +void() Quick_Draw = +{ + float width,height; + width = cvar("vid_conwidth"); + height = cvar("vid_conheight"); + + drawstring('32 -80 0'+('1 0 0'*(width*0.80)) +('0 1 0'*(height*0.90)), " q1 ", '8 8 8', '1 1 1', 1); + QuickImage('32 -72 0'+('1 0 0'*(width*0.80)) +('0 1 0'*(height*0.90)), 5); + + drawstring('64 -80 0'+('1 0 0'*(width*0.80)) +('0 1 0'*(height*0.90)), " q2 ", '8 8 8', '1 1 1', 1); + QuickImage('64 -72 0'+('1 0 0'*(width*0.80)) +('0 1 0'*(height*0.90)), 6); +}; + +void() DrawScreen = +{ + float width,height; + width = cvar("vid_conwidth"); + height = cvar("vid_conheight"); + + ScreenImage(); +}; + +void() Weapon_Draw = +{ + float width,height; + width = cvar("vid_conwidth"); + height = cvar("vid_conheight"); + + local float hand; + + hand = getstati(61); + + if (hand == 1) + { + drawstring('0 -32 0'+('1 0 0'*(width*0.80)) +('0 1 0'*(height*0.90)), " HAND 1 ", '8 8 8', '1 1 1', 1); + SlotImage('0 -24 0'+('1 0 0'*(width*0.80)) +('0 1 0'*(height*0.90)), 1); + } + if (hand == 2) + { + drawstring('0 -32 0'+('1 0 0'*(width*0.80)) +('0 1 0'*(height*0.90)), " HAND 2 ", '8 8 8', '1 1 1', 1); + SlotImage('0 -24 0'+('1 0 0'*(width*0.80)) +('0 1 0'*(height*0.90)), 2); + } +}; + +void() Crosshair_Draw = +{ + float width,height; + width = cvar("vid_conwidth"); + height = cvar("vid_conheight"); + + local float x, a; + local vector y; + + + if (getstati(54) == 0) + a = 16; + else if (getstati(54) == 1) + a = 12; + else if (getstati(54) == 2) + a = 8; + + y = '1 0 0'*width*0.50 + '0 1 0'*height*0.50; + + x = a + (4 * getstati(99)); + Crosshair(y + '1 0 0'*x, "gui/xhair.jpg"); + Crosshair(y + '-1 0 0'*x, "gui/xhair.jpg"); + Crosshair(y + '0 1 0'*x, "gui/xhair.jpg"); + Crosshair(y + '0 -1 0'*x, "gui/xhair.jpg"); + + x = (a+2) + (4 * getstati(99)); + Crosshair(y + '1 0 0'*x, "gui/xhair.jpg"); + Crosshair(y + '-1 0 0'*x, "gui/xhair.jpg"); + Crosshair(y + '0 1 0'*x, "gui/xhair.jpg"); + Crosshair(y + '0 -1 0'*x, "gui/xhair.jpg"); + + x = (a-2) + (4 * getstati(99)); + Crosshair(y + '1 0 0'*x, "gui/xhair.jpg"); + Crosshair(y + '-1 0 0'*x, "gui/xhair.jpg"); + Crosshair(y + '0 1 0'*x, "gui/xhair.jpg"); + Crosshair(y + '0 -1 0'*x, "gui/xhair.jpg"); + +}; + +void() Position_Draw = +{ + float width,height; + width = cvar("vid_conwidth"); + height = cvar("vid_conheight"); + + float pos, s; + string sn; + + pos = getstati(54); + s = getstati(58); + sn = ftos(s); + + if (s > 0) + { + drawstring('0 -32 0'+('1 0 0'*(width*0.40)) +('0 1 0'*(height*0.90)), "sneak", '8 8 8', '1 1 1', 1); + PosImage('0 -24 0'+('1 0 0'*(width*0.40)) +('0 1 0'*(height*0.90)), 1); + drawstring('0 8 0'+('1 0 0'*(width*0.40)) +('0 1 0'*(height*0.90)), strcat("%", sn), '8 8 8', '1 1 1', 1); + } + else if (pos == 1) + { + drawstring('0 -32 0'+('1 0 0'*(width*0.40)) +('0 1 0'*(height*0.90)), "duck", '8 8 8', '1 1 1', 1); + PosImage('0 -24 0'+('1 0 0'*(width*0.40)) +('0 1 0'*(height*0.90)), 1); + } + else if (pos == 2) + { + drawstring('0 -32 0'+('1 0 0'*(width*0.40)) +('0 1 0'*(height*0.90)), "prone", '8 8 8', '1 1 1', 1); + PosImage('0 -24 0'+('1 0 0'*(width*0.40)) +('0 1 0'*(height*0.90)), 2); + } +}; + +void() Chem_Draw = +{ + float width,height; + width = cvar("vid_conwidth"); + height = cvar("vid_conheight"); + + local float rage, heal; + + rage = getstati(55); + heal = getstati(56); + + if (rage == 255) + ChemImage('0 -24 0'+('1 0 0'*(width*0.60)) +('0 1 0'*(height*0.20)), 0); + else if (rage == IID_CHEM_ADRENALINE) + ChemImage('0 -24 0'+('1 0 0'*(width*0.60)) +('0 1 0'*(height*0.20)), 1); + else if (rage == IID_CHEM_PSYCHO) + ChemImage('0 -24 0'+('1 0 0'*(width*0.60)) +('0 1 0'*(height*0.20)), 2); + else if (rage == IID_CHEM_BESERK) + ChemImage('0 -24 0'+('1 0 0'*(width*0.60)) +('0 1 0'*(height*0.20)), 3); + else if (heal > 0) + ChemImage('32 -24 0'+('1 0 0'*(width*0.60)) +('0 1 0'*(height*0.20)), 4); + else if (rage == 777) + ChemImage('0 -24 0'+('1 0 0'*(width*0.60)) +('0 1 0'*(height*0.20)), 5); + +}; + +void() Ammo_Draw = +{ + local float hand, weap, ammo, amount; + local string reveal; + float width,height; + width = cvar("vid_conwidth"); + height = cvar("vid_conheight"); + + hand = getstati(61); + + if (hand == 1) + { + weap = ToIID(getstati(32)); + ammo = WeaponAmmoType(weap); + amount = ShadowSlotOfItem(self, ammo); + //drawstring('300 350 0'+('1 0 0'*IMGSIZEF), " AMMO ", '8 8 8', '1 1 1', 1); + //SlotImage('300 358 0'+('1 0 0'*IMGSIZEF), amount); + drawstring('-64 -32 0'+('1 0 0'*(width*0.80)) +('0 1 0'*(height*0.90)), " AMMO ", '8 8 8', '1 1 1', 1); + if (amount > 0) + SlotImage('-64 -24 0'+('1 0 0'*(width*0.80)) +('0 1 0'*(height*0.90)), amount); + else + BlankImage('-64 -24 0'+('1 0 0'*(width*0.80)) +('0 1 0'*(height*0.90)), 0); + } + else if (hand == 2) + { + weap = ToIID(getstati(33)); + ammo = WeaponAmmoType(weap); + amount = ShadowSlotOfItem(self, ammo); + reveal = ftos(amount); + //drawstring('300 350 0'+('1 0 0'*IMGSIZEF), " AMMO ", '8 8 8', '1 1 1', 1); + //SlotImage('300 358 0'+('1 0 0'*IMGSIZEF), amount); + drawstring('-64 -32 0'+('1 0 0'*(width*0.80)) +('0 1 0'*(height*0.90)), " AMMO ", '8 8 8', '1 1 1', 1); + if (amount > 0) + SlotImage('-64 -24 0'+('1 0 0'*(width*0.80)) +('0 1 0'*(height*0.90)), amount); + else + BlankImage('-64 -24 0'+('1 0 0'*(width*0.80)) +('0 1 0'*(height*0.90)), 0); + } +}; + +void() Money_Draw = +{ + float width,height; + string cash; + width = cvar("vid_conwidth"); + height = cvar("vid_conheight"); + + cash = ftos(getstati(50)); + + drawstring('64 -32 0'+('1 0 0'*(width*0.50)) +('0 1 0'*(height*0.90)), cash, '8 8 8', '1 1 1', 1); + MoneyImage('64 -24 0'+('1 0 0'*(width*0.50)) +('0 1 0'*(height*0.90)), "money.jpg"); + +}; + +void() Energy_Draw = +{ + float width,height; + string cash; + width = cvar("vid_conwidth"); + height = cvar("vid_conheight"); + + cash = ftos(getstati(51)); + + drawstring('34 -32 0'+('1 0 0'*(width*0.50)) +('0 1 0'*(height*0.90)), cash, '8 8 8', '1 1 1', 1); + MoneyImage('32 -24 0'+('1 0 0'*(width*0.50)) +('0 1 0'*(height*0.90)), "energy.jpg"); + +}; + +void() Weight_Draw = +{ + float width,height,carry,max,enc; + string image; + width = cvar("vid_conwidth"); + height = cvar("vid_conheight"); + + carry = getstati(52); + max = getstati(53); + + enc = carry/max; + + if (enc <= 0.10) + image = "weight/weight_zero.jpg"; + else if (enc <= 0.20) + image = "weight/weight_one.jpg"; + else if (enc <= 0.35) + image = "weight/weight_two.jpg"; + else if (enc <= 0.50) + image = "weight/weight_three.jpg"; + else if (enc <= 0.65) + image = "weight/weight_four.jpg"; + else if (enc <= 0.80) + image = "weight/weight_five.jpg"; + else if (enc <= 0.95) + image = "weight/weight_six.jpg"; + else + image = "weight/weight_seven.jpg"; + + MoneyImage('0 -24 0'+('1 0 0'*(width*0.50)) +('0 1 0'*(height*0.90)), image); + +}; + +void() Armor_Draw = +{ + float width,height; + width = cvar("vid_conwidth"); + height = cvar("vid_conheight"); + + //drawstring('300 350 0'+('3 0 0'*IMGSIZEF), " ARMOR ", '8 8 8', '1 1 1', 1); + //SlotImage('300 358 0'+('3 0 0'*IMGSIZEF), 3); + drawstring('64 -32 0'+('1 0 0'*(width*0.80)) +('0 1 0'*(height*0.90)), " ARMOR ", '8 8 8', '1 1 1', 1); + SlotImage('64 -24 0'+('1 0 0'*(width*0.80)) +('0 1 0'*(height*0.90)), 3); + +}; + +void() Health_Draw = +{ + float width,height; + height = cvar("vid_conheight"); + float hp, maxhp, status, perc, hpos, tpos, opos, ostatus, ones; + string string_hpos, string_tpos, string_opos; + + hp = getstati(48); + maxhp = getstati(49); + + status = (floor(hp) * 100) / maxhp; + perc = status; + + if (hp >= maxhp) + string_hpos = "one.jpg"; + else + string_hpos = "zero.jpg"; + + ostatus = status; + status = status * 0.10; + status = floor(status); + + if (status == 0) + string_tpos = "zero.jpg"; + if (status == 1) + string_tpos = "one.jpg"; + if (status == 2) + string_tpos = "two.jpg"; + if (status == 3) + string_tpos = "three.jpg"; + if (status == 4) + string_tpos = "four.jpg"; + if (status == 5) + string_tpos = "five.jpg"; + if (status == 6) + string_tpos = "six.jpg"; + if (status == 7) + string_tpos = "seven.jpg"; + if (status == 8) + string_tpos = "eight.jpg"; + if (status == 9) + string_tpos = "nine.jpg"; + if (status == 10) + string_tpos = "zero.jpg"; + + ones = (ostatus - (status*10)); + ones = floor(ones); + + if (ones == 0) + string_opos = "zero.jpg"; + if (ones == 1) + string_opos = "one.jpg"; + if (ones == 2) + string_opos = "two.jpg"; + if (ones == 3) + string_opos = "three.jpg"; + if (ones == 4) + string_opos = "four.jpg"; + if (ones == 5) + string_opos = "five.jpg"; + if (ones == 6) + string_opos = "six.jpg"; + if (ones == 7) + string_opos = "seven.jpg"; + if (ones == 8) + string_opos = "eight.jpg"; + if (ones == 9) + string_opos = "nine.jpg"; + if (status == 10) + string_opos = "zero.jpg"; + + if (hp <= 0) + { + string_hpos = "zero.jpg"; + string_tpos = "zero.jpg"; + string_opos = "zero.jpg"; + } + + if (perc > 50) + { + HealthImage('0 -24 0'+('0 1 0'*(height*0.90)), 0, "percent.jpg"); + HealthImage('32 -24 0'+('0 1 0'*(height*0.90)), 0, string_hpos); + HealthImage('64 -24 0'+('0 1 0'*(height*0.90)), 0, string_tpos); + HealthImage('96 -24 0'+('0 1 0'*(height*0.90)), 0, string_opos); + } + else if (perc > 25) + { + HealthImage('0 -24 0'+('0 1 0'*(height*0.90)), 1, "percent.jpg"); + HealthImage('32 -24 0'+('0 1 0'*(height*0.90)), 1, string_hpos); + HealthImage('64 -24 0'+('0 1 0'*(height*0.90)), 1, string_tpos); + HealthImage('96 -24 0'+('0 1 0'*(height*0.90)), 1, string_opos); + } + else + { + HealthImage('0 -24 0'+('0 1 0'*(height*0.90)), 2, "percent.jpg"); + HealthImage('32 -24 0'+('0 1 0'*(height*0.90)), 2, string_hpos); + HealthImage('64 -24 0'+('0 1 0'*(height*0.90)), 2, string_tpos); + HealthImage('96 -24 0'+('0 1 0'*(height*0.90)), 2, string_opos); + } +}; + void() DoThatViewModelThing = { float newframe, newmodel; @@ -37,7 +392,6 @@ void() CSQC_Init = viewentity.drawmask = MASK_NORMAL; viewentity.renderflags = RF_VIEWMODEL | RF_DEPTHHACK; - FigureOutButtons(); }; @@ -76,6 +430,32 @@ void(float do2d) CSQC_UpdateView = // if (usehud) // Hud_Draw(); - if (show_inventory) + if (getstati(57) == 1) + BriefImage(); + else if (getstati(57) == 2) + DrawScreen(); + else if (getstati(57) == 3) + DrawScreen(); + else if (getstati(57) == 4)//pain + DrawScreen(); + else if (getstati(57) == 5)//flash + DrawScreen(); + else if (getstati(109) == 0) + DrawScreen(); + else if (show_inventory) Invent_Draw(); + else + { + Health_Draw(); + Weight_Draw(); + Money_Draw(); + Ammo_Draw(); + Energy_Draw(); + Weapon_Draw(); + Armor_Draw(); + Position_Draw(); + Quick_Draw(); + Chem_Draw(); + Crosshair_Draw(); + } }; \ No newline at end of file