Jump to content

Volutar

Members
  • Posts

    9
  • Joined

  • Last visited

Volutar's Achievements

Squaddie

Squaddie (1/5)

0

Reputation

  1. Volutar

    TFTD Steam

    TFTD version is using LOFTEMPS.DAT from Ufo defense, 3584 instead of 3648. Wrong distribution.
  2. This snippet is from "patrol" function, and executed when patrol node is reached in base defence mission. if (xc_BF_AI_Choose_XcomBase_Tile_at16x16() ) { if ( !xc_BF__AI_Firing(target_tile_x, target_tile_y, target_tile_z, 1) ) { xc_BF__AI_Moving(target_tile_x, target_tile_y, target_tile_z); if ( Global______AI_mode != 6 ) xc_BF__AI_Firing(target_tile_x, target_tile_y, target_tile_z, 1); } } else { v_Selected_UnitRef_addr->Routes2_ref = xc_BF__AI_Set_Patrol_Point(v_Selected_UnitPos_Idx); } So AI obviously tries to fire reachable xcom tile after getting to every node. If there are no xcom tiles in line of fire - it goes further.
  3. Actually no. "!a" means (a==0), so both these values must be 0 (and it must be <=30 move) to be skipped.
  4. A sort of, yes. That not quite right. After getting to destination point (field22>0 & basedefence) there's no patrolling happen. "Try to attack" function gets to work. Normaly it evaluates enemies in shooting range, but it also treats some of xcom tiles as enemies, so they start to shooting, or even grenading. It's a pity I never got aliens killing my base At least I cannot remember. The thing is.. You better test classic bases, not custom one. I'm not sure if nodelist with all these flags are legit. Game crash means it's not. movsx eax, di lea eax, [eax+eax*2] mov cl, a_Routes_DAT.route_field_16[eax*8]; <----- test cl, cl jnz short loc_401A7F To get 100% guarantee of these fields used or not - I have to make a memory break on them in debugger. Plus save of base defence mission (original, not custom) to test on. If you provide me with such save, I could make this debug run. -------------- Addition: if ( a_MisData_DAT_BattleType == bt_XCOM_BaseDefence ) { if ( !*(_BYTE *)(field15) && !*(_BYTE *)(field16) && v_BF_CurrentTurn <= 30 )// goto LABEL_36_NEXT_ROUTE; //skip this node } So you were right about 0x15&0x16 bytes. This snippet have 2 appearences in "find next patrol point" function. It mean both of these fields have to be 0 and it must be <=30 turn to get aliens attracted to these nodes. And nevertheless first snippet is there and it checks only field16. I may presume they made these 2 fields to keep every alien to his first chosen target, without switching between them. I wonder if aliens get to the next base block after finishing killing all XCOM tiles in first one...
  5. Have you tried to zero these bytes, and did it lead to alteration of routes? SpawnRankType (byte 20/0x14) used for "filtering" patrol routes. Some part (predefined) of each rank of UFO crew marked as "scouts" and patrol through "scout" nodes, not through their actual rank nodes. I haven't found any use of it. I could miss something. The only way to find this out is to change these values in routes.dat to something else, gather statistics of new routes, and compare it with original. Well, I can presume originally they did have some functons or parts of functions which were using it, but "commented" them out because of some... maybe bugs, or something else.
  6. According game code: if ( route1->Routes1_ref == route2 ) { if ( v_CurrentPlayingSide == osAlien ) a_Routes_DAT[route2].SpawnUnitType |= 0x10u; if ( a_MisData_DAT_BattleType == bt_XCOM_BaseDefence && a_Routes_DAT[route2].route_field_16 ) return; v_Selected_UnitRef_addr->Routes2_ref = xc_BF__AI_Set_Patrol_Point(v_Selected_UnitPos_Idx); route1 = v_Selected_UnitRef_addr; } This is the only fragment of game code which involves using of 0x16 field of Routes array. This is the part of function called from "patrol" mode processing. If you have trouble reading code, in human language it means "stop searching for another patrol nodes if it's the BaseDefence mission and field22>0". In short this field mean "flag of point of attraction in patrol mode in base defence mission". And I didn't found any use of field 0x15 in code. This is not empirical, it's just the game code analysis. So I don't have to proof this. If you collect statistics (hundreds of trials) of AI paths, you can find real tends and evidence of "using" of it. For the moment i'm tending to treat these "evidences" as stochastic events.
  7. Volutar

    UFO AI patch

    Panic is a side effect of instant revealing of ALL XCOM units on the map. Morale depends on how many of your solders been killed AND how many enemy units this exact unit sees (sort of a fear factor). Actually have no idea, because I was never aware of this nor read about. Are XCom units capable of shooting down through grav lift, or it's just a AI bug? See, AI theoretically could be enabled for XCOM units too, and all "line of fire" or "line of sight" algorighms work for Xcom/Civs/Aliens exactly the same way. It could be line of sight bug or line of fire, when you see enemy but cannot shoot... In both cases same restrictions (this gravlift block bug) applied to XCOM units too. After kind of "vacation" I've returned .
  8. Volutar

    UFO AI patch

    "AI sees all" after 20th turn meant to be a helper for "last alien" hunt. If you disable it, you'll probably get more lurkish aliens. I doubt people will like it . Though as a side-effect of this "all map revealing" is instant panic of alien units if there are <3 of them left... well it's another story.
  9. They are stored in EXE. Bullet trails are actually a strings, formed with particle images (3x3 pixels), drawn along fire path (with correct Z order and shade part).
×
  • Create New...