]> git.xolatile.top Git - xolatile-badassbug.git/commitdiff
Alternative GUI, more info in scoreboard, icons, accuracy, pickup state...
authorxolatile <xolatile@proton.me>
Wed, 23 Jul 2025 15:33:57 +0000 (17:33 +0200)
committerxolatile <xolatile@proton.me>
Wed, 23 Jul 2025 15:33:57 +0000 (17:33 +0200)
51 files changed:
TODO.md
packages/icons/blue_armour.png [new file with mode: 0644]
packages/icons/chaingun.png [new file with mode: 0644]
packages/icons/chainsaw.png [new file with mode: 0644]
packages/icons/green_armour.png [new file with mode: 0644]
packages/icons/grenade_launcher.png [new file with mode: 0644]
packages/icons/health.png [new file with mode: 0644]
packages/icons/health_boost.png [new file with mode: 0644]
packages/icons/pistol.png [new file with mode: 0644]
packages/icons/quad_damage.png [new file with mode: 0644]
packages/icons/rifle.png [new file with mode: 0644]
packages/icons/rocket_launcher.png [new file with mode: 0644]
packages/icons/shotgun.png [new file with mode: 0644]
packages/icons/tiny_health.png [new file with mode: 0644]
packages/icons/yellow_armour.png [new file with mode: 0644]
src/fpsgame/entities.cpp
src/fpsgame/fps.cpp
src/fpsgame/game.h
src/fpsgame/scoreboard.cpp
src/fpsgame/weapon.cpp
temporary/action.jpg [new file with mode: 0755]
temporary/arrow_bw.jpg [new file with mode: 0755]
temporary/arrow_fw.jpg [new file with mode: 0755]
temporary/background.png [new file with mode: 0755]
temporary/checkbox_off.jpg [new file with mode: 0755]
temporary/checkbox_on.jpg [new file with mode: 0755]
temporary/cube.png [new file with mode: 0755]
temporary/exit.jpg [new file with mode: 0755]
temporary/guicursor.png [new file with mode: 0755]
temporary/guioverlay.png [new file with mode: 0755]
temporary/guiskin.png [new file with mode: 0755]
temporary/guislider.png [new file with mode: 0755]
temporary/info.jpg [new file with mode: 0755]
temporary/items.png [new file with mode: 0755]
temporary/loading_bar.png [new file with mode: 0755]
temporary/loading_frame.png [new file with mode: 0755]
temporary/logo.png [new file with mode: 0755]
temporary/logo_1024.png [new file with mode: 0755]
temporary/mapshot_frame.png [new file with mode: 0755]
temporary/menu.jpg [new file with mode: 0755]
temporary/mrfixit.jpg [new file with mode: 0755]
temporary/mrfixit_blue.jpg [new file with mode: 0755]
temporary/mrfixit_red.jpg [new file with mode: 0755]
temporary/radio_off.jpg [new file with mode: 0755]
temporary/radio_on.jpg [new file with mode: 0755]
temporary/server.jpg [new file with mode: 0755]
temporary/serverfull.jpg [new file with mode: 0755]
temporary/serverlock.jpg [new file with mode: 0755]
temporary/serverpriv.jpg [new file with mode: 0755]
temporary/serverunk.jpg [new file with mode: 0755]
temporary/spectator.jpg [new file with mode: 0755]

diff --git a/TODO.md b/TODO.md
index c81eff7c73df99767a147a88cf5ca1bacfc41efd..0f657ed209acd286a83967d2e1973c744bc58705 100644 (file)
--- a/TODO.md
+++ b/TODO.md
@@ -14,6 +14,7 @@
 - Balance:
        0) Playtest current weapons and armours.
        1) Playtest the bots (old AI).
+       2) Modify armour type based on maximum.
 - HUD:
        0) Add accuracy, frags, deaths, suicides and more.
        1) Add accuracy per weapon, with icons.
