From 2fde8a5d3fb0afe6eff0a93b0a001be55a8bc0e2 Mon Sep 17 00:00:00 2001 From: James Dansereau <106631954+jkdansereau@users.noreply.github.com> Date: Mon, 31 Aug 2026 10:25:24 -0400 Subject: [PATCH] M-30: regenerate LEVEL-OBJECTIVES.md with fixed difficulty reader (D157) --- docs/LEVEL-OBJECTIVES.md | 78 ++++++++++++++++++++-------------------- 1 file changed, 40 insertions(+), 38 deletions(-) diff --git a/docs/LEVEL-OBJECTIVES.md b/docs/LEVEL-OBJECTIVES.md index 53c77f95..c2164d5c 100644 --- a/docs/LEVEL-OBJECTIVES.md +++ b/docs/LEVEL-OBJECTIVES.md @@ -1,21 +1,23 @@ # LEVEL-OBJECTIVES — per-level mission objectives + win/fail criteria -Auto-generated by `tools_pc/dump_objectives.py` from the retail ROM (M-29, Track A). +Auto-generated by `tools_pc/dump_objectives.py` from the retail ROM (M-30, Track A). Criteria semantics: see the header of `tools_pc/dump_objectives.py`. +'min difficulty' = the lowest difficulty at which the objective is REQUIRED +(D157: the reader was fixed 2026-08-31 — earlier revs showed 'Agent' for all). === level_09 (level 9, UsetupsevbunkerZ) === -Objective 0 [briefing text id 30749] min difficulty: Agent +Objective 0 [briefing text id 30749] min difficulty: Secret Agent - DESTROY_OBJECT tag 0 -> CCTV - DESTROY_OBJECT tag 1 -> CCTV - DESTROY_OBJECT tag 2 -> CCTV - DESTROY_OBJECT tag 3 -> CCTV Objective 1 [briefing text id 30750] min difficulty: Agent - COPY_ITEM (key-analyzer/datavac copy flag) -Objective 2 [briefing text id 30751] min difficulty: Agent +Objective 2 [briefing text id 30751] min difficulty: No One Lives Forever - COMPLETE_CONDITION stage flag mask 0x100 (bit(s) [8]) - FAIL_CONDITION stage flag mask 0x200 (bit(s) [9]) -- mission FAILS when set -Objective 3 [briefing text id 30752] min difficulty: Agent +Objective 3 [briefing text id 30752] min difficulty: No One Lives Forever - COMPLETE_CONDITION stage flag mask 0x400 (bit(s) [10]) - FAIL_CONDITION stage flag mask 0x800 (bit(s) [11]) -- mission FAILS when set - FAIL_CONDITION stage flag mask 0x200 (bit(s) [9]) -- mission FAILS when set @@ -23,16 +25,16 @@ Objective 4 [briefing text id 30753] min difficulty: Agent - PHOTOGRAPH tag 5 -> MULTI_MONITOR; photo-flag word @8=0x0 === level_20 (level 20, UsetupsiloZ) === -Objective 0 [briefing text id 34834] min difficulty: Agent +Objective 0 [briefing text id 34834] min difficulty: No One Lives Forever - DEPOSIT_IN_ROOM ref @4=34 ref @8=4; runtime word @c=0x0 - DEPOSIT_IN_ROOM ref @4=34 ref @8=12; runtime word @c=0x0 - DEPOSIT_IN_ROOM ref @4=34 ref @8=88; runtime word @c=0x0 - DEPOSIT_IN_ROOM ref @4=34 ref @8=95; runtime word @c=0x0 Objective 1 [briefing text id 34835] min difficulty: Agent - PHOTOGRAPH tag 0 -> PROP; photo-flag word @8=0x0 -Objective 2 [briefing text id 34836] min difficulty: Agent +Objective 2 [briefing text id 34836] min difficulty: Secret Agent - COLLECT_OBJECT tag 1 -> PROP -Objective 3 [briefing text id 34837] min difficulty: Agent +Objective 3 [briefing text id 34837] min difficulty: Secret Agent - COLLECT_OBJECT tag 2 -> PROP - COLLECT_OBJECT tag 3 -> PROP - COLLECT_OBJECT tag 4 -> PROP @@ -46,17 +48,17 @@ Objective 4 [briefing text id 34838] min difficulty: Agent - FAIL_CONDITION stage flag mask 0x4000 (bit(s) [14]) -- mission FAILS when set === level_21 (level 21, UsetupsevbunkerZ) === -Objective 0 [briefing text id 30749] min difficulty: Agent +Objective 0 [briefing text id 30749] min difficulty: Secret Agent - DESTROY_OBJECT tag 0 -> CCTV - DESTROY_OBJECT tag 1 -> CCTV - DESTROY_OBJECT tag 2 -> CCTV - DESTROY_OBJECT tag 3 -> CCTV Objective 1 [briefing text id 30750] min difficulty: Agent - COPY_ITEM (key-analyzer/datavac copy flag) -Objective 2 [briefing text id 30751] min difficulty: Agent +Objective 2 [briefing text id 30751] min difficulty: No One Lives Forever - COMPLETE_CONDITION stage flag mask 0x100 (bit(s) [8]) - FAIL_CONDITION stage flag mask 0x200 (bit(s) [9]) -- mission FAILS when set -Objective 3 [briefing text id 30752] min difficulty: Agent +Objective 3 [briefing text id 30752] min difficulty: No One Lives Forever - COMPLETE_CONDITION stage flag mask 0x400 (bit(s) [10]) - FAIL_CONDITION stage flag mask 0x800 (bit(s) [11]) -- mission FAILS when set - FAIL_CONDITION stage flag mask 0x200 (bit(s) [9]) -- mission FAILS when set @@ -102,7 +104,7 @@ Objective 0 [briefing text id 2089] min difficulty: Agent - ENTER_ROOM ref @4=152 (room); runtime word @8=0x0 Objective 1 [briefing text id 2090] min difficulty: Agent - COMPLETE_CONDITION stage flag mask 0x100 (bit(s) [8]) -Objective 2 [briefing text id 2091] min difficulty: Agent +Objective 2 [briefing text id 2091] min difficulty: Secret Agent - COLLECT_OBJECT tag 2 -> PROP - FAIL_CONDITION stage flag mask 0x1000 (bit(s) [12]) -- mission FAILS when set Objective 3 [briefing text id 2092] min difficulty: Agent @@ -121,9 +123,9 @@ Objective 0 [briefing text id 36898] min difficulty: Agent Objective 1 [briefing text id 36899] min difficulty: Agent - COMPLETE_CONDITION stage flag mask 0x8000 (bit(s) [15]) - FAIL_CONDITION stage flag mask 0x4000 (bit(s) [14]) -- mission FAILS when set -Objective 2 [briefing text id 36900] min difficulty: Agent +Objective 2 [briefing text id 36900] min difficulty: Secret Agent - COMPLETE_CONDITION stage flag mask 0x10000 (bit(s) [16]) -Objective 3 [briefing text id 36901] min difficulty: Agent +Objective 3 [briefing text id 36901] min difficulty: No One Lives Forever - COMPLETE_CONDITION stage flag mask 0x20000 (bit(s) [17]) Objective 4 [briefing text id 36902] min difficulty: Agent - COMPLETE_CONDITION stage flag mask 0x100000 (bit(s) [20]) @@ -136,10 +138,10 @@ Objective 0 [briefing text id 13332] min difficulty: Agent - COMPLETE_CONDITION stage flag mask 0x800 (bit(s) [11]) - COMPLETE_CONDITION stage flag mask 0x1000 (bit(s) [12]) - FAIL_CONDITION stage flag mask 0x100000 (bit(s) [20]) -- mission FAILS when set -Objective 1 [briefing text id 13333] min difficulty: Agent +Objective 1 [briefing text id 13333] min difficulty: Secret Agent - COMPLETE_CONDITION stage flag mask 0x10000 (bit(s) [16]) - FAIL_CONDITION stage flag mask 0x40000 (bit(s) [18]) -- mission FAILS when set -Objective 2 [briefing text id 13334] min difficulty: Agent +Objective 2 [briefing text id 13334] min difficulty: Secret Agent - COMPLETE_CONDITION stage flag mask 0x20000 (bit(s) [17]) - FAIL_CONDITION stage flag mask 0x80000 (bit(s) [19]) -- mission FAILS when set Objective 3 [briefing text id 13335] min difficulty: Agent @@ -147,19 +149,19 @@ Objective 3 [briefing text id 13335] min difficulty: Agent - FAIL_CONDITION stage flag mask 0x8000 (bit(s) [15]) -- mission FAILS when set === level_27 (level 27, UsetupsevbZ) === -Objective 0 [briefing text id 29743] min difficulty: Agent +Objective 0 [briefing text id 29743] min difficulty: Secret Agent - COMPLETE_CONDITION stage flag mask 0x200 (bit(s) [9]) Objective 1 [briefing text id 29744] min difficulty: Agent - FAIL_CONDITION stage flag mask 0x1000 (bit(s) [12]) -- mission FAILS when set - COLLECT_OBJECT tag 2 -> PROP -Objective 2 [briefing text id 29745] min difficulty: Agent +Objective 2 [briefing text id 29745] min difficulty: Secret Agent - DESTROY_OBJECT tag 28 -> CCTV - DESTROY_OBJECT tag 29 -> CCTV - DESTROY_OBJECT tag 30 -> CCTV - DESTROY_OBJECT tag 31 -> CCTV - DESTROY_OBJECT tag 32 -> CCTV - DESTROY_OBJECT tag 33 -> CCTV -Objective 3 [briefing text id 29746] min difficulty: Agent +Objective 3 [briefing text id 29746] min difficulty: No One Lives Forever - COLLECT_OBJECT tag 34 -> PROP Objective 4 [briefing text id 29747] min difficulty: Agent - FAIL_CONDITION stage flag mask 0x100 (bit(s) [8]) -- mission FAILS when set @@ -173,7 +175,7 @@ Objective 1 [briefing text id 5142] min difficulty: Agent - COMPLETE_CONDITION stage flag mask 0x8000 (bit(s) [15]) === level_29 (level 29, UsetuppeteZ) === -Objective 0 [briefing text id 25627] min difficulty: Agent +Objective 0 [briefing text id 25627] min difficulty: Secret Agent - COMPLETE_CONDITION stage flag mask 0x20000 (bit(s) [17]) - FAIL_CONDITION stage flag mask 0x40000 (bit(s) [18]) -- mission FAILS when set Objective 1 [briefing text id 25625] min difficulty: Agent @@ -184,7 +186,7 @@ Objective 2 [briefing text id 25626] min difficulty: Agent - FAIL_CONDITION stage flag mask 0x1000 (bit(s) [12]) -- mission FAILS when set === level_30 (level 30, UsetupdepoZ) === -Objective 0 [briefing text id 12303] min difficulty: Agent +Objective 0 [briefing text id 12303] min difficulty: No One Lives Forever - DESTROY_OBJECT tag 10 -> PROP - DESTROY_OBJECT tag 11 -> PROP - DESTROY_OBJECT tag 12 -> PROP @@ -202,29 +204,29 @@ Objective 0 [briefing text id 12303] min difficulty: Agent - DESTROY_OBJECT tag 24 -> PROP - DESTROY_OBJECT tag 25 -> PROP - DESTROY_OBJECT tag 26 -> PROP -Objective 1 [briefing text id 12304] min difficulty: Agent +Objective 1 [briefing text id 12304] min difficulty: Secret Agent - DESTROY_OBJECT tag 1 -> MULTI_MONITOR - DESTROY_OBJECT tag 2 -> PROP - DESTROY_OBJECT tag 3 -> PROP -Objective 2 [briefing text id 12305] min difficulty: Agent +Objective 2 [briefing text id 12305] min difficulty: Secret Agent - COLLECT_OBJECT tag 0 -> KEY -Objective 3 [briefing text id 12306] min difficulty: Agent +Objective 3 [briefing text id 12306] min difficulty: Secret Agent - COLLECT_OBJECT tag 5 -> PROP Objective 4 [briefing text id 12307] min difficulty: Agent - COMPLETE_CONDITION stage flag mask 0x100 (bit(s) [8]) UsetuprefZ not in filelist === dam (level 33, UsetupdamZ) === -Objective 0 [briefing text id 11286] min difficulty: Agent +Objective 0 [briefing text id 11286] min difficulty: Secret Agent - DESTROY_OBJECT tag 0 -> ALARM - DESTROY_OBJECT tag 1 -> ALARM - DESTROY_OBJECT tag 2 -> ALARM - DESTROY_OBJECT tag 3 -> ALARM -Objective 1 [briefing text id 11287] min difficulty: Agent +Objective 1 [briefing text id 11287] min difficulty: No One Lives Forever - COMPLETE_CONDITION stage flag mask 0x100 (bit(s) [8]) - FAIL_CONDITION stage flag mask 0x2000 (bit(s) [13]) -- mission FAILS when set - FAIL_CONDITION stage flag mask 0x800 (bit(s) [11]) -- mission FAILS when set -Objective 2 [briefing text id 11288] min difficulty: Agent +Objective 2 [briefing text id 11288] min difficulty: No One Lives Forever - COMPLETE_CONDITION stage flag mask 0x400 (bit(s) [10]) - FAIL_CONDITION stage flag mask 0x200 (bit(s) [9]) -- mission FAILS when set Objective 3 [briefing text id 11289] min difficulty: Agent @@ -233,7 +235,7 @@ Objective 3 [briefing text id 11289] min difficulty: Agent === facility (level 34, UsetuparkZ) === Objective 0 [briefing text id 3120] min difficulty: Agent - ENTER_ROOM ref @4=86 (room); runtime word @8=0x0 -Objective 1 [briefing text id 3121] min difficulty: Agent +Objective 1 [briefing text id 3121] min difficulty: Secret Agent - COMPLETE_CONDITION stage flag mask 0x200 (bit(s) [9]) - FAIL_CONDITION stage flag mask 0x10000 (bit(s) [16]) -- mission FAILS when set Objective 2 [briefing text id 3122] min difficulty: Agent @@ -257,11 +259,11 @@ Objective 4 [briefing text id 3124] min difficulty: Agent === runway (level 35, UsetuprunZ) === Objective 0 [briefing text id 28687] min difficulty: Agent - COLLECT_OBJECT tag 2 -> KEY -Objective 1 [briefing text id 28688] min difficulty: Agent +Objective 1 [briefing text id 28688] min difficulty: No One Lives Forever - DESTROY_OBJECT tag 0 -> AUTOGUN - DESTROY_OBJECT tag 4 -> AUTOGUN - DESTROY_OBJECT tag 5 -> AUTOGUN -Objective 2 [briefing text id 28689] min difficulty: Agent +Objective 2 [briefing text id 28689] min difficulty: Secret Agent - DESTROY_OBJECT tag 1 -> PROP Objective 3 [briefing text id 28690] min difficulty: Agent - COMPLETE_CONDITION stage flag mask 0x800 (bit(s) [11]) @@ -271,15 +273,15 @@ Objective 3 [briefing text id 28690] min difficulty: Agent Objective 0 [briefing text id 31760] min difficulty: Agent - COMPLETE_CONDITION stage flag mask 0x100 (bit(s) [8]) - FAIL_CONDITION stage flag mask 0x800 (bit(s) [11]) -- mission FAILS when set -Objective 1 [briefing text id 31761] min difficulty: Agent +Objective 1 [briefing text id 31761] min difficulty: Secret Agent - COLLECT_OBJECT tag 0 -> KEY -Objective 2 [briefing text id 31762] min difficulty: Agent +Objective 2 [briefing text id 31762] min difficulty: Secret Agent - COLLECT_OBJECT tag 2 -> PROP Objective 3 [briefing text id 31763] min difficulty: Agent - COMPLETE_CONDITION stage flag mask 0x8000 (bit(s) [15]) === surface2 (level 43, UsetupsevxbZ) === -Objective 0 [briefing text id 32788] min difficulty: Agent +Objective 0 [briefing text id 32788] min difficulty: No One Lives Forever - DESTROY_OBJECT tag 3 -> CCTV - DESTROY_OBJECT tag 4 -> CCTV - DESTROY_OBJECT tag 6 -> CCTV @@ -288,7 +290,7 @@ Objective 1 [briefing text id 32789] min difficulty: Agent - DESTROY_OBJECT tag 0 -> PROP - DESTROY_OBJECT tag 1 -> PROP - FAIL_CONDITION stage flag mask 0x400000 (bit(s) [22]) -- mission FAILS when set -Objective 2 [briefing text id 32790] min difficulty: Agent +Objective 2 [briefing text id 32790] min difficulty: Secret Agent - COMPLETE_CONDITION stage flag mask 0x100 (bit(s) [8]) - FAIL_CONDITION stage flag mask 0x200 (bit(s) [9]) -- mission FAILS when set Objective 3 [briefing text id 32791] min difficulty: Agent @@ -305,7 +307,7 @@ Objective 0 [briefing text id 18469] min difficulty: Agent - DESTROY_OBJECT tag 12 -> AUTOGUN Objective 1 [briefing text id 18470] min difficulty: Agent - COMPLETE_CONDITION stage flag mask 0x100 (bit(s) [8]) -Objective 2 [briefing text id 18471] min difficulty: Agent +Objective 2 [briefing text id 18471] min difficulty: Secret Agent - DESTROY_OBJECT tag 20 -> PROP - DESTROY_OBJECT tag 21 -> PROP - DESTROY_OBJECT tag 22 -> PROP @@ -320,19 +322,19 @@ Objective 3 [briefing text id 18472] min difficulty: Agent - FAIL_CONDITION stage flag mask 0x400 (bit(s) [10]) -- mission FAILS when set === caverns (level 39, UsetupcaveZ) === -Objective 0 [briefing text id 7187] min difficulty: Agent +Objective 0 [briefing text id 7187] min difficulty: Secret Agent - DESTROY_OBJECT tag 0 -> MULTI_MONITOR - DESTROY_OBJECT tag 1 -> MULTI_MONITOR - DESTROY_OBJECT tag 2 -> MULTI_MONITOR - DESTROY_OBJECT tag 3 -> MULTI_MONITOR -Objective 1 [briefing text id 7188] min difficulty: Agent +Objective 1 [briefing text id 7188] min difficulty: Secret Agent - DESTROY_OBJECT tag 4 -> MULTI_MONITOR - DESTROY_OBJECT tag 5 -> MULTI_MONITOR - DESTROY_OBJECT tag 6 -> MULTI_MONITOR - DESTROY_OBJECT tag 7 -> MULTI_MONITOR -Objective 2 [briefing text id 7189] min difficulty: Agent +Objective 2 [briefing text id 7189] min difficulty: Secret Agent - DESTROY_OBJECT tag 8 -> MULTI_MONITOR -Objective 3 [briefing text id 7190] min difficulty: Agent +Objective 3 [briefing text id 7190] min difficulty: No One Lives Forever - COMPLETE_CONDITION stage flag mask 0x400000 (bit(s) [22]) - FAIL_CONDITION stage flag mask 0x40000 (bit(s) [18]) -- mission FAILS when set - FAIL_CONDITION stage flag mask 0x80000 (bit(s) [19]) -- mission FAILS when set