]> icculus.org git repositories - divverent/nexuiz.git/blob - data/qcsrc/client/ons.qc
Committed my CSQC stuff, let's see:
[divverent/nexuiz.git] / data / qcsrc / client / ons.qc
1 void() Cmd_ons_map =
2 {
3         ons_showmap = !ons_showmap;
4 };
5
6 vector(vector coord) mapCoords =
7 {
8         local vector ret;
9         ret = coord; // put that up to ret's definition and it's '0 0 0' ... stupid fteqcc
10         ret -= mi_center;
11         ret_x = ret_x * 256.0 / mi_scale_x;
12         ret_y = -ret_y * 256.0 / mi_scale_y;
13         ret_z = 0;
14         ret = ret + '400 178';
15         return ret;
16 };
17
18 void(vector coord, vector pangles, vector rgb) drawplayer =
19 {
20         makevectors(pangles);
21         v_forward_z = 0;
22         v_forward = normalize(v_forward);
23         v_forward_y *= -1.0;
24         v_right_x = -v_forward_y;
25         v_right_y = v_forward_x;
26         // Ryling on !tex[0] => texture_white
27         // beware of the order, it has to be clockwise!
28         R_BeginPolygon("", 0);
29         R_PolygonVertex(coord+v_forward*2, '0 0', rgb, 1);
30         R_PolygonVertex(coord+v_right*3-v_forward*2, '0 1', rgb, 1);
31         R_PolygonVertex(coord-v_forward, '1 0', rgb, 1);
32         R_PolygonVertex(coord-v_right*3-v_forward*2, '1 1', rgb, 1);
33         R_EndPolygon();
34 };
35
36 void() ons_view =
37 {
38         if(ons_showmap) {
39                 local float color;
40                 local vector coord, dir, rgb;
41
42                 color = stof(getplayerkey(player_localentnum-1, "topcolor"));
43
44                 /*dir = pmove_org - mi_redbase;
45
46                 dir_x *= mi_scale_x;
47                 dir_y *= -mi_scale_y;
48                         
49                 coord = '272 50' + mi_redicon + dir*mi_scale_z;
50                   coord_z = 0;*/
51                 coord = mapCoords(pmove_org);
52                         
53                 drawpic('272 50', minimapname, '256 256', '1 1 1', 1, 0);
54                 drawpic('257 35', "gfx/ons-frame.tga", '286 286', '1 1 1', 1, 0);
55                 if(color == COLOR_TEAM_RED)
56                 {
57                         rgb = '1 0 0';
58                 } else if(color == COLOR_TEAM_BLUE) {
59                         rgb = '0 0 1';
60                 } else {
61                         rgb = '1 1 1';
62                 }
63                 drawpic('257 35', "gfx/ons-frame-team.tga", '286 286', rgb, 1, 0);
64
65                 drawplayer(coord, input_angles, '1 1 1');
66
67                 local entity tm;
68                 for(tm = gps_start; tm != world; tm = tm.chain)
69                 {
70                         //print(strcat("GPS: ", ftos(tm.sv_entnum), " - ", vtos(tm.origin), "\n"));
71                         drawplayer(mapCoords(tm.origin), tm.angles, rgb);
72                 }
73         }
74 };