stratagus-cvs
[Top][All Lists]
Advanced

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

[Stratagus-CVS] stratagus/src clone/ccl.c clone/mainloop.c incl...


From: ludovic pollet
Subject: [Stratagus-CVS] stratagus/src clone/ccl.c clone/mainloop.c incl...
Date: Thu, 20 Nov 2003 08:48:05 -0500

CVSROOT:        /cvsroot/stratagus
Module name:    stratagus
Branch:         
Changes by:     ludovic pollet <address@hidden> 03/11/20 08:48:05

Modified files:
        src/clone      : ccl.c mainloop.c 
        src/include    : ui.h 
        src/ui         : ccl_ui.c interface.c 

Log message:
        Added set-group-key ccl function, to support groups with non qwerty 
keyboards

Patches:
Index: stratagus/src/clone/ccl.c
diff -u stratagus/src/clone/ccl.c:1.135 stratagus/src/clone/ccl.c:1.136
--- stratagus/src/clone/ccl.c:1.135     Wed Nov 19 22:21:33 2003
+++ stratagus/src/clone/ccl.c   Thu Nov 20 08:48:01 2003
@@ -26,7 +26,7 @@
 //      Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 //      02111-1307, USA.
 //
-//     $Id: ccl.c,v 1.135 2003/11/20 03:21:33 jsalmon3 Exp $
+//     $Id: ccl.c,v 1.136 2003/11/20 13:48:01 pludov Exp $
 
 //@{
 
@@ -2016,7 +2016,7 @@
 {
     FILE* fd;
     char buf[1024];
-
+    int i;
     //
     //     preferences1.ccl
     //     This file is loaded before stratagus.ccl
@@ -2037,9 +2037,20 @@
     }
 
     fprintf(fd, ";;; -----------------------------------------\n");
-    fprintf(fd, ";;; $Id: ccl.c,v 1.135 2003/11/20 03:21:33 jsalmon3 Exp $\n");
+    fprintf(fd, ";;; $Id: ccl.c,v 1.136 2003/11/20 13:48:01 pludov Exp $\n");
 
     fprintf(fd, "(set-video-resolution! %d %d)\n", VideoWidth, VideoHeight);
+    fprintf(fd, "(set-group-keys \"");
+    i = 0;
+    while (ui_group_keys[i]) {
+       if (ui_group_keys[i]!='"') {
+           fprintf(fd, "%c", ui_group_keys[i]);
+       } else {
+           fprintf(fd, "\"");
+       }
+       i++;
+    }
+    fprintf(fd, "\"\n");
     
     fclose(fd);
 #elif defined(USE_LUA)
@@ -2057,7 +2068,7 @@
     }
 
     fprintf(fd, "--[[\n");
-    fprintf(fd, "      $Id: ccl.c,v 1.135 2003/11/20 03:21:33 jsalmon3 Exp 
$\n");
+    fprintf(fd, "      $Id: ccl.c,v 1.136 2003/11/20 13:48:01 pludov Exp $\n");
     fprintf(fd, "]]\n");
 
     fprintf(fd, "SetVideoResolution(%d, %d)\n", VideoWidth, VideoHeight);
@@ -2084,7 +2095,7 @@
     }
 
     fprintf(fd, ";;; -----------------------------------------\n");
-    fprintf(fd, ";;; $Id: ccl.c,v 1.135 2003/11/20 03:21:33 jsalmon3 Exp $\n");
+    fprintf(fd, ";;; $Id: ccl.c,v 1.136 2003/11/20 13:48:01 pludov Exp $\n");
 
     // Global options
     if (OriginalFogOfWar) {
@@ -2165,7 +2176,7 @@
     }
 
     fprintf(fd, "--[[\n");
