set g_movement_highspeed 1 "movement speed modification factor (only changes movement when above maxspeed)"
set g_maxspeed 0 "player speed limit, faster players are killed (0 for unlimited speed)"
+
+scr_conalpha 1
+scr_conalpha2factor 0.3
+scr_conalpha3factor 1
+scr_conalphafactor 0.8
+scr_conbrightness 0.35
+scr_conforcewhiledisconnected 1
+scr_conscroll2_x 0.11
+scr_conscroll2_y 0.2
+scr_conscroll3_x 0
+scr_conscroll3_y 0
+scr_conscroll_x -0.1
+scr_conscroll_y -0.3
float weapontime;
float teamnagger;
-float hud_fg_alpha;
float hud_accuracy_hud;
float hud_border_thickness;
float hud_accuracy_border_thickness;
MapVote_DrawAbstain(pos, isize, xmax - xmin, tmp, i);
}
- drawpic(mv_mousepos, strcat("gfx/menu/", cvar_string("menu_skin"), "/cursor.tga"), '32 32 0', '1 1 1', hud_fg_alpha, DRAWFLAG_NORMAL);
+ drawpic(mv_mousepos, strcat("gfx/menu/", cvar_string("menu_skin"), "/cursor.tga"), '32 32 0', '1 1 1', autocvar_hud_panel_fg_alpha, DRAWFLAG_NORMAL);
}
void Cmd_MapVote_MapDownload(float argc)
dist = vlen(self.origin - view_origin);
float a;
- a = self.alpha * hud_fg_alpha;
+ a = self.alpha * autocvar_hud_panel_fg_alpha;
if(self.maxdistance > waypointsprite_normdistance)
a *= pow(bound(0, (self.maxdistance - dist) / (self.maxdistance - waypointsprite_normdistance), 1), waypointsprite_distancealphaexponent);
// works for up to 10 decimals!
string ftos_decimals(float number, float decimals)
{
- string result;
- string tmp;
- float len;
-
- // if negative, cut off the sign first
- if(number < 0)
- return strcat("-", ftos_decimals(-number, decimals));
- // it now is always positive!
-
- // 3.516 -> 352
- number = floor(number * pow(10, decimals) + 0.5);
-
- // 352 -> "352"
- result = ftos(number);
- len = strlen(result);
- // does it have a decimal point (should not happen)? If there is one, it is always at len-7)
- // if ftos had messed it up, which should never happen: "34278.000000"
- if(len >= 7)
- if(substring(result, len - 7, 1) == ".")
- {
- dprint("ftos(integer) has comma? Can't be. Affected result: ", result, "\n");
- result = substring(result, 0, len - 7);
- len -= 7;
- }
- // "34278"
- if(decimals == 0)
- return result; // don't insert a point for zero decimals
- // is it too short? If yes, insert leading zeroes
- if(len <= decimals)
- {
- result = strcat(substring("0000000000", 0, decimals - len + 1), result);
- len = decimals + 1;
- }
- // and now... INSERT THE POINT!
- tmp = substring(result, len - decimals, decimals);
- result = strcat(substring(result, 0, len - decimals), ".", tmp);
- return result;
+ // we have sprintf...
+ return sprintf("%.*f", decimals, number);
}
float time;
ATTRIB(BorderImage, isNexposeeTitleBar, float, 0)
ATTRIB(BorderImage, zoomedOutTitleBarPosition, float, 0)
ATTRIB(BorderImage, zoomedOutTitleBar, float, 0)
- ATTRIB(BorderImage, borderLines, float, 1)
ENDCLASS(BorderImage)
#endif
me.realFontSize_Nexposeed = me.realFontSize;
}
SUPER(BorderImage).resizeNotify(me, relOrigin, relSize, absOrigin, absSize);
- me.borderVec = me.borderHeight / absSize_y * (eY + eX * (absSize_y / absSize_x));
+ me.borderVec_x = me.borderHeight / absSize_x;
+ me.borderVec_y = me.borderHeight / absSize_y;
me.realOrigin_y = 0.5 * (me.borderVec_y - me.realFontSize_y);
if(me.closeButton)
{
//print(vtos(me.borderVec), "\n");
if(me.src)
- draw_BorderPicture('0 0 0', me.src, '1 1 0', me.color, 1, me.borderLines * me.borderVec);
+ draw_BorderPicture('0 0 0', me.src, '1 1 0', me.color, 1, me.borderVec);
if(me.fontSize > 0)
{
vector ro, rf, df;
ATTRIB(Dialog, zoomedOutTitleBar, float, 0)
ATTRIB(Dialog, backgroundImage, string, string_null)
+ ATTRIB(Dialog, borderLines, float, 1)
ATTRIB(Dialog, closeButtonImage, string, string_null)
ATTRIB(Dialog, frame, entity, NULL)
float absWidth, absHeight;
me.frame = spawnBorderImage();
- me.frame.configureBorderImage(me.frame, me.title, me.titleFontSize, me.color, me.backgroundImage, me.titleHeight);
+ me.frame.configureBorderImage(me.frame, me.title, me.titleFontSize, me.color, me.backgroundImage, me.borderLines * me.titleHeight);
me.frame.zoomedOutTitleBarPosition = me.zoomedOutTitleBarPosition;
me.frame.zoomedOutTitleBar = me.zoomedOutTitleBar;
me.frame.alpha = me.alpha;
me.titleHeight = 0; // no title bar
absWidth = me.intendedWidth * conwidth;
- absHeight = me.titleHeight + me.marginTop + me.rows * me.rowHeight + (me.rows - 1) * me.rowSpacing + me.marginBottom;
+ absHeight = me.borderLines * me.titleHeight + me.marginTop + me.rows * me.rowHeight + (me.rows - 1) * me.rowSpacing + me.marginBottom;
me.itemOrigin = eX * (me.marginLeft / absWidth)
- + eY * ((me.titleHeight + me.marginTop) / absHeight);
+ + eY * ((me.borderLines * me.titleHeight + me.marginTop) / absHeight);
me.itemSize = eX * ((1 - (me.marginLeft + me.marginRight + me.columnSpacing * (me.columns - 1)) / absWidth) / me.columns)
+ eY * (me.rowHeight / absHeight);
me.itemSpacing = me.itemSize
float sortbuf, glob, i;
string fn;
+ glob = search_begin(get_model_datafilename(string_null, -1, "txt"), TRUE, TRUE);
+ if (glob < 0)
+ return;
+
me.configureXonoticImage(me, string_null, -1);
sortbuf = buf_create();
- glob = search_begin(get_model_datafilename(string_null, -1, "txt"), TRUE, TRUE);
for(i = 0; i < search_getsize(glob); ++i)
{
// select model #i!
}
buf_del(sortbuf);
get_model_parameters(string_null, 0);
- me.loadCvars(me);
+ me.loadCvars(me); // this will select the initial model, depending on the current cvars
+ me.go(me, 0); // this will set the vars for the selected model
}
void XonoticPlayerModelSelector_destroy(entity me)
{
void XonoticPlayerModelSelector_loadCvars(entity me)
{
+ string skin, model;
float i;
- if(me.currentModel)
- strunzone(me.currentModel);
- me.currentSkin = cvar("_cl_playerskin");
- me.currentModel = strzone(cvar_string("_cl_playermodel"));
+
+ skin = cvar_string("_cl_playerskin");
+ model = cvar_string("_cl_playermodel");
+
for(i = 0; i < me.numModels; ++i)
{
- if(bufstr_get(me.bufModels, BUFMODELS_COUNT*i+BUFMODELS_MODEL) == me.currentModel)
- if(bufstr_get(me.bufModels, BUFMODELS_COUNT*i+BUFMODELS_SKIN) == ftos(me.currentSkin))
+ if(bufstr_get(me.bufModels, BUFMODELS_COUNT*i+BUFMODELS_MODEL) == model)
+ if(bufstr_get(me.bufModels, BUFMODELS_COUNT*i+BUFMODELS_SKIN) == skin)
break;
}
if(i >= me.numModels) // fail
i = 0;
me.idxModels = i;
- me.go(me, 0); // this will set the other vars for currentSkin and currentModel
}
void XonoticPlayerModelSelector_go(entity me, float d)
void PlayerModelSelector_Next_Click(entity btn, entity me)
{
+ if (me.numModels <= 0)
+ return;
me.go(me, +1);
me.saveCvars(me);
}
void PlayerModelSelector_Prev_Click(entity btn, entity me)
{
+ if (me.numModels <= 0)
+ return;
me.go(me, -1);
me.saveCvars(me);
}
float i, n;
vector o;
- SUPER(XonoticPlayerModelSelector).draw(me);
+ if (me.numModels <= 0)
+ {
+ draw_CenterText('0.5 0.5 0', "<no model found>", me.realFontSize, '1 1 1', 0.6, FALSE);
+ return;
+ }
+ SUPER(XonoticPlayerModelSelector).draw(me);
// draw text on the image, handle \n in the description
draw_CenterText('0.5 0 0', me.currentModelTitle, me.realFontSize * (me.titleFontSize / me.fontSize), SKINCOLOR_MODELTITLE, SKINALPHA_MODELTITLE, FALSE);
raptor_beam_leangth = CCVAR("_beam_length");
raptor_beam_refire = CCVAR("_beam_refire");
- raptor_shield_max = CCVAR("_shield_max");
+ raptor_shield_max = CCVAR("_shield");
raptor_shield_regen = CCVAR("_shield_regen");
- raptor_health_max = CCVAR("_health_max");
+ raptor_health_max = CCVAR("_health");
raptor_health_regen = CCVAR("_health_regen");
- raptor_energy_max = CCVAR("_energy_max");
+ raptor_energy_max = CCVAR("_energy");
raptor_energy_regen = CCVAR("_energy_regen");
}
}
void raptor_beam (vector start, vector end, vector smin, vector smax, float bforce, float f_dmg, float deathtype)
-
{
vector hitloc, force, endpoint, dir;
entity ent;
setorigin(player,vhic.origin + '0 0 32');
// Aim the gunz
+ /*
vector target_angle, move_angle, org1, org2, targ;
makevectors(player.v_angle);
move_angle = shortangle_vxy(move_angle,(vhic.angles + vhic.gun2.angles));
vhic.gun2.angles_x = bound(-15,move_angle_x + vhic.gun2.angles_x,15);
vhic.gun2.angles_y = bound(-20,move_angle_y + vhic.gun2.angles_y,20);
-
+ */
if(player.BUTTON_ATCK)
if(vhic.vehicle_energy > (raptor_beam_aps * sys_frametime))
{
raptor_spawn();
}
-void spawnfunc_vehicle_raptor2()
+void spawnfunc_vehicle_raptor()
{
self.cvar_basename = "g_vehicle_raptor";
raptor_loadsettings();
}
-void spawnfunc_vehicle_raptor()
+void spawnfunc_vehicle_raptor2()
{
entity iqm,dpm,md3;
if((self.vehicle_flags & VHF_HASSHIELD) && (self.vehicle_shield > 0))
{
- if not (self.tur_head.enemy)
+
+ if (wasfreed(self.tur_head.enemy) || self.tur_head.enemy == world)
{
self.tur_head.enemy = spawn();
self.tur_head.enemy.effects = EF_LOWPRECISION;
}
- setmodel(self.tur_head.enemy,"models/vhshield.md3");
- setattachment(self.tur_head.enemy,self,"");
+ setmodel(self.tur_head.enemy, "models/vhshield.md3");
+ setattachment(self.tur_head.enemy, self, "");
self.tur_head.enemy.colormod = '1 1 1';
self.tur_head.enemy.alpha = 0.45;
.entity gun1;
.entity gun2;
+.entity shield;
+
.float vehicle_health;
.float vehicle_shield;
.float vehicle_energy;
--- /dev/null
+set g_vehicle_raptor_reload 1\r
+\r
+set g_vehicle_raptor_movestyle 1\r
+set g_vehicle_raptor_turnspeed 90\r
+set g_vehicle_raptor_turnroll 0.1\r
+set g_vehicle_raptor_pitchspeed 45\r
+set g_vehicle_raptor_speed_forward 1500\r
+set g_vehicle_raptor_speed_strafe 1500\r
+set g_vehicle_raptor_speed_up 1250\r
+set g_vehicle_raptor_speed_down 1400\r
+\r
+set g_vehicle_raptor_bomblet_waves 2\r
+set g_vehicle_raptor_bomblet_wavefirst 0.5\r
+set g_vehicle_raptor_bomblet_wavenext 0.3\r
+set g_vehicle_raptor_bomblet_wawespread 0.3\r
+set g_vehicle_raptor_bomblets 3\r
+set g_vehicle_raptor_bomblet_damage 90\r
+set g_vehicle_raptor_bomblet_edgedamage 40\r
+set g_vehicle_raptor_bomblet_radius 250\r
+set g_vehicle_raptor_bomblet_force 300\r
+set g_vehicle_raptor_bombs_refire 1\r
+\r
+set g_vehicle_raptor_beam_dps 200\r
+set g_vehicle_raptor_beam_fops 150\r
+set g_vehicle_raptor_beam_aps 100\r
+set g_vehicle_raptor_beam_size 8\r
+set g_vehicle_raptor_beam_leangth 1\r
+set g_vehicle_raptor_beam_refire 2\r
+\r
+set g_vehicle_raptor_shield 250\r
+set g_vehicle_raptor_shield_regen 50\r
+\r
+set g_vehicle_raptor_health 250\r
+set g_vehicle_raptor_health_regen 10\r
+\r
+set g_vehicle_raptor_energy 300\r
+set g_vehicle_raptor_energy_regen 50
\ No newline at end of file