Cube  Diff

Differences From Artifact [e35d803d58]:

To Artifact [7f736a9f83]:


1
2
3


4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
11
12



+
+







// clientgame.cpp: core game related stuff

#include "cube.h"

#include <memory>

int nextmode = 0; // nextmode becomes gamemode after next map load
VAR(gamemode, 1, 0, 0);

void
mode(int n)
{
227
228
229
230
231
232
233
234

235
236

237
238
239


240

241
242
243
244
245
246
247
248
249



250

251


252
253
254
255
256
257
258
229
230
231
232
233
234
235

236
237

238
239


240
241

242
243
244
245
246
247
248
249
250
251
252
253
254

255

256
257
258
259
260
261
262
263
264







-
+

-
+

-
-
+
+
-
+









+
+
+
-
+
-
+
+







			return;
		} // if we die in SP we try the same map again
		respawnself();
	}
}

int sleepwait = 0;
string sleepcmd;
static OFString *sleepcmd = nil;
void
sleepf(char *msec, char *cmd)
sleepf(OFString *msec, OFString *cmd)
{
	sleepwait = atoi(msec) + lastmillis;
	strcpy_s(sleepcmd, cmd);
	sleepwait = (int)msec.longLongValue + lastmillis;
	sleepcmd = cmd;
};
}
COMMANDN(sleep, sleepf, ARG_2STR)

void
updateworld(int millis) // main game update loop
{
	if (lastmillis) {
		curtime = millis - lastmillis;
		if (sleepwait && lastmillis > sleepwait) {
			sleepwait = 0;
			@autoreleasepool {
				std::unique_ptr<char> cmd(
				    strdup(sleepcmd.UTF8String));
			execute(sleepcmd);
				execute(cmd.get());
		};
			}
		}
		physicsframe();
		checkquad(curtime);
		if (m_arena)
			arenarespawn();
		moveprojectiles((float)curtime);
		demoplaybackstep();
		if (!demoplayback) {
504
505
506
507
508
509
510
511
512
513



514
515
516
517
518
519
520
510
511
512
513
514
515
516



517
518
519
520
521
522
523
524
525
526







-
-
-
+
+
+







	loopv(players) if (players[i]) players[i]->frags = 0;
	resetspawns();
	@autoreleasepool {
		clientmap = @(name);
	}
	if (editmode)
		toggleedit();
	setvar("gamespeed", 100);
	setvar("fog", 180);
	setvar("fogcolour", 0x8099B3);
	setvar(@"gamespeed", 100);
	setvar(@"fog", 180);
	setvar(@"fogcolour", 0x8099B3);
	showscores(false);
	intermission = false;
	framesinmap = 0;
	conoutf(@"game mode is %s", modestr(gamemode));
}

COMMANDN(map, changemap, ARG_1STR)