[TOT] Five random questions

Knighttime

Prince
Joined
Sep 20, 2002
Messages
380
I've come up with 5 random questions about game behavior or customizations in Civ2:ToT, and I'm hoping that someone here has knowledge that they're willing to share, or can point me to someplace where answers have already been documented.

#1. The Test of Time Advance Slot Properties says that tech 46, Map Making, allows civilizations to exchange maps. But when I start a new game and none of the tribes have Map Making, and I send an emissary to any tribe, under "Have a proposal to make..." the option of "Ask to share world maps." is always available and works normally. The AI typically refuses to share, but I see no indication that having Map Making (or not having it) makes any difference. Is the Advance Slot Properties documentation simply incorrect?

#2. I don't usually build the Great Library, because I'd prefer to be first in the tech race rather than third or lower (and only in those positions would the GL really benefit me). But I built it in a recent game when I was playing at Deity level, and was surprised by the way it worked. I expected that at the point in time it was built, I would immediately receive any techs that were already known by two or more tribes, and then I would continue to receive a new tech going forward whenever that condition was met.

But it turns out that the first of those did not happen: I didn't receive any immediate techs at all, even though there were multiple that were known by at least two other tribes. I did learn new techs going forward, though, as AI tribes researched them. But there were actually a couple of techs that every tribe except me already knew at the time I built the Library, so they were never researched afterwards, and I never caught up on this "backlog". I had to research those techs on my own in order to get them. Is this behavior well-known to others and I just never realized it? or is something bizarre going on here?

#3. How does the minimap in the corner of the screen choose the color to show for each terrain type? Is there a specific pixel in the Terrain1.bmp image for that terrain which is used? Or does it do some sort of average across the set of all pixels used for that terrain type on the main map? I tried changing the four center pixels only to a wildly different shade, but this didn't seem to have any effect.

#4. After you launch your spaceship, it shows an image of it "sailing" across the stars -- really the spaceship image is fixed in place, and there is a scrolling background which is black with white dots. How is that background generated? Within ss.dll (which contains all of the other spaceship images), 498.gif and 499.gif are fixed images with starry backgrounds, but changing both of those images does not affect this behavior. Within civ2art.dll, 2000.gif and 30000.gif are both "starry sky" images (black images with white dots) but editing these also didn't seem to make a difference to the scrolling spaceship background. Does anyone know if it's possible to customize this and how to do so?

#5. I'm struggling to control the movement of Barbarian units with Lua events (using TOTPP). Because they often seem to wander about aimlessly instead of conducting coordinated attacks, I was experimenting with finding Barbarian units and giving them a GoTo order for a nearby (non-barbarian) city. But this seems to have no effect at all on their behavior. It's not even like they start heading in the right direction but veer off after a couple turns; even immediately after being given the correct order and destination, they will sometimes head in the exact opposite direction.

I know there are quite a few scenarios out there that use the 'MoveUnit' command in the macro language, and successfully as far as I know. Did this macro command work for Barbarians though? or have they always "played by their own rules" and failed to follow instructions? If this did work, does that mean there's something about doing this with Lua that isn't working? It seems the correct instructions would be:
Code:
unit.order = 0x0C
unit.gotoTile = city.location
I'm basing the order value on the note here, which says that 0x0B was the Go To order in older versions of Civ2, but in Test of Time it is now 0x0C.

Thanks in advance to anyone who can help out!
 
#1. The Test of Time Advance Slot Properties says that tech 46, Map Making, allows civilizations to exchange maps. But when I start a new game and none of the tribes have Map Making, and I send an emissary to any tribe, under "Have a proposal to make..." the option of "Ask to share world maps." is always available and works normally. The AI typically refuses to share, but I see no indication that having Map Making (or not having it) makes any difference. Is the Advance Slot Properties documentation simply incorrect?

In Classic, both civs definitely need map making in order to trade maps. Maybe they removed this restriction in Test of Time, and no one realized there was a difference in Test of Time. Perhaps they wanted civs with different tech trees to be able to trade maps, or something. In Classic, you can trade for government technologies even when government switching is prohibited, but in MGE you can't. That was something I hadn't known until a couple years ago when it came up in a discussion about the WWII scenario that came with the original game. So, such changes to game mechanics have happened and not been noticed.

A couple of 'just in case' suggestions: test outside of cheat mode and test with the AI hostility patch off.

#2. I don't usually build the Great Library, because I'd prefer to be first in the tech race rather than third or lower (and only in those positions would the GL really benefit me). But I built it in a recent game when I was playing at Deity level, and was surprised by the way it worked. I expected that at the point in time it was built, I would immediately receive any techs that were already known by two or more tribes, and then I would continue to receive a new tech going forward whenever that condition was met.

As I recall, what you describe is how the Great Library has always worked, though I seldom built the GL when I was playing the regular game. So, what you are describing is not bizarre as far as I am concerned. If you want the other functionality for a scenario, that should be relatively easy to achieve with an on production Lua event.