diff --git a/packages/icons/blue_armour.png b/packages/icons/blue_armour.png
new file mode 100644 (file)
index 0000000..ba1c98a
Binary files /dev/null and b/packages/icons/blue_armour.png differ
diff --git a/packages/icons/chaingun.png b/packages/icons/chaingun.png
new file mode 100644 (file)
index 0000000..6d16322
Binary files /dev/null and b/packages/icons/chaingun.png differ
diff --git a/packages/icons/chainsaw.png b/packages/icons/chainsaw.png
new file mode 100644 (file)
index 0000000..f540c6d
Binary files /dev/null and b/packages/icons/chainsaw.png differ
diff --git a/packages/icons/green_armour.png b/packages/icons/green_armour.png
new file mode 100644 (file)
index 0000000..5f97acc
Binary files /dev/null and b/packages/icons/green_armour.png differ
diff --git a/packages/icons/grenade_launcher.png b/packages/icons/grenade_launcher.png
new file mode 100644 (file)
index 0000000..3c4fd35
Binary files /dev/null and b/packages/icons/grenade_launcher.png differ
diff --git a/packages/icons/health.png b/packages/icons/health.png
new file mode 100644 (file)
index 0000000..636ad6e
Binary files /dev/null and b/packages/icons/health.png differ
diff --git a/packages/icons/health_boost.png b/packages/icons/health_boost.png
new file mode 100644 (file)
index 0000000..684086d
Binary files /dev/null and b/packages/icons/health_boost.png differ
diff --git a/packages/icons/pistol.png b/packages/icons/pistol.png
new file mode 100644 (file)
index 0000000..fea4049
Binary files /dev/null and b/packages/icons/pistol.png differ
diff --git a/packages/icons/quad_damage.png b/packages/icons/quad_damage.png
new file mode 100644 (file)
index 0000000..947e31d
Binary files /dev/null and b/packages/icons/quad_damage.png differ
diff --git a/packages/icons/rifle.png b/packages/icons/rifle.png
new file mode 100644 (file)
index 0000000..3498f42
Binary files /dev/null and b/packages/icons/rifle.png differ
diff --git a/packages/icons/rocket_launcher.png b/packages/icons/rocket_launcher.png
new file mode 100644 (file)
index 0000000..6150d28
Binary files /dev/null and b/packages/icons/rocket_launcher.png differ
diff --git a/packages/icons/shotgun.png b/packages/icons/shotgun.png
new file mode 100644 (file)
index 0000000..4593d29
Binary files /dev/null and b/packages/icons/shotgun.png differ
diff --git a/packages/icons/tiny_health.png b/packages/icons/tiny_health.png
new file mode 100644 (file)
index 0000000..119c663
Binary files /dev/null and b/packages/icons/tiny_health.png differ
diff --git a/packages/icons/yellow_armour.png b/packages/icons/yellow_armour.png
new file mode 100644 (file)
index 0000000..5ae36eb
Binary files /dev/null and b/packages/icons/yellow_armour.png differ
index 63d35d00f20eae54736a456735826e323b562e39..4676ca819daa6ea785a37fe8252aa178fc6fc239 100644 (file)
@@ -1,5 +1,7 @@
 #include "game.h"
 
+int pwitemspicked[7] = { 0 };
+
 namespace entities
 {
     using namespace game;
@@ -183,6 +185,15 @@ namespace entities
         }
         playsound(itemstats[type-I_SHELLS].sound, d!=h ? &d->o : NULL, NULL, 0, 0, 0, -1, 0, 1500);
         d->pickup(type);
