curiousdannii-testing / inform7-imported-bugs

0 stars 0 forks source link

[I7-1314] [Mantis 1350] After switching bodies, interacting with one's former self gets troublesome #770

Closed curiousdannii-testing closed 2 years ago

curiousdannii-testing commented 2 years ago

Reported by : DavidG

Description :

Suppose a game uses the default second-person narrative voice and the player has no name. If you switch bodies, "your former self" will appear in the game. As-is, your new self cannot interact with that "former self". If, however, the player was given a name, then interaction can occur.

Steps to reproduce :

Constant DEBUG;
Constant STORY "Selves: An investigation of switching bodies.^";
Include "parser.h";
Include "verblib.h";
Include "Grammar";

[ Initialise;
    location = theroom;
    player.narrative_voice = 3;
    player.short_name = "George";
    player.name = 'George';
    player.nameless = false;
];

Object theroom "The Room"
    with description "This is just a plain room like any other.",
    has light;

Object -> Box "box"
    with name 'box',
    description "It's a big wooden box with a lock.",
    with_key Key,
    has container openable enterable lockable;

Object -> Key "key"
    with name "key",
    description "It's an ordinary looking key.";

Object -> Hat "hat"
    with name 'hat',
    description "Just an ordinary hat.",
    has clothing;

Object -> Table "table"
    with name "table",
    capacity 2,
    has supporter;

Object -> -> Button "button"
    with name 'button',
    description "An unlabeled button.",
    before [;
      Push:
        if (player == Kitty)
            ChangePlayer(selfobj);
        else
            ChangePlayer(Kitty);
        "You feel strange and suddenly you realize you're in a different body.";
    ],
    has static;

Object -> Kitty "Kitty"
    with name "kitty" "cat",
    short_name "Kitty",
    description "Kitty is a cute kitty-cat.",
    narrative_voice 3,
    orders [;
    Take:   if (self ~= player) <>;
    Give:   if (self ~= player) <>;
    Drop:   if (self ~= player) <>;
    Go: if (self ~= player) <>;
    Open:   if (self ~= player) <>;
    Close:  if (self ~= player) <>;
    Enter:  if (self ~= player) <>;
    Wear:   if (self ~= player) <>;
    ],
    has female proper animate transparent;

Verb 'who'
    * 'am' 'i'  -> WhoAmI;

[WhoAmISub;
    "You are ", (string) player.short_name, ".";
];

Additional information :

imported from: [Mantis 1350] After switching bodies, interacting with one's former self gets troublesome
  • status: Closed
  • resolution: Resolved
  • resolved: 2022-04-07T04:57:28+10:00
  • imported: 2022/01/10
curiousdannii-testing commented 2 years ago

557058:4c095ffd-6d6f-47ce-9e73-77c613347b86:

Comment by jmcgrew :
Closing all resolved issues from 2014 and earlier.

curiousdannii-testing commented 2 years ago

557058:4c095ffd-6d6f-47ce-9e73-77c613347b86:

Comment by DavidG :
http://www.intfiction.org/forum/viewtopic.php?f=7&t=15419&p=77382

curiousdannii-testing commented 2 years ago

557058:4c095ffd-6d6f-47ce-9e73-77c613347b86:

Comment by DavidG :
This has been fixed. The fix involved allowing things like an anonymous PC in third-person voice. For instance, "The detective puts the crime report on the desk.". Instructions to the author on how to keep things straight has been added to the repo.

https://github.com/DavidGriffith/inform6lib/commit/87bb3f8b4e28cd2d8bd6f4ad1de3464ffaea5b0c

curiousdannii-testing commented 2 years ago

557058:4c095ffd-6d6f-47ce-9e73-77c613347b86:

Comment by DavidG :
Reopening this issue on account that the player still cannot interact with "your former self".

curiousdannii-testing commented 2 years ago

557058:4c095ffd-6d6f-47ce-9e73-77c613347b86:

Comment by DavidG :
https://github.com/DavidGriffith/inform6lib/commit/6ab5a59bc69eeb7587791895e9bb64d617d01c27