• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.

KingoftheNorse

Recruit
55 Badges
Oct 23, 2016
6
1
  • Semper Fi
  • Stellaris: Leviathans Story Pack
  • Stellaris - Path to Destruction bundle
  • Cities: Skylines - Snowfall
  • Europa Universalis IV: Cossacks
  • Cities: Skylines - After Dark
  • Cities: Skylines Deluxe Edition
  • Crusader Kings II
  • Europa Universalis IV: Res Publica
  • Hearts of Iron III: Their Finest Hour
  • Hearts of Iron III
  • For the Motherland
  • Europa Universalis IV: Call to arms event
  • Europa Universalis IV: Conquest of Paradise
  • Crusader Kings II: Charlemagne
  • Crusader Kings II: Legacy of Rome
  • Crusader Kings II: The Old Gods
  • Crusader Kings II: Rajas of India
  • Crusader Kings II: The Republic
  • Crusader Kings II: Sons of Abraham
  • Europa Universalis IV: Wealth of Nations
  • Crusader Kings II: Sunset Invasion
  • Europa Universalis IV: Art of War
  • Europa Universalis IV
  • Crusader Kings II: Sword of Islam
  • Stellaris: Ancient Relics
  • Hearts of Iron IV: Together for Victory
  • Crusader Kings II: Monks and Mystics
  • Hearts of Iron IV: Death or Dishonor
  • Hearts of Iron IV: Expansion Pass
  • Prison Architect
  • Stellaris: Humanoids Species Pack
  • Stellaris: Apocalypse
  • Cities: Skylines - Parklife
  • Hearts of Iron IV: Expansion Pass
  • Stellaris: Distant Stars
  • Battle for Bosporus
  • Stellaris: Digital Anniversary Edition
  • Crusader Kings II: Reapers Due
  • Hearts of Iron IV: Cadet
  • Hearts of Iron IV: By Blood Alone
  • Europa Universalis IV: Mare Nostrum
  • Crusader Kings II: Horse Lords
  • Europa Universalis IV: Common Sense
  • Crusader Kings II: Way of Life
  • Europa Universalis IV: El Dorado
  • Cities: Skylines
  • Hearts of Iron IV: No Step Back
  • Victoria 2
  • Stellaris: Synthetic Dawn
Description of issue
Technology Labelled wrongly

Game Version
Hydra v1.7.0 (d12e)

Enabled DLC
Together for Victory,
Death or Dishonor,
Waking the Tiger,
Man The Guns, All of the above

Do you have mods enabled?
No

Description
1938 Radar Technology for Czechoslovakia is not correctly labelled.

Steps to Reproduce
Load up as the Czechoslovakia and hover over or click on the 1938 radar tech in the electronics technology tab.

Upload Attachment
 

Attachments

  • Czech radar 2.JPG
    Czech radar 2.JPG
    67,8 KB · Views: 151
  • Czech Radar 1.JPG
    Czech Radar 1.JPG
    48,6 KB · Views: 124
  • 1
Reactions:
Upvote 0
Czech it out,Czech(slovak)s know something!
After heavy interrogation on Czech, we found Netherlands is behind this. :D
mtg_netherlands.37.t:0 "[From.GetNameDefCap] Refuses to Exchange Intelligence"
mtg_netherlands.37.d:0 "[From.GetNameDefCap] has refused to share their intelligence."
 
  • 1Haha
Reactions:
After heavy interrogation on Czech, we found Netherlands is behind this. :D
mtg_netherlands.37.t:0 "[From.GetNameDefCap] Refuses to Exchange Intelligence"
mtg_netherlands.37.d:0 "[From.GetNameDefCap] has refused to share their intelligence."
General Moravec wants to discuss with you!
 
  • 1Haha
Reactions:
Please use the bug forum for bug related information, don't want to derail it with speculation, that's what the general forum is for :p
 
The fact that @CraniumMuppet referred to the main forum without confirming it got my hopes up that this might really be some sort of easter egg. Turns out it's a really mundane bug:

The localization data is saved with 32-bit FNV-1 hashed keys and no hash collision check seems to be done. The strings "CZE_decimetric_radar" (the lookup string for a possible CZE-specific localization) and "mtg_netherlands.37.d" produce the same hash, 0xe3b4b1b6.

The call chain is CTechnologyTemplate::GetNameShort, CCountrySpecificNamedItem::GetNameShort, CCountrySpecificNamedItem::GetName, PdxLocalizeAndReplace, LocalizeString
 
I mean I have no things against people speculating, there's just the risk of it getting cluttered if people use the bug forum for it :)
 
But it ends up we found all the answers to this puzzling bug.

So, to sum up everything:
1, We have a clue Czech tech tree's localization is bugged
2, We found another clue, the wrong text it uses is from mtg_netherlands.37.d
3, A connection is found between those 2 localization text by our brilliant armchair reverse engineer. :p
4, The bug is caused by 2 conflicted hash keys
(Basically when game try to look up for something, those hash keys work like index in a dictionary book to help game find things faster. If 2 keys are conflicted, the game get confused, it just uses the one it found first to locate the target information. )

Thus, I think the entire process is overall constructive and can help software engineers saving some time to locate the technical cause behind the bug. (And content designers can be relieved as this is not their bug. They can help to work around it by using a different key. But, ultimately this bug will require programmers to handle.) ;)

In the meantime, based on what we found, @CraniumMuppet please report this bug with those information we gathered. It's no longer just a text flaw. It can potentially be a big engine level problem. A hash collision check may indeed need to be implemented.
 
Last edited:
  • 1
Reactions: