stratagus-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Stratagus-CVS] stratagus data/ccl/menus.ccl src/clone/player.c...


From: Jimmy Salmon
Subject: [Stratagus-CVS] stratagus data/ccl/menus.ccl src/clone/player.c...
Date: Fri, 26 Sep 2003 14:52:20 -0400

CVSROOT:        /cvsroot/stratagus
Module name:    stratagus
Branch:         
Changes by:     Jimmy Salmon <address@hidden>   03/09/26 14:52:20

Modified files:
        data/ccl       : menus.ccl 
        src/clone      : player.c pud.c unit_draw.c 
        src/include    : player.h 
        src/ui         : botpanel.c menus.c 

Log message:
        More work to make number of races configurable

Patches:
Index: stratagus/data/ccl/menus.ccl
diff -u stratagus/data/ccl/menus.ccl:1.89 stratagus/data/ccl/menus.ccl:1.90
--- stratagus/data/ccl/menus.ccl:1.89   Sat Aug  2 09:37:06 2003
+++ stratagus/data/ccl/menus.ccl        Fri Sep 26 14:52:17 2003
@@ -26,7 +26,7 @@
 ;;      along with this program; if not, write to the Free Software
 ;;      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  
USA
 ;;
-;;     $Id: menus.ccl,v 1.89 2003/08/02 13:37:06 grumbel Exp $
+;;     $Id: menus.ccl,v 1.90 2003/09/26 18:52:17 jsalmon3 Exp $
 
 ;;
 ;; load the keystroke helps
@@ -455,10 +455,7 @@
 (define-menu-item 'pos (list 40 (+ 10 240)) 'font 'game
   'pulldown '(size (152 20)
     style pulldown
-    func game-rcs-action
-    options ("Human" "Orc" "Map Default" )
-    default 2
-    current 2)
+    func game-rcs-action)
   'menu 'menu-custom-game)
 (define-menu-item 'pos (list 220 (- (+ 10 240) 20)) 'font 'game
   'text '(caption "~<Resources:~>" none)
@@ -761,10 +758,7 @@
 (define-menu-item 'pos (list 40 (+ 10 240)) 'font 'game
   'pulldown '(size (152 20)
     style pulldown
-    func game-rcs-action
-    options ("Human" "Orc" "Map Default" )
-    default 2
-    current 2)
+    func game-rcs-action)
   'menu 'menu-multi-setup)
 (define-menu-item 'pos (list 220 (- (+ 10 240) 20)) 'font 'game
   'text '(caption "~<Resources:~>" none)
@@ -1189,10 +1183,7 @@
 (define-menu-item 'pos (list 40 (+ 10 240)) 'font 'game
   'pulldown '(size (152 20)
     style pulldown
-    func multi-client-rcs-action
-    options ("Human" "Orc" "Map Default" )
-    default 2
-    current 2)
+    func multi-client-rcs-action)
   'menu 'menu-net-multi-client)
 (define-menu-item 'pos (list 220 (- (+ 10 240) 20)) 'font 'game
   'text '(caption "~<Resources:~>" none)
Index: stratagus/src/clone/player.c
diff -u stratagus/src/clone/player.c:1.90 stratagus/src/clone/player.c:1.91
--- stratagus/src/clone/player.c:1.90   Fri Sep 19 04:51:56 2003
+++ stratagus/src/clone/player.c        Fri Sep 26 14:52:18 2003
@@ -26,7 +26,7 @@
 //      Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 //      02111-1307, USA.
 //
-//     $Id: player.c,v 1.90 2003/09/19 08:51:56 mr-russ Exp $
+//     $Id: player.c,v 1.91 2003/09/26 18:52:18 jsalmon3 Exp $
 
 //@{
 
@@ -127,7 +127,8 @@
        }
     }
     fprintf(stderr,"Invalid race: %d\n", race);
