Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

Adventuron is attempting to get the wrong object

A topic by Garry Francis created Nov 03, 2019 Views: 157 Replies: 7
Viewing posts 1 to 8
Submitted

I have two tables in different rooms defined as follows:

coffee_table : scenery "a coffee table" start_at = "room04";

reading_table : scenery "a reading table" start_at = "room05";

I visited room05 first and tested the reading table. I then went to room04 and tested the coffee table, only to be surprised by this:

>GET TABLE
The reading table is not here.

What's going on here? Why is it trying to get a table in another room when there's a perfectly good table in this room?

Submitted

I've actually got a 3rd table defined as follows:

dining_table : scenery "a dining room table" start_at = "room07";

When I visited room07 and tested the dining room table, everything was fine. When I returned to room04, I got this:

>GET TABLE
The dining room table is not here.

I'm using examine_message (not shown in the code fragments) for the reading table and the dining room table, but I'm using a command handler for EXAMINE for the coffee table. Could this have an impact on GET TABLE?

Host (1 edit)

If it looks like a bug, and it smells like a bug, then it's probably a feature.

I'll see what I can do.

Host (1 edit)

I wonder if you could post some limited source code that only demonstrates this bug?

Submitted

start_at = room01

locations {
   room01 : location "You're in the living room." {
      on_command {
         : match "examine table" {
            : print "It's a coffee table.";
            : done;
         }
      }
   }
   room02 : location "You're in the library." {
   }
   room03 : location "You're in the dining room." {
   }
}

connections {
   from, direction, to = [
      room01, east, room02,
      room01, west, room03,
      ]
}

objects {
   coffee_table : scenery "a coffee table" start_at = "room01";
   reading_table : scenery "a reading table" start_at = "room02" examine_message = "It's a reading table.";
   dining_table : scenery "a dining room table" start_at = "room03" examine_message = "It's a dining room table.";
}

Submitted

Yep, definitely a bug.

I tried replacing all the EXAMINEs with examine_message. This made no difference.

I tried replacing all the EXAMINEs with on_command{} match statements in the rooms. This made no difference.

I tried putting all the EXAMINEs in on_command{}. This made no difference.

I tried replacing all the object IDs with table_01, table_02 and table_03. This made no difference.

I tried X TABLE then GET IT in each room. This made no difference.

I tried GET TABLE in each room. This made no difference.

If you try to GET TABLE in room02, then GET TABLE in room01, the rejection message refers to the table in room02.

If you try to GET TABLE in room03, then GET TABLE in room01, the rejection message refers to the table in room03.

If you try to GET TABLE in room02, then GET TABLE in room01, the rejection message refers to the table in room02.

Finally, I tried getting the table in room01 (normal rejection); visiting room02, returning to room01 and getting the table in room01 (couldn't find table in room02); visiting room03, returning to room01 and getting the table in room01 (couldn't find table in room03).

So, the error relates to the table in the most recently discovered room. It's got nothing to do with examining tables or getting tables in the other rooms. This must be related to the way Adventuron "learns" about objects as you discover them. Isn't there a setting somewhere to turn this off?

Host

I think I fixed this in today's release. Please confirm.

Submitted

Fixed with Beta 8e.