DO/LIT/List

From Dark Omen Wiki

< DO | LIT
Jump to: navigation, search

Contents

Notes

  • Almost all maps have a light of type 38 (if data 1 is "type"). The only exceptions are B2_08, which is inside Drakenhof Castle, B4_10 (Black Grail Knights), B5_01 (Dread King) and SPARE9 (tutorial).
  • However, the dialogue indicates that these values are "E and L falloffs". This implies that there are NO directional lights, only point lights. So what are these falloffs? Light attenuation and falloff function (~= range)?
  • Suggestion for a test: remove all of the lights, except one from a battle on the smallest map. Starting from the lowest bits of data1, toggle them on and off and observe the effect.
    • Requirements: someone with genuine 3D accelerated Dark Omen to test.

Bitfield

It is very likely that data1 is a bitfield.

  • All values are lower than 63 (63 corresponds to binary 0b111111)
  • there are only a limited number of values
  • values tend to cluster to "toggle areas"

Listing

Data1 Binary frequency of use --> Bitset
2 0b00000010 1 0 0 0 0 0 0 1 0
17 0b00010001 1 0 0 0 1 0 0 0 1
18 0b00010010 2 0 0 0 1 0 0 1 0
22 0b00010110 23 0 0 0 1 0 1 1 0
23 0b00010111 2 0 0 0 1 0 1 1 1
33 0b00100001 2 0 0 1 0 0 0 0 1
35 0b00100011 1 0 0 1 0 0 0 1 1
38 0b00100110 26 0 0 1 0 0 1 1 0
41 0b00101001 2 0 0 1 0 1 0 0 1
42 0b00101010 3 0 0 1 0 1 0 1 0
43 0b00101011 1 0 0 1 0 1 0 1 1
49 0b00110001 22 0 0 1 1 0 0 0 1
54 0b00110110 1 0 0 1 1 0 0 0 1
57 0b00111001 4 0 0 1 1 1 0 0 1
58 0b00111010 1 0 0 1 1 1 0 1 0
59 0b00111011 5 0 0 1 1 1 0 1 1
97 lights
Num 0b00000001 40
Num 0b00000010 66
Num 0b00000100 52
Num 0b00001000 16
Num 0b00010000 71
Num 0b00100000 68

The big three

22 0b00010110 23
38 0b00100110 26
49 0b00110001 22

DX5 Light Structures

typedef float D3DVALUE, *LPD3DVALUE;
 
 
typedef struct _D3DCOLORVALUE {
    union {
	D3DVALUE r;
	D3DVALUE dvR;
    };
    union {
	D3DVALUE g;
	D3DVALUE dvG;
    };
    union {
	D3DVALUE b;
	D3DVALUE dvB;
    };
    union {
	D3DVALUE a;
	D3DVALUE dvA;
    };
} D3DCOLORVALUE, *LPD3DCOLORVALUE;
 
 
typedef struct _D3DLIGHT {
    DWORD           dwSize;
    D3DLIGHTTYPE    dltType;           	/* Type of light source */
    D3DCOLORVALUE   dcvColor;		/* Color of light */
    D3DVECTOR       dvPosition;		/* Position in world space */
    D3DVECTOR       dvDirection;        /* Direction in world space */
    D3DVALUE        dvRange;            /* Cutoff range */
    D3DVALUE        dvFalloff;          /* Falloff */
    D3DVALUE        dvAttenuation0;     /* Constant attenuation */
    D3DVALUE        dvAttenuation1;     /* Linear attenuation */
    D3DVALUE        dvAttenuation2;     /* Quadratic attenuation */
    D3DVALUE        dvTheta;            /* Inner angle of spotlight cone */
    D3DVALUE        dvPhi;              /* Outer angle of spotlight cone */
} D3DLIGHT, *LPD3DLIGHT;
 
 
typedef struct _D3DLIGHT2 {
    DWORD           dwSize;
    D3DLIGHTTYPE    dltType;		/* Type of light source */
    D3DCOLORVALUE   dcvColor;		/* Color of light */
    D3DVECTOR       dvPosition;		/* Position in world space */
    D3DVECTOR       dvDirection;	/* Direction in world space */
    D3DVALUE        dvRange;		/* Cutoff range */
    D3DVALUE        dvFalloff;		/* Falloff */
    D3DVALUE        dvAttenuation0;	/* Constant attenuation */
    D3DVALUE        dvAttenuation1;	/* Linear attenuation */
    D3DVALUE        dvAttenuation2;	/* Quadratic attenuation */
    D3DVALUE        dvTheta;		/* Inner angle of spotlight cone */
    D3DVALUE        dvPhi;			/* Outer angle of spotlight cone */
	DWORD			dwFlags;
} D3DLIGHT2, *LPD3DLIGHT2;

