[Top][All Lists]
[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]);
}
/**
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Stratagus-CVS] stratagus data/ccl/menus.ccl src/clone/player.c...,
Jimmy Salmon <=