+ monster->hitpoints--;
+ if (0 == monster->hitpoints) {
+ update_log (world, "\nYou kill the monster.");
+ if (world->monster == monster)
+ world->monster = world->monster->next;
+ else {
+ struct Monster * m_prev;
+ for (m_prev = world->monster; m_prev->next != monster; m_prev = m_prev->next);
+ m_prev->next = monster->next; }
+ free(monster); }