Dump

# Pos Data 1 Data 2 Colour
B1_01.prj
0 [-4.04,11.00,-9.93] 38 0 (256,256,256)
1 [27.57,60.00,22.21] 33 34 (1280,1280,1280)
2 [-6.41,35.00,-9.86] 22 0 (166,166,166)
B1_02.prj
0 [-26.20,25.00,-16.15] 38 0 (307,307,307)
1 [-20.51,90.00,-30.43] 33 0 (256,256,256)
2 [-2.25,60.00,-59.15] 22 0 (204,204,204)
B1_03.prj
0 [50.00,24.00,50.00] 38 0 (281,281,281)
1 [234.93,59.00,210.31] 59 1 (127,127,127)
2 [40.39,24.00,45.33] 22 0 (113,113,113)
3 [231.33,13.00,39.42] 43 42 (1113,1113,1113)
B1_04.prj
0 [-63.05,38.00,81.82] 38 0 (459,459,459)
1 [4.18,108.00,176.22] 57 0 (256,256,256)
2 [-17.25,89.00,45.82] 22 0 (165,165,165)
B1_05.prj
0 [-21.31,8.00,-21.36] 38 0 (256,256,256)
1 [79.65,6.00,66.82] 59 96 (1280,1280,1280)
2 [139.10,7.00,139.92] 59 72 (358,358,358)
3 [59.27,32.00,62.37] 49 1269 (256,256,256)
4 [87.43,4.00,151.45] 59 37 (1280,1280,1280)
5 [156.54,7.00,68.57] 59 36 (1280,1280,1280)
B1_06.prj
0 [8.16,20.00,47.68] 38 2 (499,499,499)
1 [110.18,38.00,219.17] 49 716 (256,256,256)
2 [89.77,68.00,236.25] 23 0 (639,639,639)
3 [96.60,47.00,78.37] 17 716 (256,256,256)
B1_07.prj
0 [8.16,20.00,47.68] 38 2 (499,499,499)
1 [110.18,38.00,219.17] 49 716 (256,256,256)
2 [89.77,68.00,236.25] 23 0 (639,639,639)
3 [96.60,47.00,78.37] 17 716 (256,256,256)
B1_08.prj
0 [-17.13,24.00,22.03] 38 0 (256,256,256)
1 [-10.30,25.00,-4.33] 22 0 (179,179,179)
2 [-7.47,78.00,-13.14] 49 0 (256,256,256)
3 [-4.57,65.00,205.32] 49 0 (256,256,256)
B2_01.prj
0 [-10.55,34.00,66.43] 38 0 (383,383,383)
1 [-2.89,38.00,47.88] 22 0 (256,256,256)
2 [68.35,71.00,226.19] 57 0 (256,256,256)
3 [1.69,17.00,-17.64] 22 0 (76,76,76)
B2_02.prj
0 [28.31,30.00,49.47] 38 0 (331,331,331)
1 [64.41,71.00,120.01] 22 0 (1280,1280,1280)
2 [50.00,40.00,50.00] 49 0 (256,256,256)
B2_04.prj
0 [135.99,126.00,177.33] 38 0 (371,371,371)
1 [43.37,8.00,7.24] 22 0 (729,729,729)
2 [143.24,95.00,156.43] 49 0 (256,256,256)
B2_05.prj
0 [-11.74,195.00,58.77] 38 0 (216,216,216)
1 [25.13,22.00,20.94] 22 0 (256,256,256)
2 [-1.80,79.00,287.40] 49 0 (256,256,256)
3 [101.38,39.00,154.61] 35 311 (1280,1280,1280)
4 [183.97,25.00,132.49] 42 502 (1280,1280,1280)
B2_07.prj
0 [126.88,85.00,79.02] 38 0 (243,243,243)
1 [114.31,33.00,47.32] 22 0 (422,422,422)
2 [261.70,64.00,178.88] 49 0 (256,256,256)
3 [269.59,16.00,11.26] 18 135 (1280,1280,1280)
B2_08.prj
0 [126.17,19.00,227.54] 59 31 (1036,1036,1036)
1 [120.36,17.00,63.12] 2 99 (256,256,256)
B3_01.prj
0 [-20.68,25.00,103.87] 38 0 (256,256,256)
1 [-12.46,25.00,121.18] 22 0 (256,256,256)
2 [113.23,34.00,245.86] 49 0 (256,256,256)
B3_02.prj
0 [-3.57,15.00,-8.78] 38 0 (217,217,217)
1 [-8.86,25.00,-15.88] 22 0 (204,204,204)
2 [-3.92,58.00,-6.53] 49 0 (256,256,256)
B3_06.prj
0 [19.54,124.00,161.95] 38 0 (294,294,294)
1 [216.31,117.00,165.68] 49 0 (256,256,256)
2 [19.29,14.00,159.71] 18 0 (115,115,115)
B3_07.prj
0 [20.08,59.00,-14.56] 38 0 (256,256,256)
1 [18.23,57.00,-0.70] 22 0 (1100,1100,1100)
2 [16.20,41.00,-4.57] 49 0 (256,256,256)
B3_08.prj
0 [58.20,39.00,21.27] 38 0 (256,256,256)
1 [59.24,14.00,20.16] 22 0 (256,256,256)
2 [350.68,108.00,337.75] 49 0 (256,256,256)
B3_09.prj
0 [15.57,26.00,-30.71] 38 0 (256,256,256)
1 [20.44,25.00,-29.49] 22 0 (256,256,256)
2 [15.82,50.00,-23.97] 49 0 (256,256,256)
B4_01.prj
0 [-14.65,78.00,-26.40] 38 0 (256,256,256)
1 [8.28,95.00,-24.82] 18 0 (256,256,256)
2 [-5.96,72.00,169.91] 49 0 (256,256,256)
B4_02.prj
0 [13.07,14.00,21.37] 38 0 (256,256,256)
1 [29.59,25.00,20.49] 22 0 (256,256,256)
2 [314.44,87.00,243.09] 49 0 (256,256,256)
B4_03.prj
0 [70.88,80.00,83.25] 38 0 (256,256,256)
1 [88.27,66.00,87.81] 22 0 (179,179,179)
2 [164.06,51.00,171.56] 57 0 (256,256,256)
B4_05.prj
0 [36.85,36.00,-11.38] 38 0 (166,166,166)
1 [48.28,41.00,-8.56] 22 0 (256,256,256)
2 [47.21,67.00,-7.27] 49 0 (256,256,256)
B4_06.prj
0 [3.76,48.00,-49.06] 38 0 (256,256,256)
1 [10.64,75.00,-30.93] 22 0 (256,256,256)
2 [114.85,61.00,6.07] 49 0 (256,256,256)
B4_08.prj
0 [85.20,92.00,75.01] 38 0 (256,256,256)
1 [84.70,62.00,78.60] 22 0 (243,243,243)
2 [297.70,120.00,260.66] 49 0 (256,256,256)
B4_09.prj
0 [72.62,53.00,-67.96] 38 0 (256,256,256)
1 [64.28,21.00,-74.19] 22 0 (1280,1280,1280)
2 [63.66,131.00,-41.64] 49 0 (256,256,256)
B4_10.prj
0 [-26.85,130.00,191.00] 58 0 (256,256,256)
1 [-24.21,124.00,192.58] 57 0 (256,256,256)
B5_01.prj
0 [178.24,43.00,221.59] 42 0 (319,319,319)
1 [178.40,25.00,217.54] 41 0 (256,256,256)
B5_01B.prj
0 [159.62,81.00,86.38] 42 0 (179,179,179)
1 [160.12,25.00,89.22] 41 0 (256,256,256)
SPARE9.prj
0 [12.06,9.00,16.06] 54 0 (383,383,383)
1 [7.44,-3.00,13.50] 22 0 (268,268,268)
2 [5.97,74.00,28.02] 49 0 (256,256,256)
Personal tools
communication