On this page
  1. Related
  2. Games
  3. References
  4. Sources

Structure decay takes health from buildings as time passes. In Dune II, after the first missions, a marked structure loses a few hit points, set by its house, at a fixed interval until it falls to half health, and the original game marks every structure it places1.

  • All structuresDune II (1992). From the third mission every structure built in play loses 1–3 hit points by house each interval down to half; OpenDUNE's default spares structures wholly on slabs.1

Games

GameYearHowNote
Dune II1992All structuresfrom the third mission every structure built in play loses 1–3 hit points by house each interval down to half; OpenDUNE's default spares structures wholly on slabs
Every claim about this mechanic, by game (1)

References

  1. ^ abFrom the third mission on, every 10,800 game-timer ticks at normal game speed, each structure marked as degrading loses hit points while it stands above half its table maximum: 3 for the Harkonnen, 2 for the Ordos, and 1 for every other house. Placement marks a structure when any footprint tile lacks a concrete slab, except a construction yard, which never counts missing slabs; in the original mode it marks every structure placed, slabs or not, and OpenDUNE's enhanced mode (the default) leaves a construction yard and a structure built wholly on slabs unmarked. Structures a scenario places start unmarked, and slabs and walls never decay. Computed: OpenDUNE's 60 Hz timer makes the interval 3 minutes, and a structure placed with no slab, which starts at half health, doesn't decay until repaired above it.CodeOpenDUNErevised
    How we know
    61	if (s_tickStructureDegrade <= g_timerGame && g_campaignID > 1) {
    62		tickDegrade = true;
    63		s_tickStructureDegrade = g_timerGame + Tools_AdjustToGameSpeed(10800, 5400, 21600, true);
    
    src/structure.c lines 61–63 at ebea79a · upstream ↗
    95		if (s->o.type == STRUCTURE_SLAB_1x1 || s->o.type == STRUCTURE_SLAB_2x2 || s->o.type == STRUCTURE_WALL) continue;
    
    src/structure.c line 95 at ebea79a · upstream ↗
    121		if (tickDegrade && s->o.flags.s.degrades && s->o.hitpoints > si->o.hitpoints / 2) {
    122			Structure_Damage(s, hi->degradingAmount, 0);
    
    src/structure.c lines 121–122 at ebea79a · upstream ↗
    9		/* name                 */ "Harkonnen",
    ⋮
    12		/* degradingAmount      */ 3,
    
    src/table/houseinfo.c lines 9–12 at ebea79a · upstream ↗
    41		/* name                 */ "Ordos",
    ⋮
    44		/* degradingAmount      */ 2,
    
    src/table/houseinfo.c lines 41–44 at ebea79a · upstream ↗
    28		/* degradingAmount      */ 1,
    ⋮
    60		/* degradingAmount      */ 1,
    ⋮
    76		/* degradingAmount      */ 1,
    ⋮
    92		/* degradingAmount      */ 1,
    
    src/table/houseinfo.c lines 25–92 at ebea79a · upstream ↗
    550	if (validBuildLocation < 0) {
    ⋮
    556		s->o.flags.s.degrades = true;
    557	} else {
    558		/* ENHANCEMENT -- When you build a structure completely on slabs, it should not degrade */
    559		if (!g_dune2_enhanced) {
    560			s->o.flags.s.degrades = true;
    
    src/structure.c lines 550–561 at ebea79a · upstream ↗
    766			if (si->o.flags.notOnConcrete) {
    ⋮
    776				if (lst != LST_CONCRETE_SLAB) neededSlabs++;
    
    src/structure.c lines 766–777 at ebea79a · upstream ↗
    542		/* notOnConcrete        */ true,
    
    src/table/structureinfo.c lines 536–542 at ebea79a · upstream ↗
    285		s->o.flags.s.degrades = false;
    
    src/scenario.c lines 284–285 at ebea79a · upstream ↗
    1168	Timer_Add(Timer_Tick, 1000000 / 60, false);
    
    src/opendune.c line 1168 at ebea79a · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-22.

    Revised after a check by a second AI model, 2026-10-22.

    In the claim ledger

Sources

Code