+        switch(type) {
+            case I_TINYARMOUR:   pwitemspicked[0]++; break;
+            case I_GREENARMOUR:  pwitemspicked[1]++; break;
+            case I_YELLOWARMOUR: pwitemspicked[2]++; break;
+            case I_TINYHEALTH:   pwitemspicked[3]++; break;
+            case I_HEALTH:       pwitemspicked[4]++; break;
+            case I_BOOST:        pwitemspicked[5]++; break;
+            case I_QUAD:         pwitemspicked[6]++; break;
+        }
         if(d==h) switch(type)
         {
             case I_BOOST:
index 2f2986e0af35304be7b2ec2e2fd5104e3fd16575..377afa3211709aa2e8e0cd3885b1e083f3853bf6 100644 (file)
@@ -649,6 +649,7 @@ namespace game
 
     void startmap(const char *name)   // called just after a map load
     {
+        pwreset();
         ai::savewaypoints();
         ai::clearwaypoints(true);
 
@@ -980,11 +981,20 @@ namespace game
         flushhudmatrix();
 
         defformatstring(label, "%d", p->ammo[gun]);
-        int tw, th; text_bounds(label, tw, th);
+        int tw, th, moved, movew = 0, moveh = 0; text_bounds(label, tw, th);
         vec2 textdrawpos = vec2(-tw, -th).div(2);
         float ammoratio = (float)p->ammo[gun] / itemstats[gun-GUN_SG].add;
         bvec color = bvec::hexcolor(p->ammo[gun] == 0 || ammoratio >= 1.0f ? 0xFFFFFF : (ammoratio >= 0.5f ? 0xFFC040 : 0xFF0000));
         draw_text(label, textdrawpos.x, textdrawpos.y, color.r, color.g, color.b, alpha);
+        /// ALIGN STUFF AND ADD COMMAND FOR IT...
+        //~text_bounds(label, movew, moveh);
+        //~moved = movew + 6;
+        //~defformatstring(damagedealt, "| %d ", pwdamagedealt[gun]);
+        //~draw_text(damagedealt, textdrawpos.x+moved, textdrawpos.y, color.r, color.g, color.b, alpha);
+        //~text_bounds(damagedealt, movew, moveh);
+        //~moved += movew;
+        //~defformatstring(accuracy, "| %d %%", pwaccuracy[gun]);
+        //~draw_text(accuracy, textdrawpos.x+moved, textdrawpos.y, color.r, color.g, color.b, alpha);
 
         pophudmatrix();
     }
index 3ab04473ed4a164091dfa65f8d246a0ed60e82ae..9427864cdbcfcccdd2624b009c99e22b13f4cf0a 100644 (file)
@@ -268,9 +268,23 @@ static const struct guninfo {
     { S_RLFIRE,    800, 120,   0, 270,  10, 1024,       1, 160,  40,    0, "rocketlauncher",  "rocket", 0 },
     { S_RIFLE,    1200, 120,   0,   0,  30, 2048,       1,  80,   0,    0, "rifle",           "rifle",  0 },
     { S_FLAUNCH,   600,  90,   0, 300,  20, 1024,       1, 250,  45, 1500, "grenadelauncher", "gl",     0 },
-    { S_PISTOL,    400,  60, 160,   0,  10, 1024,       1,  80,   0,    0, "pistol",          "pistol", 0 },
+    { S_PISTOL,    400,  60, 110,   0,  10, 1024,       1,  80,   0,    0, "pistol",          "pistol", 0 },
 };
 
+/// Rough accuracy code, client-side only.
+
+extern int pwshotsfired[NUMGUNS];
+extern int pwshotshit[NUMGUNS];
+extern int pwdamagedealt[NUMGUNS];
+extern int pwaccuracy[NUMGUNS];
+extern int pwavgaccuracy;
+extern int pwitemspicked[7];
+
+extern void pwshot(int gun);
+extern void pwhit(int gun, int damage);
+extern void pwcalcaccuracy(void);
+extern void pwreset(void);
+
 #include "ai.h"
 
 // inherited by fpsent and server clients
@@ -318,12 +332,6 @@ struct fpsstate
             [[fallthrough]];
             case I_YELLOWARMOUR: return maxarmour<is.max || armour<maxarmour;
 
-            //~case I_TINYARMOUR:
-                //~if(armourtype==A_GREEN || armourtype==A_YELLOW || armour>=50)return false;
-            //~case I_GREENARMOUR:
-                //~// (100h/100g only absorbs 200 damage)
-                //~if(armourtype==A_YELLOW && armour>=100)return false;
-            //~case I_YELLOWARMOUR: return !armourtype || armour<is.max;
             case I_QUAD: return quadmillis<is.max;
             default: return ammo[is.info]<is.max;
         }
