Author Topic: OXCE (OpenXcom Extended) main thread  (Read 292320 times)

Offline BlackStaff

  • Colonel
  • ****
  • Posts: 319
    • View Profile
Re: OXCE (OpenXcom Extended) main thread
« Reply #945 on: January 21, 2022, 08:04:20 pm »
I didn't understand anything but thanks for answering!  :)
It's ok because I just found a solution!
All these problems come from the fact that the "modded" objects listed use "stock" sounds in the base game!
So I added sounds I found in various Mods and modified the rul files concerned.
And for TFTD I also put "meleeHitSound" instead of "meleeSound"!

Online Meridian

  • Global Moderator
  • Commander
  • ***
  • Posts: 7726
    • View Profile
Re: OXCE (OpenXcom Extended) main thread
« Reply #946 on: January 21, 2022, 08:19:45 pm »
In both cases, the "extraSounds.rul" file does not refer to these indexes (76 or 1076 - 86 or 1086).

That's the issue.
The mods are using sound indexes, which don't exist.
Either the numbers are wrong (typos), or the extraSounds.rul definitions were forgotten, or deleted.

Or in different words, the game is telling you "Sounds not found."

Offline Ethereal

  • Commander
  • *****
  • Posts: 556
    • View Profile
Re: OXCE (OpenXcom Extended) main thread
« Reply #947 on: January 21, 2022, 08:41:37 pm »
Thanks for the update. There is only one oddity:

Code: [Select]
[21-01-2022_18-54-25] [INFO] Supressed Error for 'STR_BIODRONE_TERRORIST': This unit has a corresponding item to recover, but still isn't recoverable. Reason: (the unit is marked with 'capturable: false'). Consider marking the unit with 'liveAlien: ""'.
I don’t understand what this could be and whether it should be corrected, since BIODRONE, like all robots, is immune to any form of telepathy and stunning, that is, it is impossible to capture it.

Offline Yankes

  • Moderator
  • Commander
  • ***
  • Posts: 2841
    • View Profile
Re: OXCE (OpenXcom Extended) main thread
« Reply #948 on: January 21, 2022, 10:48:34 pm »
Thanks for the update. There is only one oddity:

Code: [Select]
[21-01-2022_18-54-25] [INFO] Supressed Error for 'STR_BIODRONE_TERRORIST': This unit has a corresponding item to recover, but still isn't recoverable. Reason: (the unit is marked with 'capturable: false'). Consider marking the unit with 'liveAlien: ""'.
I don’t understand what this could be and whether it should be corrected, since BIODRONE, like all robots, is immune to any form of telepathy and stunning, that is, it is impossible to capture it.

Problem is there contradiction, there is `liveAlien:` (default value)  but you can't recover it because of `capturable: false`, if your goal is to make this unit impossible to capture then its mean that you need add `liveAlien: ""` to mark that is no way to recover this unit and `capturable: false` is not error.

Offline Xolvix

  • Sergeant
  • **
  • Posts: 19
    • View Profile
Re: OXCE (OpenXcom Extended) main thread
« Reply #949 on: January 22, 2022, 09:52:26 am »
Oh man...

- Hotkeys to close event popups (Esc/Enter): https://openxcom.org/forum/index.php/topic,10321.0.html

I made the above suggestion, but the responses suggested that not only had it been considered in the past and dismissed already, but even the idea of implementing it was probably more effort than it was worth, and I got ashamed for thinking I was making an unreasonable request... so I ended up deleting the thread. :)
« Last Edit: January 22, 2022, 09:58:31 am by Xolvix »

Offline Ethereal

  • Commander
  • *****
  • Posts: 556
    • View Profile
Re: OXCE (OpenXcom Extended) main thread
« Reply #950 on: January 22, 2022, 10:17:00 am »
Yankes, Meridian Thanks for the help, I figured it out and corrected. The error message no longer appears.

Online Meridian

  • Global Moderator
  • Commander
  • ***
  • Posts: 7726
    • View Profile
Re: OXCE (OpenXcom Extended) main thread
« Reply #951 on: January 22, 2022, 11:19:57 am »
I don’t understand what this could be and whether it should be corrected, since BIODRONE, like all robots, is immune to any form of telepathy and stunning, that is, it is impossible to capture it.