-    return -1;
+    DebugCheck(1);
+    return PlayerRaceNeutral;
 }
 
 /**
@@ -189,7 +190,7 @@
     int j;
 
     CLprintf(file,"\n;;; -----------------------------------------\n");
-    CLprintf(file,";;; MODULE: players $Id: player.c,v 1.90 2003/09/19 
08:51:56 mr-russ Exp $\n\n");
+    CLprintf(file,";;; MODULE: players $Id: player.c,v 1.91 2003/09/26 
18:52:18 jsalmon3 Exp $\n\n");
 
 #ifndef NEW_UI
     //
@@ -1082,9 +1083,6 @@
            case 7: DebugLevel0("rescue akt.  ");       break;
        }
        k=PlayerRacesIndex(Players[i].Race);
-       if( k==-1 ) {
-           k=PlayerRaces.Race[PlayerRaces.Count-1];
-       }
        DebugLevel0("%9s" _C_ PlayerRaces.Name[k]);
        DebugLevel0("%2d " _C_ Players[i].AiNum);
        switch( Players[i].AiNum ) {
Index: stratagus/src/clone/pud.c
diff -u stratagus/src/clone/pud.c:1.108 stratagus/src/clone/pud.c:1.109
--- stratagus/src/clone/pud.c:1.108     Sun Aug 17 11:57:06 2003
+++ stratagus/src/clone/pud.c   Fri Sep 26 14:52:18 2003
@@ -26,7 +26,7 @@
 //      Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 //      02111-1307, USA.
 //
-//     $Id: pud.c,v 1.108 2003/08/17 15:57:06 n0body Exp $
+//     $Id: pud.c,v 1.109 2003/09/26 18:52:18 jsalmon3 Exp $
 
 //@{
 
@@ -578,9 +578,7 @@
                    v=PudReadByte(input);
                    buf[0] = v & 0xFF;
                    info->MapUID += ChksumArea(buf, 1);
-                   if( PlayerRacesIndex(v)==-1 ) {
-                       v=PlayerRaces.Race[PlayerRaces.Count-1];
-                   }
+                   v=PlayerRaces.Race[PlayerRacesIndex(v)];
                    info->PlayerSide[i]=v;
                }
                continue;
@@ -1055,9 +1053,7 @@
 
                for( i=0; i<16; ++i ) {
                    v=PudReadByte(input);
-                   if( PlayerRacesIndex(v)==-1 ) {
-                       v=PlayerRaces.Race[PlayerRaces.Count-1];
-                   }
+                   v=PlayerRaces.Race[PlayerRacesIndex(v)];
                    if (GameSettings.Presets[i].Race == 
SettingsPresetMapDefault) {
                        PlayerSetSide(&Players[i],v);
                    } else {
Index: stratagus/src/clone/unit_draw.c
diff -u stratagus/src/clone/unit_draw.c:1.162 
stratagus/src/clone/unit_draw.c:1.163
--- stratagus/src/clone/unit_draw.c:1.162       Wed Sep 24 12:03:24 2003
+++ stratagus/src/clone/unit_draw.c     Fri Sep 26 14:52:18 2003
@@ -26,7 +26,7 @@
 //      Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 //      02111-1307, USA.
 //
-//     $Id: unit_draw.c,v 1.162 2003/09/24 16:03:24 n0body Exp $
+//     $Id: unit_draw.c,v 1.163 2003/09/26 18:52:18 jsalmon3 Exp $
 
 //@{
 
@@ -577,7 +577,7 @@
 global void SaveDecorations(CLFile* file)
 {
     CLprintf(file,"\n;;; -----------------------------------------\n");
-    CLprintf(file,";;; MODULE: decorations $Id: unit_draw.c,v 1.162 2003/09/24 
16:03:24 n0body Exp $\n\n");
+    CLprintf(file,";;; MODULE: decorations $Id: unit_draw.c,v 1.163 2003/09/26 
18:52:18 jsalmon3 Exp $\n\n");
 
     CLprintf(file,"(mana-sprite \"%s\"  %d %d  %d %d)\n",
        ManaSprite.File,ManaSprite.HotX,ManaSprite.HotY,
@@ -800,7 +800,7 @@
     //
     stats=unit->Stats;
     //  Why remove the neutral race?
-    if( (unit->Player->Type!=PlayerRaceNeutral)
+    if( (unit->Player->Type!=PlayerNeutral)
                && ShowHealthBar ) {
        if( stats->HitPoints
                && !(ShowNoFull && unit->HP==stats->HitPoints) ) {
@@ -881,7 +881,7 @@
     // Health dot on left side of unit.
     //  Why skip the neutral units?
     //
-    if( (unit->Player->Type!=PlayerRaceNeutral)
+    if( (unit->Player->Type!=PlayerNeutral)
                && ShowHealthDot ) {
        if( stats->HitPoints
                && !(ShowNoFull && unit->HP==stats->HitPoints) ) {
Index: stratagus/src/include/player.h
diff -u stratagus/src/include/player.h:1.73 stratagus/src/include/player.h:1.74
--- stratagus/src/include/player.h:1.73 Wed Sep  3 05:27:51 2003
+++ stratagus/src/include/player.h      Fri Sep 26 14:52:19 2003
@@ -26,7 +26,7 @@
 //      Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 //      02111-1307, USA.
 //
-//     $Id: player.h,v 1.73 2003/09/03 09:27:51 mr-russ Exp $
+//     $Id: player.h,v 1.74 2003/09/26 18:52:19 jsalmon3 Exp $
 
 #ifndef __PLAYER_H__
 #define __PLAYER_H__
@@ -373,8 +373,8 @@
 enum PlayerRacesOld {
     PlayerRaceHuman    =0,             /// belongs to human
     PlayerRaceOrc      =1,             /// belongs to orc
-    PlayerRaceNeutral  =2,             /// belongs to none
 };
+#define PlayerRaceNeutral (PlayerRaces.Count-1)
 
 /**
 **     Types for the player (must fit to PUD!)
Index: stratagus/src/ui/botpanel.c
diff -u stratagus/src/ui/botpanel.c:1.88 stratagus/src/ui/botpanel.c:1.89
--- stratagus/src/ui/botpanel.c:1.88    Thu Sep 18 13:56:04 2003
+++ stratagus/src/ui/botpanel.c Fri Sep 26 14:52:19 2003
@@ -27,7 +27,7 @@
 //      Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 //      02111-1307, USA.
 //
-//     $Id: botpanel.c,v 1.88 2003/09/18 17:56:04 n0body Exp $
+//     $Id: botpanel.c,v 1.89 2003/09/26 18:52:19 jsalmon3 Exp $
 
 //@{
 
@@ -114,7 +114,7 @@
 #endif
 
     CLprintf(file,"\n;;; -----------------------------------------\n");
-    CLprintf(file,";;; MODULE: buttons $Id: botpanel.c,v 1.88 2003/09/18 
17:56:04 n0body Exp $\n\n");
+    CLprintf(file,";;; MODULE: buttons $Id: botpanel.c,v 1.89 2003/09/26 
18:52:19 jsalmon3 Exp $\n\n");
 
 #ifndef NEW_UI
     for( i=0; i<NumUnitButtons; ++i ) {
@@ -728,9 +728,6 @@
     }
 
     i=PlayerRacesIndex(ThisPlayer->Race);
-    if( i==-1 ) {
-       i=PlayerRaces.Race[PlayerRaces.Count-1];
-    }
     sprintf(unit_ident,",%s-group,",PlayerRaces.Name[i]);
 
     for( z = 0; z < NumUnitButtons; z++ ) {
Index: stratagus/src/ui/menus.c
diff -u stratagus/src/ui/menus.c:1.556 stratagus/src/ui/menus.c:1.557
--- stratagus/src/ui/menus.c:1.556      Tue Sep 23 03:02:56 2003
+++ stratagus/src/ui/menus.c    Fri Sep 26 14:52:19 2003
@@ -26,7 +26,7 @@
 //      Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 //      02111-1307, USA.
 //
-//     $Id: menus.c,v 1.556 2003/09/23 07:02:56 mr-russ Exp $
+//     $Id: menus.c,v 1.557 2003/09/26 18:52:19 jsalmon3 Exp $
 
 //@{
 
@@ -4228,11 +4228,24 @@
 */
 local void GameRCSAction(Menuitem *mi, int i)
 {
-    int v[] = { PlayerRaceHuman, PlayerRaceOrc, SettingsPresetMapDefault };
+    int n;
+    int x;
 
     if (mi->d.pulldown.curopt == i) {
-       GameSettings.Presets[0].Race = v[i];
-       ServerSetupState.Race[0] = 2 - i;
+       for (n = 0, x = 0; n < PlayerRaces.Count; ++n) {
+           if (PlayerRaces.Visible[n]) {
+               if (x == i) {
+                   break;
+               }
+               ++x;
+           }
+       }
+       if (n != PlayerRaces.Count) {
+           GameSettings.Presets[0].Race = PlayerRaces.Race[x];
+       } else {
+           GameSettings.Presets[0].Race = SettingsPresetMapDefault;
+       }
+       ServerSetupState.Race[0] = mi->d.pulldown.noptions - 1 - i;
        NetworkServerResyncClients();
     }
 }
