Leoreth
Reaction score
15,796

Profile posts Latest activity Postings Resources About

  • Er, I made an error in the post below. As it turns out, this was added by the Better AI folks, as testified here. They forgot to comment it, although I guess that makes sense since pretty much EVERYTHING in that file would have needed to be commented :lol:.

    Anyways: Important (and interesting) reading

    Which means that changing it is not as simple as we thought.... perhaps it might be better and just change the way the save file is written to/ read from? This would also allow us to create a common seed for all decisions in the DLL, a system that has been set up in python by Rhye but not in the DLL.

    And I realize now we are completely swerving off topic. But from reading it DOES appear we can use AI Strategies to target specific regions.
    Ooh! Important discovery!

    The way Firaxis added randomization to AI Strategies is by having a iNonsense integer generated depending on the x and y values of the capital city of the AI. This int in some way or another modifies every single strategy. The goal was to provide randomization but in RFC this is hardcoded, so..... it achieves exactly the opposite effect

    Perhaps this should be changed?
    Sure thing. The code is becoming quite dense now because of its repeated use of bitwise operators and pointers, two things I have but cursory knowledge about. I'll go read some about them I guess.

    No need to respond to this unless you have some suggestions....
    I'm aware of that, but, as I just realized, AI_attackCityLemmingMove() is called in CvUnitAI::AI_update(), which is called in...nowhere in the DLL. Meaning the .exe calls it. Meaning it probably won't call the overloaded method at all.
    Ok I found this function I somehow missed the first time: AI_attackCityLemmingMove

    Well in CvUnitAI.cpp, each UnitAI has one of these. Problem is that these are called from elsewhere in the DLL, so I don't see how we can pass a list from python through a switch statement to this function, because the switch statement is inside a different method. We'd have to add a new parameter to the method and readjust it to include this new parameter every time it is called throughout the DLL, and if the .exe ever calls it (don't know if it would), we'd be screwed. And it's a very icky solution.

    Or perhaps I'm missing something. Just let me know if that's the case.
    There's about a dozen places that UNIT_AI is located, for one. But none of them are their own method; rather, there's a bunch of switch statements for each UNITAI within other 'generic' methods like AI_PromotionValue and AI_BuildVAlue (to paraphrase). There's nowhere to pass it, is what I'm trying to say.
    Unless you want to hardcode targets for each civ. That might work. For example, Europeans aim for the New World civs, Mongolia for the Eurasia, Seljuks for Middle East civs, and so on and so forth.
    It would appear that there is no way to pass a list to a Unit AI, so your earlier plan for a UNIT_AI_CONQUEROR doesn't quite work.
    "You better should" would be better written as "so you should" or "you better had". Just for your information. :)
    I really wasn't trying to atagonise him there, but it seems that he doesn't even agree with many theologians.
    Incidentally it makes me exceedingly sad that you abandoned good old Sokka :(
    Leoreth,
    Been offline for a long time, scanning the forum. Did I see you gave DoC a massive overhaul? What are some of the changes, fixes, or additions? In case I can't find them in the long forum. ;-) I saw you increased Mongol power, added Indonesia? and have Babylon vassalized by Byzantium?
    Ha. Also the "barbarians killed the Roman Empire" myth. Or rather, half-truth.
    I don't want to waste my 22,000th post on that thread. But I'll be there as soon as I finish up an alternate history post I'm writing.
  • Loading…
  • Loading…
  • Loading…
  • Loading…
Top Bottom