OK, this will be a long post, but I want to answer all potential questions.

Question 1: why did we add this validation?

We added the validation, because issues/crashes with live unit recovery were constantly reported by players and were hard to identify, both for modders and for developers.
The validation should help identify potential typos, mistakes and oversights.

Question 2: do I need to fix these validation errors? Will the game still start if I don't?

OXCE will still start, potential errors will be reported only in the log file.
If we could clearly identify the intention of the modder, we would create a blocking validation, this is however not possible in this case.
It's the modder who needs to check it and decide how to fix it... because there are multiple different solutions.

Question 3: what does this validation even do?

The validation checks whether the attributes related to live unit recovery are configured consistently.

To simplify the explanation: there are 2 competing attributes:
1. attributes saying if the unit can be recovered alive or not
2. attribute saying what should be recovered, in case a recovery is attempted

There are 4 combinations:

Case A (YES-YES): attributes say that a live unit is recoverable, and a recovery item is defined.
- this is the normal scenario, everything is fine, and there is nothing written in the log

Case B (NO-NO): attributes say that a live unit is not recoverable, and a recovery item is not defined.
- this is also a normal scenario, everything is fine, and there is nothing written in the log

Case C (YES-NO): attributes say that a live unit is recoverable, but a recovery item is not defined.
- this is wrong and the game will 100% crash, if it tries to recover such a live unit
- it is of course possible that the modder made sure that a unit cannot be recovered by some other means... for example by not using the unit at all, or by using it only as a civilian faction... but we can't know that and it's safer to define the attributes consistently also in these cases
- the validation will identify such cases and will report a message in the log file saying something like this:

Code: [Select]
[21-01-2022_09-12-36] [INFO] Supressed Error for 'CIVILIAN_CASTAWAY_GAL': This unit can be recovered (in theory), but there is no corresponding item to recover.

The proper fix is to either make the live unit not recoverable (i.e. convert it into case B) or define the recovery item (i.e. convert it into case A).

Case D (NO-YES): attributes say that a live unit is not recoverable, but a recovery item is defined.
- this will not crash the game (at the moment), but it may crash the game in the future (when more features are added for example)
- the problem is again the consistency and the inability of the developers to know if the modder wanted this live unit to be recoverable or not (we still can't read minds :) )
- the validation will identify such cases and will report a message in the log file saying something like this:

Code: [Select]
[21-01-2022_09-12-36] [INFO] Supressed Error for 'STR_LOST_SOUL_MALE': This unit has a corresponding item to recover, but still isn't recoverable. Reason: (the first 'corpseBattle' item of the unit's armor is marked with 'recover: false'). Consider marking the unit with 'liveAlien: ""'.

or this:

Code: [Select]
[21-01-2022_09-12-36] [INFO] Supressed Error for 'STR_FIELD_GUN_TERRORIST': This unit has a corresponding item to recover, but still isn't recoverable. Reason: (the unit is marked with 'capturable: false'). Consider marking the unit with 'liveAlien: ""'.

The proper fix is to either make the live unit recoverable (i.e. convert it into case A) or un-define the recovery item (i.e. convert it into case B).
In most cases, conversion to case B is what needs to be done, the message even suggests it by saying "Consider marking the unit with 'liveAlien: ""'."; but it is possible that converting to case A is also what the original intention was.
Again, only the modder can say for sure.

Question 4: what are the attributes that say whether a live unit is recoverable or not?

There are 2 main attributes, that are considered during the validation:
#1. the `recover` flag on the item that is used in `corpseBattle` attribute on the unit's armor

Example for a Sectoid (1x1 unit):

Code: [Select]
armors:
  - type: SECTOID_ARMOR0
    corpseBattle:
      - STR_SECTOID_CORPSE         # <----- this item is checked

items:
  - type: STR_SECTOID_CORPSE
    battleType: 11
    recover: true                  # <----- this flag is checked
    recoveryPoints: 5

Example for a Reaper (2x2 unit):

Code: [Select]
armors:
  - type: REAPER_ARMOR
    corpseBattle:
      - REAPER_CORPSE_1             # <----- this item is checked
      - REAPER_CORPSE_2             # <----- NOT relevant
      - REAPER_CORPSE_3             # <----- NOT relevant
      - REAPER_CORPSE_4             # <----- NOT relevant
    corpseGeo: STR_REAPER_CORPSE    # <----- NOT relevant

