Exemplo n.º 1
0
RECEIVE(DROP, id, msg, reliable)
{
	ObjectHandle item = Object::construct((string) msg[1]);
	if (!item) return;
	item->unserialize(msg[1]);
	game.world->temporary.push_back(item);
}
Exemplo n.º 2
0
RECEIVE(BUILD, id, msg, reliable)
{
	if (!reliable) return;
	GridPoint g = ToGridPoint(msg[1]);
	if (!g.isValid()) return;
	ObjectHandle structure = Object::construct((string) msg[2]);
	if (!structure) return;
	structure->unserialize(msg[2]);
	game.world->terrain->structures[g] = structure;
	TO(Structure,structure)->updateTextures();
}
Exemplo n.º 3
0
RECEIVE(ITEMINFO, id, msg, reliable)
{
	if (!reliable) return;
	game.world->temporary.clear();
	for (size_t i = 1; i < msg.size(); ++i)
	{
		ObjectHandle item = Object::construct((string) msg[i]);
		if (!item) continue;
		item->unserialize(msg[i]);
		game.world->temporary.push_back(item);
	}
}
Exemplo n.º 4
0
RECEIVE(PLAYERINFO, id, msg, reliable)
{
	if (!reliable) return;
	for (size_t i = 1; i < msg.size(); i += 2)
	{
		ObjectHandle player = Player();
		player->unserialize((string) msg[i+1]);
		Player *p = TO(Player,player);
		Player::Id pid = p->id;
		game.topId = MAX(game.topId,pid) + 1;
		game.root->children.insert(player);
		game.players[pid] = player;
		nodes[(long) msg[i]] = pid;
		p->updateTextures();
	}
}
Exemplo n.º 5
0
RECEIVE(STRUCTINFO, id, msg, reliable)
{
	if (!reliable) return;
	
	Terrain *t = TO(Terrain,game.world->terrain);
	t->structures.clear();

	for (size_t i = 1; i < msg.size(); i += 2)
	{
		GridPoint g = ToGridPoint(msg[i]);
		if (!g.isValid()) continue;
		ObjectHandle structure = Object::construct((string) msg[i+1]);
		if (!structure) continue;
		structure->unserialize(msg[i+1]);
		t->structures[g] = structure;
		TO(Structure,structure)->updateTextures();
	}
}
Exemplo n.º 6
0
RECEIVE(FIRE, id, msg, reliable)
{
	ObjectHandle laser = LaserBeam();
	laser->unserialize(msg[1]);
	game.world->addLaserBeam(laser);
}