338 |
public: |
public: |
339 |
Abyss() : Floor("fl-abyss", 2.0, 1) {} |
Abyss() : Floor("fl-abyss", 2.0, 1) {} |
340 |
private: |
private: |
341 |
void actor_enter(Actor* a) {SendMessage(a, "fall");} |
// void actor_enter(Actor* a) {SendMessage(a, "fall");} |
342 |
void actor_contact (Actor* a) {SendMessage(a, "fall");} |
void actor_contact (Actor* a) {SendMessage(a, "fall");} |
343 |
}; |
}; |
344 |
} |
} |
353 |
public: |
public: |
354 |
Water() : Floor("fl-water", 5, 1) {} |
Water() : Floor("fl-water", 5, 1) {} |
355 |
private: |
private: |
356 |
void actor_enter(Actor *a) {SendMessage(a, "drown");} |
// void actor_enter(Actor *a) {SendMessage(a, "drown");} |
357 |
void actor_contact(Actor *a) {SendMessage(a, "drown");} |
void actor_contact(Actor *a) {SendMessage(a, "drown");} |
358 |
}; |
}; |
359 |
} |
} |
368 |
public: |
public: |
369 |
Swamp() : Floor("fl-swamp", 13, 1.0) {} |
Swamp() : Floor("fl-swamp", 13, 1.0) {} |
370 |
private: |
private: |
371 |
void actor_enter(Actor *a) { SendMessage(a, "sink"); } |
// void actor_enter(Actor *a) { SendMessage(a, "sink"); } |
372 |
void actor_contact(Actor *a) { SendMessage(a, "sink"); } |
void actor_contact(Actor *a) { SendMessage(a, "sink"); } |
373 |
void actor_leave(Actor *a) { |
void actor_leave(Actor *a) { |
374 |
Floor *new_floor = GetFloor(GridPos(a->get_pos())); |
Floor *new_floor = GetFloor(GridPos(a->get_pos())); |
555 |
return type[0]; |
return type[0]; |
556 |
} |
} |
557 |
|
|
558 |
void actor_enter(Actor *); |
// void actor_enter(Actor *); |
559 |
void actor_contact (Actor* a) {if (state!=CLOSED) SendMessage(a, "fall");} |
void actor_contact (Actor* a) {if (state!=CLOSED) SendMessage(a, "fall");} |
560 |
void message(const string &m, const Value &); |
void message(const string &m, const Value &); |
561 |
void init_model(); |
void init_model(); |
591 |
change_state(OPENING); |
change_state(OPENING); |
592 |
else if (m=="close") |
else if (m=="close") |
593 |
switch (state) { |
switch (state) { |
594 |
case OPEN: |
case OPEN: |
595 |
case OPENING: |
case OPENING: |
596 |
case CLOSING_BYSTONE: |
case CLOSING_BYSTONE: |
597 |
change_state(CLOSING); |
change_state(CLOSING); |
598 |
break; |
break; |
599 |
case CLOSED_BYSTONE: |
case CLOSED_BYSTONE: |
600 |
change_state(CLOSED); |
change_state(CLOSED); |
601 |
break; |
break; |
602 |
case CLOSED: |
case CLOSED: |
603 |
case CLOSING: |
case CLOSING: |
604 |
break; // already closed |
break; // already closed |
605 |
|
|
606 |
} |
} |
607 |
else if (m=="openclose" || m=="signal") |
else if (m=="openclose" || m=="signal") |
608 |
switch (state) { |
switch (state) { |
609 |
case OPEN: |
case OPEN: |
610 |
case OPENING: |
case OPENING: |
611 |
case CLOSING_BYSTONE: |
case CLOSING_BYSTONE: |
612 |
change_state(CLOSING); |
change_state(CLOSING); |
613 |
break; |
break; |
614 |
case CLOSED_BYSTONE: |
case CLOSED_BYSTONE: |
615 |
change_state(CLOSED); |
change_state(CLOSED); |
616 |
break; |
break; |
617 |
case CLOSED: |
case CLOSED: |
618 |
case CLOSING: |
case CLOSING: |
619 |
change_state(OPENING); |
change_state(OPENING); |
620 |
break; |
break; |
621 |
} |
} |
622 |
} |
} |
623 |
|
|
624 |
void Bridge::actor_enter(Actor *a) |
// void Bridge::actor_enter(Actor *a) |
625 |
{ |
// { |
626 |
if (state != CLOSED) |
// if (state != CLOSED) |
627 |
SendMessage(a, "fall"); |
// SendMessage(a, "fall"); |
628 |
} |
// } |
629 |
|
|
630 |
|
|
631 |
void Bridge::init_model() |
void Bridge::init_model() |