git.shiar.nl
/
netris.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
configurable chat (say) key
[netris.git]
/
game.c
diff --git
a/game.c
b/game.c
index 9bd9f23bb7446a734473899f702e392c974dfd85..32c85db48ab9fe912b4baf283fec8ae974d3de70 100644
(file)
--- a/
game.c
+++ b/
game.c
@@
-52,12
+52,12
@@
static struct option options[] = {
enum {
KT_left, KT_right, KT_rotright, KT_rotleft, KT_drop, KT_down,
enum {
KT_left, KT_right, KT_rotright, KT_rotleft, KT_drop, KT_down,
- KT_faster, KT_pause, KT_redraw, KT_quit, KT_numKeys
+ KT_faster, KT_pause, KT_redraw, KT_
say, KT_
quit, KT_numKeys
};
static char *keyNames[KT_numKeys+1] = {
"Left", "Right", "RotRight", "RotLeft", "Drop", "Down",
};
static char *keyNames[KT_numKeys+1] = {
"Left", "Right", "RotRight", "RotLeft", "Drop", "Down",
- "Faster", "Pause", "Redraw", "Quit", NULL
+ "Faster", "Pause", "Redraw", "
Say", "
Quit", NULL
};
_Sets Sets = {7, 0, 1, 1, 1};
};
_Sets Sets = {7, 0, 1, 1, 1};
@@
-319,8
+319,10
@@
void OneGame(void)
{
char *p;
{
char *p;
- if (key == 13) {
- if (!(chatMode = !chatMode)) {
+ if (chatMode) {
+ if (key == 13) {
+ // enter text
+ chatMode = 0;
if (chatText[0]) {
Message("<\\%d%s\\7> %s",
Players[me].team > 7 ? 7 : Players[me].team,
if (chatText[0]) {
Message("<\\%d%s\\7> %s",
Players[me].team > 7 ? 7 : Players[me].team,
@@
-331,15
+333,12
@@
void OneGame(void)
} //say it
else Messagetype(27, -1, NULL); //escape
return;
} //say it
else Messagetype(27, -1, NULL); //escape
return;
- } //leave chat mode
- } //enter pressed (start/stop chat mode)
-
- if (chatMode) {
- if (key == 27) //escape
+ }
+ else if (key == 27) //escape
chatMode = 0;
else if (key == 127 && chatText) //backspace
chatText[strlen(chatText) - 1] = 0;
chatMode = 0;
else if (key == 127 && chatText) //backspace
chatText[strlen(chatText) - 1] = 0;
- else if (
key != 13 &&
strlen(chatText) < MSG_WIDTH-1) //text
+ else if (strlen(chatText) < MSG_WIDTH-1) //text
chatText[strlen(chatText)] = key;
Messagetype(key, strlen(chatText) - 1, chatText);
return;
chatText[strlen(chatText)] = key;
Messagetype(key, strlen(chatText) - 1, chatText);
return;
@@
-347,6
+346,15
@@
void OneGame(void)
if (!(p = strchr(keyTable, tolower(key)))) return;
key = p - keyTable;
if (!(p = strchr(keyTable, tolower(key)))) return;
key = p - keyTable;
+
+ // global actions (always possible, even if not playing)
+ switch (key) {
+ case KT_say:
+ chatMode = 1;
+ Messagetype(key, strlen(chatText) - 1, chatText);
+ break;
+ }
+
if (Players[me].alive <= 0 && key != KT_quit) return;
if (paused && key < KT_pause) return;
switch (key) {
if (Players[me].alive <= 0 && key != KT_quit) return;
if (paused && key < KT_pause) return;
switch (key) {
@@
-428,7
+436,6
@@
void OneGame(void)
switch(net.type) {
case NP_newPiece:
{
switch(net.type) {
case NP_newPiece:
{
- FreezePiece(net.uid);
memcpy(&Players[net.uid].nextShape, net.data,
sizeof(Players[0].nextShape));
StartNewPiece(net.uid, Players[net.uid].curShape);
memcpy(&Players[net.uid].nextShape, net.data,
sizeof(Players[0].nextShape));
StartNewPiece(net.uid, Players[net.uid].curShape);