@@ -338,13 +346,9 @@ struct fpsstate
             case I_TINYHEALTH:
                 health = min(health+is.add, maxhealth);
                 break;
-            //~case I_TINYARMOUR:
-                //~armour = min(armour+is.add, is.max);
-                //~armourtype = A_BLUE;
-                //~break;
             case I_BOOST:
                 maxhealth = min(maxhealth+is.info, is.max);
-            [[fallthrough]];
+                [[fallthrough]];
             case I_HEALTH: // boost also adds to health
                 health = min(health+is.add, maxhealth);
                 break;
@@ -357,11 +361,6 @@ struct fpsstate
                 armour     = min(armour+is.add, maxarmour);
                 armourtype = is.info;
                 break;
-            //~case I_GREENARMOUR:
-            //~case I_YELLOWARMOUR:
-                //~armour = min(armour+is.add, is.max);
-                //~armourtype = is.info;
-                //~break;
             case I_QUAD:
                 quadmillis = min(quadmillis+is.add, is.max);
                 break;
@@ -402,7 +401,7 @@ struct fpsstate
         {
             armourtype = A_GREEN;
             armour = 100;
-            loopi(5) baseammo(i+1);
+            loopi(NUMGUNS-1) baseammo(i+1);
             gunselect = GUN_CG;
             ammo[GUN_CG] /= 2;
         }
@@ -411,14 +410,13 @@ struct fpsstate
             armourtype = A_BLUE;
             armour = 25;
             ammo[GUN_PISTOL] = 40;
-            ammo[GUN_GL] = 1;
         }
     }
 
     // just subtract damage here, can set death, etc. later in code calling this
     int dodamage(int damage)
     {
-        int ad = (damage*(armourtype+1)*25)/100; // let armour absorb when possible
+        int ad = (damage*(armourtype+1)*30)/100; // let armour absorb when possible
         if(ad>armour) ad = armour;
         armour -= ad;
         damage -= ad;
index 40a12467cf2c44468f777d9cdc43ac5e46ec63e1..2bc82d2f0d4746e93e5a077a89093965e712acc4 100644 (file)
@@ -5,15 +5,16 @@ namespace game
 {
     VARP(scoreboard2d, 0, 1, 1);
     VARP(showservinfo, 0, 1, 1);
-    VARP(showclientnum, 0, 0, 1);
+    VARP(showclientnum, 0, 1, 1);
     VARP(showpj, 0, 0, 1);
     VARP(showping, 0, 1, 2);
     VARP(showspectators, 0, 1, 1);
-    VARP(showspectatorping, 0, 0, 1);
+    VARP(showspectatorping, 0, 1, 1);
     VARP(highlightscore, 0, 1, 1);
     VARP(showconnecting, 0, 0, 1);
-    VARP(hidefrags, 0, 1, 1);
-    VARP(showdeaths, 0, 0, 1);
+    VARP(hidefrags, 0, 0, 1);
+    VARP(showdeaths, 0, 1, 1);
+    VARP(showdamagedealt, 0, 1, 1);
 
     static hashset<teaminfo> teaminfos;
 
@@ -253,13 +254,19 @@ namespace game
                 g.poplist();
             }
 
+            if(showdamagedealt)
+            {
+                g.pushlist();
+                g.strut(7);
+                g.text("damage", fgcolor);
+                loopscoregroup(o, g.textf("%d", 0xFFFFDD, NULL, o->totaldamage));
+                g.poplist();
+            }
+
             g.pushlist();
             g.text("name", fgcolor);
             g.strut(12);
-            loopscoregroup(o,
-            {
-                g.textf("%s ", statuscolor(o, 0xFFFFDD), NULL, colorname(o));
-            });
+            loopscoregroup(o, { g.textf("%s ", statuscolor(o, 0xFFFFDD), NULL, colorname(o)); });
             g.poplist();
 
             if(multiplayer(false) || demoplayback)
@@ -417,6 +424,28 @@ namespace game
                 }
             }
         }
