- int i,x,y;
- BOOL emulate_bd = TRUE; /* unless non-BOULDERDASH elements found */
- BOOL emulate_sb = TRUE; /* unless non-SOKOBAN elements found */
-
- Dynamite = Score = 0;
- Gems = level.edelsteine;
- SokobanFields = Lights = Friends = 0;
- DynaBombCount = DynaBombSize = DynaBombsLeft = 0;
- DynaBombXL = FALSE;
- Key[0] = Key[1] = Key[2] = Key[3] = FALSE;
+ int i,j, x,y;
+ boolean emulate_bd = TRUE; /* unless non-BOULDERDASH elements found */
+ boolean emulate_sb = TRUE; /* unless non-SOKOBAN elements found */
+
+ /* don't play tapes over network */
+ network_playing = (options.network && !tape.playing);
+
+ for(i=0; i<MAX_PLAYERS; i++)
+ {
+ struct PlayerInfo *player = &stored_player[i];
+
+ player->index_nr = i;
+ player->element_nr = EL_SPIELER1 + i;
+
+ player->present = FALSE;
+ player->active = FALSE;
+
+ player->action = 0;
+ player->effective_action = 0;
+
+ player->score = 0;
+ player->gems_still_needed = level.edelsteine;
+ player->sokobanfields_still_needed = 0;
+ player->lights_still_needed = 0;
+ player->friends_still_needed = 0;
+
+ for(j=0; j<4; j++)
+ player->key[j] = FALSE;
+
+ player->dynamite = 0;
+ player->dynabomb_count = 0;
+ player->dynabomb_size = 0;
+ player->dynabombs_left = 0;
+ player->dynabomb_xl = FALSE;
+
+ player->MovDir = MV_NO_MOVING;
+ player->MovPos = 0;
+ player->Pushing = FALSE;
+ player->GfxPos = 0;
+ player->Frame = 0;
+
+ player->actual_frame_counter = 0;
+
+ player->frame_reset_delay = 0;
+
+ player->push_delay = 0;
+ player->push_delay_value = 5;
+
+ player->move_delay = 0;
+ player->last_move_dir = MV_NO_MOVING;
+
+ player->snapped = FALSE;
+
+ player->gone = FALSE;
+
+ player->last_jx = player->last_jy = 0;
+ player->jx = player->jy = 0;
+
+ DigField(player, 0,0,0,0,DF_NO_PUSH);
+ SnapField(player, 0,0);
+
+ player->LevelSolved = FALSE;
+ player->GameOver = FALSE;
+ }
+
+ network_player_action_received = FALSE;
+
+ /* initial null action */
+ if (network_playing)
+ SendToServer_MovePlayer(MV_NO_MOVING);
+
+ ZX = ZY = -1;
+