+ uint8_t id;
+ static struct Thing * t = NULL;
+ if (t && ( parse_thing_type(tok0, tok1, t)
+ || parse_thing_command(tok0, tok1, t)
+ || parse_val(tok0, tok1, s[CMD_ARGUMENT], '8', (char *)&t->arg)
+ || parse_val(tok0, tok1, s[CMD_PROGRESS],'8',(char *)&t->progress)
+
+ || parse_val(tok0, tok1, s[CMD_LIFEPOINTS],'8',
+ (char *) &t->lifepoints)
+ || parse_position(tok0, tok1, t)
+ || parse_carry(tok0, tok1, t)));
+ else if (parse_val(tok0, tok1, s[CMD_THING], '8', (char *) &id))
+ {
+ t = get_thing(world.things, id, 1);
+ if (!t)
+ {
+ t = add_thing(id, 0, 0);
+ set_cleanup_flag(CLEANUP_THINGS);
+ t->fov_map= do_fov && t->lifepoints ? build_fov_map(t) : t->fov_map;
+ }
+ }
+ else
+ {
+ return 0;
+ }
+ return 1;
+}
+
+
+
+static uint8_t parse_player_command(char * tok0, char * tok1)
+{
+ struct Thing * player = get_player();
+ if ( parse_val(tok0, tok1, s[CMD_WAIT], '8', (char *) &player->arg)
+ || parse_val(tok0, tok1, s[CMD_MOVE], '8', (char *) &player->arg)
+ || parse_val(tok0, tok1, s[CMD_PICKUP], '8', (char *) &player->arg)
+ || parse_val(tok0, tok1, s[CMD_DROP], '8', (char *) &player->arg)
+ || parse_val(tok0, tok1, s[CMD_USE], '8', (char *) &player->arg))