+
+        /// PW
+        g.separator();
+        g.pushlist();
+        g.textf(" %d%% ", 0x787878, "chainsaw.png",         pwaccuracy[0]);
+        g.textf(" %d%% ", 0xfba6a6, "shotgun.png",          pwaccuracy[1]);
+        g.textf(" %d%% ", 0x7bc77a, "chaingun.png",         pwaccuracy[2]);
+        g.textf(" %d%% ", 0xefd7a6, "rocket_launcher.png",  pwaccuracy[3]);
+        g.textf(" %d%% ", 0x8f91e7, "rifle.png",            pwaccuracy[4]);
+        g.textf(" %d%% ", 0x9ee5e5, "grenade_launcher.png", pwaccuracy[5]);
+        g.textf(" %d%% ", 0xc3c3c3, "pistol.png",           pwaccuracy[6]);
+        g.poplist();
+        g.separator();
+        g.pushlist();
+        g.textf(" x %d ", 0xffffff, "blue_armour.png",   pwitemspicked[0]);
+        g.textf(" x %d ", 0xffffff, "green_armour.png",  pwitemspicked[1]);
+        g.textf(" x %d ", 0xffffff, "yellow_armour.png", pwitemspicked[2]);
+        g.textf(" x %d ", 0xffffff, "tiny_health.png",   pwitemspicked[3]);
+        g.textf(" x %d ", 0xffffff, "health.png",        pwitemspicked[4]);
+        g.textf(" x %d ", 0xffffff, "health_boost.png",  pwitemspicked[5]);
+        g.textf(" x %d ", 0xffffff, "quad_damage.png",   pwitemspicked[6]);
+        g.poplist();
     }
 
     struct scoreboardgui : g3d_callback
index ab87ebf7ffa51899aac66a3b1267c258434e211e..f516c2e2a98a84fda4722506e28740865a41d941 100644 (file)
@@ -363,6 +363,8 @@ namespace game
 
         if(f->type==ENT_AI || !m_mp(gamemode) || f==at) f->hitpush(damage, vel, at, gun);
 
+        pwhit(gun, damage);
+
         if(!m_mp(gamemode)) damaged(damage, f, at);
         else
         {
@@ -778,6 +780,8 @@ namespace game
         }
         if(d->gunselect) d->ammo[d->gunselect]--;
 
+        pwshot(d->gunselect); /// PW
+
         vec from = d->o, to = targ, dir = vec(to).sub(from).safenormalize();
         float dist = to.dist(from);
         vec kickback = vec(dir).mul(guns[d->gunselect].kickamount*-2.5f);
@@ -807,8 +811,8 @@ namespace game
                    hits.length(), hits.length()*sizeof(hitmsg)/sizeof(int), hits.getbuf());
         }
 
-               d->gunwait = guns[d->gunselect].attackdelay;
-               if(d->gunselect == GUN_PISTOL && d->ai) d->gunwait += int(d->gunwait*(((101-d->skill)+rnd(111-d->skill))/100.f));
+        d->gunwait = guns[d->gunselect].attackdelay;
+        if(d->gunselect == GUN_PISTOL && d->ai) d->gunwait += int(d->gunwait*(((101-d->skill)+rnd(111-d->skill))/100.f));
         d->totalshots += guns[d->gunselect].damage*(d->quadmillis ? 4 : 1)*guns[d->gunselect].rays;
     }
 
@@ -955,6 +959,7 @@ namespace game
     void updateweapons(int curtime)
     {
         updateprojectiles(curtime);
+        pwcalcaccuracy();
         if(player1->clientnum>=0 && player1->state==CS_ALIVE) shoot(player1, worldpos); // only shoot when connected to server
         updatebouncers(curtime); // need to do this after the player shoots so grenades don't end up inside player's BB next frame
         fpsent *following = followingplayer();
@@ -983,3 +988,36 @@ namespace game
     }
 };
 
