forked from gildor2/Quake2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
q1_rest.txt
72 lines (64 loc) · 4.15 KB
/
q1_rest.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
? wads: register wad format, mount wads, load map, unmount wads, unregister format (may be, register globally ?)
!! FIX brush creation, do not DropError() from MapBrush.cpp module
- 'ahl_streets': lamps have 'halo' with rendermode==5 (additive)
- 'ccity2':
- have rotating lamps with rendermode=5 (additive)
- BUG: this rotating lamp have surf with "red" texture, which is listed in "lights.rad" -- it will generate light
emitter at map position {0,0,0}
- have sliding doors with glasses -- uses trigger_multiple for synch ?
! use LightOrigin for renderer entity (weapon model, multi-part models ...)
! HL: map "bxnwo1" using "+atexture" on windows ("alternative animation") -- currently, incorrectly used in engine!
(entity can be switched on and off, with a different animations; not used on static objects?)
! HL/KP: have maps with "PF_setmodel NULL" error
- inline bool CBrush::IsEmpty(); use in cmodel.cpp, no errors in MapBrush.cpp
- hl: aaatrigger -- invisible texture ? (check: may be, have in wads?)
- Q1 sky (not HL!): should occlude other map surfaces (check: map "a2", "kasteel")
- CS_NAME (map message) with bad chars:
? check 7th bit for each char, replace with color
! server: do not colorize string for old clients
* may be, process "worldspawn::message" param in EntityParser.cpp -- easier, more generic
- NOTE: CS_NAME may be too long to transfer via configstrings[MAX_QPATH==64]
- example map with long message: "q1/efdm10"
- texture loading:
- should delete all textures (map textures) on next map loading, because:
- q1: embedded textures: should delete all on map change (different maps -- may be different textures
with the same name)
- hl: wad textures: different maps => different wads ...
? may be, delete textures for Q2/Q3 maps too -- fast enough to reload them
! should delete textures and shaders!
! should check: main engine can use shaders by 'handle' (pointer) -- this will require to not delete these shaders, or
refresh pointers after map restart/change; may be, use 'smart pointers' with garbage collection
- check player trace bounds + viewheight for q1/hl (q1: looks like same as q2; hl -- needs scaling?!)
- q1/hl: check lightstyle strings
// HL: added
// 12 UNDERWATER LIGHT MUTATION
// this light only distorts the lightmap - no contribution
// is made to the brightness of affected surfaces
LIGHT_STYLE(12, "mmnnmmnnnmmnn");
? FORCE ext protocol for clients, when playing q1/hl map (not required: original q2 will fail to load these maps anyway)
- boot_camp (and other HL mas): lots of func_illusionary, which should clip player movement -- because clip created for
hulls #2 and #3, and not created for hull #1 (which we are use)
- check HL animMap.freq (HL viewer: 10 Hz; Q1 - 5 Hz; Q2 - 2 Hz) -- disassemble ...
------------ hl entities ---------------
- func_button: incorrect movement angle, speed (?)
- func_breakable: replace with func_explosive; may require additional target_speaker with explosion sound
- KP: func_explosive on "japan" - windows with explosion (check game code ?)
- lifts does not works! ("ccity2", "bxht")
- sounds does not works
- door sounds (create linked trigger with sound? -- check entity count overflow!)
--------------- later ------------------
* hl: "lights.rad" file (SURF_LIGHT analog)
? hl: water waves
? ents: convert q1 NPC to q2 NPC
- surface sounds (hl) -- requires surface info in Trace()
- ambient sounds (see dBsp1Leaf_t)
- .mdl models for Q1 (torch etc)
- func_illusionary: can have "skin" field -- used as contents (default == -1 == Q1_CONTENTS_EMPTY); may be used to
create water etc (work PointContents() only ? SOLID_NOT is set by game (q1/hl) for func_illusionary)
- HL: "infodecal" entities (and check AHL map "bxht")
- HL: "-0texture" - randomly tiled (using all available "-1texture" etc)
- "lights.rad": currently, color is ignored!
- can detect light surfaces:
1) check lightmap for all faces with same texture
2) all of them should be filled with a single color (because received light is smaller, than emitting light)
3) at least one of color components should be 255 (normalized color)