items:
  - type: REAPER_CORPSE_1
    battleType: 11
    recover: true                  # <----- this flag is checked
    recoveryPoints: 3

We recommend using this method when converting from case C/D to case A/B.

#2. the 'capturable' flag on the unit

An example of this could be a vanilla Cyberdisc, which is not capturable.
Not capturable unit are automatically also not recoverable as live aliens.
We do not recommend using this flag to convert from case C/D into case A/B, because it has also side effects: when such unit is stunned, it is automatically insta-killed.
We recommend using option #1.

Question 5: is this check final or will it change in the future?

The check covers a lot of cases now, but not 100% of cases.
There are still corner cases that are not fully covered; for example logic around zombie-like units, just to name one.
We may improve this check in the future if we see there are still issues in the mods; or if we add new OXCE features.

Thank you for your attention, and if you made it this far, congratulations!
« Last Edit: January 22, 2022, 11:26:59 am by Meridian »

Offline Ethereal

  • Commander
  • *****
  • Posts: 556
    • View Profile
Re: OXCE (OpenXcom Extended) main thread
« Reply #952 on: January 22, 2022, 05:51:15 pm »
Thanks for the clarification and congratulations.  :D
I have another question: where did "bigSprite" for items with "specialUseEmptyHand" go?

Online Meridian

  • Global Moderator
  • Commander
  • ***
  • Posts: 7726
    • View Profile
Re: OXCE (OpenXcom Extended) main thread
« Reply #953 on: January 23, 2022, 09:38:21 am »
Thanks for the clarification and congratulations.  :D
I have another question: where did "bigSprite" for items with "specialUseEmptyHand" go?

Modders didn't like it, so it now also needs `specialUseEmptyHandShow: true`

Offline Ethereal

  • Commander
  • *****
  • Posts: 556
    • View Profile
Re: OXCE (OpenXcom Extended) main thread
« Reply #954 on: January 23, 2022, 10:04:53 am »
Modders didn't like it, so it now also needs `specialUseEmptyHandShow: true`

Understand, thanks. I just didn't see it in the description.

Offline Komandos

  • Sergeant
  • **
  • Posts: 30
    • View Profile
    • Email
Re: OXCE (OpenXcom Extended) main thread
« Reply #955 on: January 25, 2022, 05:00:27 pm »
When drawing maps, the size of 10x10 (10x20) is often small, and the size of 20x20, although suitable, takes up 1/3-1/2 of the area from the total block of the 6x6 map. (Screenshot)
I assume that there were similar requests, but I did not find them anywhere.
Request: Create the possibility of using a SET of large terrain blocks (20x20) to compile from such blocks a general map with a size of 6x6 blocks.
(The game currently supports using a set of 10x10 terrain blocks to create an overall 6x6 block map from those blocks).

Online Meridian

  • Global Moderator
  • Commander
  • ***
  • Posts: 7726
    • View Profile
Re: OXCE (OpenXcom Extended) main thread
« Reply #956 on: January 25, 2022, 05:17:45 pm »
Request: Create the possibility of using a SET of large terrain blocks (20x20) to compile from such blocks a general map with a size of 6x6 blocks.

already doable with the standard map script features

Offline Komandos

  • Sergeant
  • **
  • Posts: 30
    • View Profile
    • Email
Re: OXCE (OpenXcom Extended) main thread
« Reply #957 on: January 26, 2022, 07:07:29 pm »
Can 2x2 tanks crush 1x1 infantry???

Online Meridian

  • Global Moderator
  • Commander
  • ***
  • Posts: 7726
    • View Profile
Re: OXCE (OpenXcom Extended) main thread
« Reply #958 on: January 26, 2022, 07:46:16 pm »
Can 2x2 tanks crush 1x1 infantry???

Only if the tank falls on them and they cannot step aside.

Offline Ethereal

  • Commander
  • *****
  • Posts: 556
    • View Profile
Re: OXCE (OpenXcom Extended) main thread
« Reply #959 on: January 27, 2022, 07:10:27 pm »
Meridian, I would like to return to the issue of the counter of stunned enemies. Now when "soldierDiaries: false" the stats button disappears and space is made for the stun counter.