-    fprintf(fd, "      $Id: ccl.c,v 1.135 2003/11/20 03:21:33 jsalmon3 Exp 
$\n");
+    fprintf(fd, "      $Id: ccl.c,v 1.136 2003/11/20 13:48:01 pludov Exp $\n");
     fprintf(fd, "]]\n");
 
     fprintf(fd, "SetVideoFullscreen(%s)\n", VideoFullScreen ? "true" : 
"false");
@@ -2225,7 +2236,7 @@
     extern SCM oblistvar;
 
     CLprintf(file, "\n;;; -----------------------------------------\n");
-    CLprintf(file, ";;; MODULE: CCL $Id: ccl.c,v 1.135 2003/11/20 03:21:33 
jsalmon3 Exp $\n\n");
+    CLprintf(file, ";;; MODULE: CCL $Id: ccl.c,v 1.136 2003/11/20 13:48:01 
pludov Exp $\n\n");
 
     for (list = oblistvar; gh_list_p(list); list = gh_cdr(list)) {
        SCM sym;
Index: stratagus/src/clone/mainloop.c
diff -u stratagus/src/clone/mainloop.c:1.161 
stratagus/src/clone/mainloop.c:1.162
--- stratagus/src/clone/mainloop.c:1.161        Wed Nov 19 21:22:29 2003
+++ stratagus/src/clone/mainloop.c      Thu Nov 20 08:48:01 2003
@@ -26,7 +26,7 @@
 //      Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 //      02111-1307, USA.
 //
-//     $Id: mainloop.c,v 1.161 2003/11/20 02:22:29 pludov Exp $
+//     $Id: mainloop.c,v 1.162 2003/11/20 13:48:01 pludov Exp $
 
 //@{
 
@@ -968,7 +968,7 @@
            EndMenu();
        }
     }
-
+    
     //
     // Game over
     //
Index: stratagus/src/include/ui.h
diff -u stratagus/src/include/ui.h:1.78 stratagus/src/include/ui.h:1.79
--- stratagus/src/include/ui.h:1.78     Mon Nov 17 14:14:33 2003
+++ stratagus/src/include/ui.h  Thu Nov 20 08:48:03 2003
@@ -26,7 +26,7 @@
 //      Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 //      02111-1307, USA.
 //
-//     $Id: ui.h,v 1.78 2003/11/17 19:14:33 nehalmistry Exp $
+//     $Id: ui.h,v 1.79 2003/11/20 13:48:03 pludov Exp $
 
 #ifndef __UI_H__
 #define __UI_H__
@@ -351,6 +351,8 @@
 
 extern int SpeedKeyScroll;             /// Keyboard Scrolling Speed, in Frames
 extern int SpeedMouseScroll;           /// Mouse Scrolling Speed, in Frames
+
+extern char* ui_group_keys;            /// up to 11 keys used for group 
selection
 
 // only exported to save them
 
Index: stratagus/src/ui/ccl_ui.c
diff -u stratagus/src/ui/ccl_ui.c:1.155 stratagus/src/ui/ccl_ui.c:1.156
--- stratagus/src/ui/ccl_ui.c:1.155     Thu Nov 20 02:59:44 2003
+++ stratagus/src/ui/ccl_ui.c   Thu Nov 20 08:48:03 2003
@@ -26,7 +26,7 @@
 //      Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 //      02111-1307, USA.
 //
-//     $Id: ccl_ui.c,v 1.155 2003/11/20 07:59:44 nehalmistry Exp $
+//     $Id: ccl_ui.c,v 1.156 2003/11/20 13:48:03 pludov Exp $
 
 //@{
 
@@ -8025,6 +8025,14 @@
 }
 #endif
 
+#if defined(USE_GUILE) || defined(USE_SIOD)
+local SCM CclSetGroupKeys(SCM list)
+{
+    ui_group_keys = gh_scm2newstr(list, NULL);
+    return SCM_UNSPECIFIED;
+}
+#endif
+
 /**
 **     Add a keystroke help
 **
@@ -8190,6 +8198,7 @@
     //
     gh_new_procedure0_0("reset-keystroke-help", CclResetKeystrokeHelp);
     gh_new_procedureN("add-keystroke-help", CclAddKeystrokeHelp);
+    gh_new_procedure1_0("set-group-keys", CclSetGroupKeys);
 #elif defined(USE_LUA)
     lua_register(Lua, "AddMessage", CclAddMessage);
 
Index: stratagus/src/ui/interface.c
diff -u stratagus/src/ui/interface.c:1.139 stratagus/src/ui/interface.c:1.140
--- stratagus/src/ui/interface.c:1.139  Tue Oct  7 08:03:41 2003
+++ stratagus/src/ui/interface.c        Thu Nov 20 08:48:05 2003
@@ -26,7 +26,7 @@
 //      Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 //      02111-1307, USA.
 //
-//     $Id: interface.c,v 1.139 2003/10/07 12:03:41 martinxyz Exp $
+//     $Id: interface.c,v 1.140 2003/11/20 13:48:05 pludov Exp $
 
 //@{
 
@@ -78,6 +78,7 @@
 local int InputIndex;          /// current index into input
 local char InputStatusLine[99];        /// Last input status line
 local int SpeedCheat;          /// Speed up cheat
+local char* ui_group_keys="0123456789`";/// Up to 11 keys, last unselect. 
Default for qwerty
 global char GameRunning;       /// Current running state
 global char GamePaused;                /// Current pause state
 global char GameObserve;       /// Observe mode
@@ -660,6 +661,16 @@
 */
 local int CommandKey(int key)
 {
+    char * ptr;
+    
+    // FIXME: don't handle unicode well. Should work on all latin keyboard.
+    if ((ptr = strchr(ui_group_keys,key))) {
+       key = '0' + ptr - ui_group_keys;
+       if (key > '9') {
+           key = '`';
+       }
+    }
+    
     switch (key) {
        case '\r':                      // Return enters chat/input mode.
            UiBeginInput();




reply via email to

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