It's because JJ2 does this:
Code:
static char maxPlayers = 0;
char c = getchar();
if (c >= '0' && c <= '9') {
maxPlayers = maxPlayers * 10; //loss of data since char is too small
maxPlayers += c - '0';
if (maxPlayers > 32) {
maxPlayers = 32;
}
}
When it should be doing something like this:
Code:
static char maxPlayers = 0;
char c = getchar();
if (c >= '0' && c <= '9') {
int tempMaxPlayers = maxPlayers * 10;
tempMaxPlayers += c - '0';
if (tempMaxPlayers > 32) {
tempMaxPlayers = 32;
}
maxPlayers = tempMaxPlayers;
}
|