@@ -4403,6 +4416,9 @@
     int i;
     int num[PlayerMax];
     int comp[PlayerMax];
+    int n;
+    int x;
+    int v;
 
     DebugCheck(!MenuMapInfo);
 
@@ -4437,14 +4453,22 @@
            case 0:
                GameSettings.Presets[num[i]].Type = PlayerPerson;
                DebugLevel3Fn("Settings[%d].Type == Person\n" _C_ num[i]);
-               switch (ServerSetupState.Race[num[i]]) {
-                   case 1:
-                       GameSettings.Presets[num[i]].Race = PlayerRaceOrc;
-                       break;
-                   case 2:
-                       GameSettings.Presets[num[i]].Race = PlayerRaceHuman;
-                   default:
-                       break;
+               for (n = 0, v = 0; n < PlayerRaces.Count; ++n) {
+                   if (PlayerRaces.Visible[n]) {
+                       ++v;
+                   }
+               }
+               v -= ServerSetupState.Race[num[i]];
+               for (n = 0, x = 0; n < PlayerRaces.Count; ++n) {
+                   if (PlayerRaces.Visible[n]) {
+                       if (x == v) {
+                           break;
+                       }
+                       ++x;
+                   }
+               }
+               if (n != PlayerRaces.Count) {
+                   GameSettings.Presets[num[i]].Race = PlayerRaces.Race[x];
                }
                break;
            case 1:
@@ -4898,7 +4922,7 @@
 local void MultiClientRCSAction(Menuitem *mi, int i)
 {
     if (mi->d.pulldown.curopt == i) {
-       LocalSetupState.Race[NetLocalHostsSlot] = 2 - i;
+       LocalSetupState.Race[NetLocalHostsSlot] = mi->d.pulldown.noptions - 1 - 
i;
        MultiClientUpdate(0);
     }
 }
@@ -7093,11 +7117,45 @@
 ----------------------------------------------------------------------------*/
 
 /**
+**     Initialize player races for a menu item
+*/
+local void InitPlayerRaces(Menuitem *mi)
+{
+    int i;
+    int n;
+
+    for (i = 0, n = 0; i < PlayerRaces.Count; ++i) {
+       if (PlayerRaces.Visible[i]) {
+           ++n;
+       }
+    }
+    ++n;
+    mi->d.pulldown.options = (char **)malloc(n * sizeof(char *));
+    for (i = 0, n = 0; i < PlayerRaces.Count; ++i) {
+       if (PlayerRaces.Visible[i]) {
+           mi->d.pulldown.options[n++] = strdup(PlayerRaces.Display[i]);
+       }
+    }
+    mi->d.pulldown.options[n++] = strdup("Map Default");
+    mi->d.pulldown.noptions = n;
+    mi->d.pulldown.defopt = n - 1;
+}
+
+/**
 **     Initialize the loaded menu data
 */
 global void InitMenuData(void)
 {
+    Menu *menu;
+
     InitNetMultiButtonStorage();
+
+    menu = FindMenu("menu-custom-game");
+    InitPlayerRaces(&menu->Items[6]);
+    menu = FindMenu("menu-multi-setup");
+    InitPlayerRaces(&menu->Items[21]);
+    menu = FindMenu("menu-net-multi-client");
+    InitPlayerRaces(&menu->Items[21]);
 }
 
 /**




reply via email to

[Prev in Thread] Current Thread [Next in Thread]