+/// Rough accuracy code, client-side only.
+
+int pwshotsfired  [NUMGUNS] = { 0 };
+int pwshotshit    [NUMGUNS] = { 0 };
+int pwdamagedealt [NUMGUNS] = { 0 };
+int pwaccuracy    [NUMGUNS] = { 0 };
+int pwavgaccuracy = 0;
+
+void pwshot(int gun) {
+    pwshotsfired[gun]++;
+}
+
+void pwhit(int gun, int damage) {
+    pwshotshit[gun]++;
+    pwdamagedealt[gun] += damage;
+}
+
+void pwcalcaccuracy(void) {
+    pwavgaccuracy = 0;
+    loopi(NUMGUNS)
+        if(pwshotsfired[i])
+            pwaccuracy[i] = (pwdamagedealt[i] * 100) / (guns[i].damage * guns[i].rays * pwshotsfired[i]);
+        else
+            pwaccuracy[i] = 0;
+    loopi(NUMGUNS) pwavgaccuracy += pwaccuracy[i];
+    pwavgaccuracy /= NUMGUNS;
+}
+
+void pwreset(void) {
+    loopi(NUMGUNS) pwshotsfired[i] = pwshotshit[i] = pwdamagedealt[i] = pwaccuracy[i] = 0;
+    loopi(7) pwitemspicked[i] = 0;
+    pwavgaccuracy = 0;
+}
diff --git a/temporary/action.jpg b/temporary/action.jpg
new file mode 100755 (executable)
index 0000000..331a14e
Binary files /dev/null and b/temporary/action.jpg differ
diff --git a/temporary/arrow_bw.jpg b/temporary/arrow_bw.jpg
new file mode 100755 (executable)
index 0000000..b2285d3
Binary files /dev/null and b/temporary/arrow_bw.jpg differ
diff --git a/temporary/arrow_fw.jpg b/temporary/arrow_fw.jpg
new file mode 100755 (executable)
index 0000000..7c9b37d
Binary files /dev/null and b/temporary/arrow_fw.jpg differ
diff --git a/temporary/background.png b/temporary/background.png
new file mode 100755 (executable)
index 0000000..066b0d4
Binary files /dev/null and b/temporary/background.png differ
diff --git a/temporary/checkbox_off.jpg b/temporary/checkbox_off.jpg
new file mode 100755 (executable)
index 0000000..646d1d4
Binary files /dev/null and b/temporary/checkbox_off.jpg differ
diff --git a/temporary/checkbox_on.jpg b/temporary/checkbox_on.jpg
new file mode 100755 (executable)
index 0000000..3a96d1e
Binary files /dev/null and b/temporary/checkbox_on.jpg differ
diff --git a/temporary/cube.png b/temporary/cube.png
new file mode 100755 (executable)
index 0000000..13924e3
Binary files /dev/null and b/temporary/cube.png differ
diff --git a/temporary/exit.jpg b/temporary/exit.jpg
new file mode 100755 (executable)
index 0000000..0b26631
Binary files /dev/null and b/temporary/exit.jpg differ
diff --git a/temporary/guicursor.png b/temporary/guicursor.png
new file mode 100755 (executable)
index 0000000..71c0fb4
Binary files /dev/null and b/temporary/guicursor.png differ
diff --git a/temporary/guioverlay.png b/temporary/guioverlay.png
new file mode 100755 (executable)
index 0000000..e7888e4
Binary files /dev/null and b/temporary/guioverlay.png differ
diff --git a/temporary/guiskin.png b/temporary/guiskin.png
new file mode 100755 (executable)
index 0000000..225e13c
Binary files /dev/null and b/temporary/guiskin.png differ
diff --git a/temporary/guislider.png b/temporary/guislider.png
new file mode 100755 (executable)
index 0000000..36eb8e6
Binary files /dev/null and b/temporary/guislider.png differ
diff --git a/temporary/info.jpg b/temporary/info.jpg
new file mode 100755 (executable)
index 0000000..3baf731
Binary files /dev/null and b/temporary/info.jpg differ
diff --git a/temporary/items.png b/temporary/items.png
new file mode 100755 (executable)
index 0000000..d014c3d
Binary files /dev/null and b/temporary/items.png differ
diff --git a/temporary/loading_bar.png b/temporary/loading_bar.png
new file mode 100755 (executable)
index 0000000..1e2cb4c
Binary files /dev/null and b/temporary/loading_bar.png differ
diff --git a/temporary/loading_frame.png b/temporary/loading_frame.png
new file mode 100755 (executable)
index 0000000..5d8cd4b
Binary files /dev/null and b/temporary/loading_frame.png differ
diff --git a/temporary/logo.png b/temporary/logo.png
new file mode 100755 (executable)
index 0000000..5b0abe8
Binary files /dev/null and b/temporary/logo.png differ
diff --git a/temporary/logo_1024.png b/temporary/logo_1024.png
new file mode 100755 (executable)
index 0000000..e56c00a
Binary files /dev/null and b/temporary/logo_1024.png differ
diff --git a/temporary/mapshot_frame.png b/temporary/mapshot_frame.png
new file mode 100755 (executable)
index 0000000..e7888e4
Binary files /dev/null and b/temporary/mapshot_frame.png differ
diff --git a/temporary/menu.jpg b/temporary/menu.jpg
new file mode 100755 (executable)
index 0000000..7c9b37d
Binary files /dev/null and b/temporary/menu.jpg differ
diff --git a/temporary/mrfixit.jpg b/temporary/mrfixit.jpg
new file mode 100755 (executable)
index 0000000..ab620d0
Binary files /dev/null and b/temporary/mrfixit.jpg differ
diff --git a/temporary/mrfixit_blue.jpg b/temporary/mrfixit_blue.jpg
new file mode 100755 (executable)
index 0000000..b136aac
Binary files /dev/null and b/temporary/mrfixit_blue.jpg differ
diff --git a/temporary/mrfixit_red.jpg b/temporary/mrfixit_red.jpg
new file mode 100755 (executable)
index 0000000..3c57dca
Binary files /dev/null and b/temporary/mrfixit_red.jpg differ
diff --git a/temporary/radio_off.jpg b/temporary/radio_off.jpg
new file mode 100755 (executable)
index 0000000..7d6280e
Binary files /dev/null and b/temporary/radio_off.jpg differ
diff --git a/temporary/radio_on.jpg b/temporary/radio_on.jpg
new file mode 100755 (executable)
index 0000000..c90fb2b
Binary files /dev/null and b/temporary/radio_on.jpg differ
diff --git a/temporary/server.jpg b/temporary/server.jpg
new file mode 100755 (executable)
index 0000000..384a3c2
Binary files /dev/null and b/temporary/server.jpg differ
diff --git a/temporary/serverfull.jpg b/temporary/serverfull.jpg
new file mode 100755 (executable)
index 0000000..4d71200
Binary files /dev/null and b/temporary/serverfull.jpg differ
diff --git a/temporary/serverlock.jpg b/temporary/serverlock.jpg
new file mode 100755 (executable)
index 0000000..7216db7
Binary files /dev/null and b/temporary/serverlock.jpg differ
diff --git a/temporary/serverpriv.jpg b/temporary/serverpriv.jpg
new file mode 100755 (executable)
index 0000000..514228f
Binary files /dev/null and b/temporary/serverpriv.jpg differ
diff --git a/temporary/serverunk.jpg b/temporary/serverunk.jpg
new file mode 100755 (executable)
index 0000000..3efe1e2
Binary files /dev/null and b/temporary/serverunk.jpg differ
diff --git a/temporary/spectator.jpg b/temporary/spectator.jpg
new file mode 100755 (executable)
index 0000000..05e0e21
Binary files /dev/null and b/temporary/spectator.jpg differ