… | |
… | |
147 | new_draw_info (NDI_UNIQUE, 0, this, "The exit is closed"); |
147 | new_draw_info (NDI_UNIQUE, 0, this, "The exit is closed"); |
148 | return; |
148 | return; |
149 | } |
149 | } |
150 | } |
150 | } |
151 | |
151 | |
152 | if (map && map != newmap) |
152 | if (contr && map != newmap && map) |
153 | if (INVOKE_MAP (LEAVE, map, ARG_PLAYER (contr))) |
153 | if (INVOKE_MAP (LEAVE, map, ARG_PLAYER (contr))) |
154 | return; |
154 | return; |
155 | |
155 | |
156 | /* If it is a player login, he has yet to be inserted anyplace. |
156 | /* If it is a player login, he has yet to be inserted anyplace. |
157 | * otherwise, we need to deal with removing the player here. |
157 | * otherwise, we need to deal with removing the player here. |
… | |
… | |
185 | else |
185 | else |
186 | /* not much we can do in this case. */ |
186 | /* not much we can do in this case. */ |
187 | LOG (llevInfo, "enter_map: Could not find free spot for player - will dump on top of object (%s: %d, %d)\n", &newmap->path, x, y); |
187 | LOG (llevInfo, "enter_map: Could not find free spot for player - will dump on top of object (%s: %d, %d)\n", &newmap->path, x, y); |
188 | } |
188 | } |
189 | |
189 | |
190 | if (map != newmap && contr) |
190 | if (contr && map != newmap) |
191 | { |
191 | { |
192 | if (INVOKE_PLAYER (MAP_CHANGE, contr, ARG_MAP (newmap), ARG_INT (x), ARG_INT (y))) |
192 | if (INVOKE_PLAYER (MAP_CHANGE, contr, ARG_MAP (newmap), ARG_INT (x), ARG_INT (y))) |
193 | return; |
193 | return; |
194 | |
194 | |
195 | if (INVOKE_MAP (ENTER, newmap, ARG_PLAYER (contr), ARG_INT (x), ARG_INT (y))) |
195 | if (INVOKE_MAP (ENTER, newmap, ARG_PLAYER (contr), ARG_INT (x), ARG_INT (y))) |