#5. I'm struggling to control the movement of Barbarian units with Lua events (using TOTPP). Because they often seem to wander about aimlessly instead of conducting coordinated attacks, I was experimenting with finding Barbarian units and giving them a GoTo order for a nearby (non-barbarian) city. But this seems to have no effect at all on their behavior. It's not even like they start heading in the right direction but veer off after a couple turns; even immediately after being given the correct order and destination, they will sometimes head in the exact opposite direction.

I know there are quite a few scenarios out there that use the 'MoveUnit' command in the macro language, and successfully as far as I know. Did this macro command work for Barbarians though? or have they always "played by their own rules" and failed to follow instructions? If this did work, does that mean there's something about doing this with Lua that isn't working? It seems the correct instructions would be:
Code:
unit.order = 0x0C
unit.gotoTile = city.location
I'm basing the order value on the note here, which says that 0x0B was the Go To order in older versions of Civ2, but in Test of Time it is now 0x0C.

Thanks in advance to anyone who can help out!

Setting unit.gotoTile will automatically change the unit.order, so you don't have to do it yourself.

Here's a quote from lesson 5 of Get Started With Lua, where I remembered giving GOTO orders to barb units. Turned out it was a trireme, and it only sort of worked.

Issuing Move Unit Commands
Issuing a move unit command to a single unit is relatively simple. All you have to do is set unit.gotoTile to the desired destination (as a tile object). The corresponding unit.order is 12, but it is unnecessary to set this when issuing a Move Unit command.

We can try this with the barbarian trireme event we just made. If we don't give any order to the unit, it will sail towards Rome. Instead, however, we can make it sail towards Caralis instead.

First, comment out the "blocker unit" code we made in an earlier lesson, so that we don't have barbarian bombers being created and removed.

Next, add the following line after the trireme is created (we won't worry about parameters, etc. for this one)

Code:
 newTrireme.gotoTile=civ.getTile(37,43,0)

This code successfully diverts the barbarian trireme away from Rome, but it unloads as soon as it is adjacent to shore. This is probably due to the way barbarian units are programmed.

Based on this, it would appear that barbarian units do, indeed, have programming that will sometimes override goto orders. Barb units do move differently than other AI units when not under event influence. But my impression above was from playing around with the game to give event examples, not a result of specifically investigating barbarian activities.

You could try an on activation trigger for barb units, and see if you can give it a goto order then that it will follow. I don't have high hopes, however, since when testing goto orders for units adjacent to units from a different tribe, the 'near enemy, so clear goto order' process happens after onActivation.

If you really want to get the barbs moving as you want, you can teleport and expend movement.
 
In Classic, both civs definitely need map making in order to trade maps. Maybe they removed this restriction in Test of Time, and no one realized there was a difference in Test of Time. Perhaps they wanted civs with different tech trees to be able to trade maps, or something. In Classic, you can trade for government technologies even when government switching is prohibited, but in MGE you can't. That was something I hadn't known until a couple years ago when it came up in a discussion about the WWII scenario that came with the original game. So, such changes to game mechanics have happened and not been noticed.

A couple of 'just in case' suggestions: test outside of cheat mode and test with the AI hostility patch off.
The point about different tech trees makes sense, as a logical reason why they would have removed this restriction. I did test outside of cheat mode and that didn't matter -- actually I noticed it first without cheat mode on, and then enabled it to review everyone's techs and test again. As far as the AI hostility patch, well, I don't really want to play with that turned off, so even if by chance that does affect map trading, too bad!

As I recall, what you describe is how the Great Library has always worked, though I seldom built the GL when I was playing the regular game. So, what you are describing is not bizarre as far as I am concerned. If you want the other functionality for a scenario, that should be relatively easy to achieve with an on production Lua event.
Good idea, I think I will write an event for that.

Setting unit.gotoTile will automatically change the unit.order, so you don't have to do it yourself.

Here's a quote from lesson 5 of Get Started With Lua, where I remembered giving GOTO orders to barb units. Turned out it was a trireme, and it only sort of worked.
...
Based on this, it would appear that barbarian units do, indeed, have programming that will sometimes override goto orders. Barb units do move differently than other AI units when not under event influence. But my impression above was from playing around with the game to give event examples, not a result of specifically investigating barbarian activities.

You could try an on activation trigger for barb units, and see if you can give it a goto order then that it will follow. I don't have high hopes, however, since when testing goto orders for units adjacent to units from a different tribe, the 'near enemy, so clear goto order' process happens after onActivation.

If you really want to get the barbs moving as you want, you can teleport and expend movement.
Yeah, I was already giving them the goTo order within the onActivateUnit() trigger. I guess I'll try to put something together that uses civ.teleportUnit() and see how it goes.

Thanks for your responses! If anyone else has thoughts, esp. about #3 and #4, feel free to speak up.
 
Back
Top Bottom