More .dat object properties are now parsed.

This commit is contained in:
Daan Vanden Bosch 2019-08-12 20:34:47 +02:00
parent 1a1a52bd43
commit 206cc3ebb0
7 changed files with 195 additions and 145 deletions

View File

@ -134,5 +134,6 @@ Features that are in ***bold italics*** are planned and not yet implemented.
- Forest Laser - Forest Laser
- Switch (none door) - Switch (none door)
- Energy Barrier - Energy Barrier
- Teleporter
- [Load Quest](#load-quest): Can't parse quest 4 - [Load Quest](#load-quest): Can't parse quest 4
- [Load Quest](#load-quest): Can't parse quest 125 White Day - [Load Quest](#load-quest): Can't parse quest 125 White Day

View File

@ -27,7 +27,12 @@ export type DatEntity = {
unknown: number[][]; unknown: number[][];
}; };
export type DatObject = DatEntity; export type DatObject = DatEntity & {
id: number;
group_id: number;
object_id: number;
action: number;
};
export type DatNpc = DatEntity & { export type DatNpc = DatEntity & {
skin: number; skin: number;
@ -69,7 +74,9 @@ export function parse_dat(cursor: Cursor): DatFile {
for (let i = 0; i < object_count; ++i) { for (let i = 0; i < object_count; ++i) {
const type_id = cursor.u16(); const type_id = cursor.u16();
const unknown1 = cursor.u8_array(10); const unknown1 = cursor.u8_array(6);
const id = cursor.u16();
const group_id = cursor.u16();
const section_id = cursor.u16(); const section_id = cursor.u16();
const unknown2 = cursor.u8_array(2); const unknown2 = cursor.u8_array(2);
const position = cursor.vec3_f32(); const position = cursor.vec3_f32();
@ -77,14 +84,20 @@ export function parse_dat(cursor: Cursor): DatFile {
const rotation_y = (cursor.i32() / 0xffff) * 2 * Math.PI; const rotation_y = (cursor.i32() / 0xffff) * 2 * Math.PI;
const rotation_z = (cursor.i32() / 0xffff) * 2 * Math.PI; const rotation_z = (cursor.i32() / 0xffff) * 2 * Math.PI;
const scale = cursor.vec3_f32(); const scale = cursor.vec3_f32();
const unknown3 = cursor.u8_array(16); const object_id = cursor.u32();
const action = cursor.u32();
const unknown3 = cursor.u8_array(8);
objs.push({ objs.push({
type_id, type_id,
id,
group_id,
section_id, section_id,
position, position,
rotation: new Vec3(rotation_x, rotation_y, rotation_z), rotation: new Vec3(rotation_x, rotation_y, rotation_z),
scale, scale,
object_id,
action,
area_id, area_id,
unknown: [unknown1, unknown2, unknown3], unknown: [unknown1, unknown2, unknown3],
}); });
@ -180,10 +193,12 @@ export function write_dat({ objs, npcs, unknowns }: DatFile): ResizableBuffer {
cursor.write_u16(obj.type_id); cursor.write_u16(obj.type_id);
if (obj.unknown[0].length !== 10) if (obj.unknown[0].length !== 6)
throw new Error(`unknown[0] should be of length 10, was ${obj.unknown[0].length}`); throw new Error(`unknown[0] should be of length 6, was ${obj.unknown[0].length}`);
cursor.write_u8_array(obj.unknown[0]); cursor.write_u8_array(obj.unknown[0]);
cursor.write_u16(obj.id);
cursor.write_u16(obj.group_id);
cursor.write_u16(obj.section_id); cursor.write_u16(obj.section_id);
if (obj.unknown[1].length !== 2) if (obj.unknown[1].length !== 2)
@ -195,9 +210,11 @@ export function write_dat({ objs, npcs, unknowns }: DatFile): ResizableBuffer {
cursor.write_i32(Math.round((obj.rotation.y / (2 * Math.PI)) * 0xffff)); cursor.write_i32(Math.round((obj.rotation.y / (2 * Math.PI)) * 0xffff));
cursor.write_i32(Math.round((obj.rotation.z / (2 * Math.PI)) * 0xffff)); cursor.write_i32(Math.round((obj.rotation.z / (2 * Math.PI)) * 0xffff));
cursor.write_vec3_f32(obj.scale); cursor.write_vec3_f32(obj.scale);
cursor.write_u32(obj.object_id);
cursor.write_u32(obj.action);
if (obj.unknown[2].length !== 16) if (obj.unknown[2].length !== 8)
throw new Error(`unknown[2] should be of length 16, was ${obj.unknown[2].length}`); throw new Error(`unknown[2] should be of length 8, was ${obj.unknown[2].length}`);
cursor.write_u8_array(obj.unknown[2]); cursor.write_u8_array(obj.unknown[2]);
} }

View File

@ -13,6 +13,9 @@ export type QuestNpc = {
*/ */
readonly position: Vec3; readonly position: Vec3;
readonly rotation: Vec3; readonly rotation: Vec3;
/**
* Seemingly 3 floats, not sure what they represent.
*/
readonly scale: Vec3; readonly scale: Vec3;
/** /**
* Data of which the purpose hasn't been discovered yet. * Data of which the purpose hasn't been discovered yet.
@ -24,8 +27,12 @@ export type QuestNpc = {
export type QuestObject = { export type QuestObject = {
readonly type: ObjectType; readonly type: ObjectType;
readonly id: number;
readonly group_id: number;
readonly area_id: number; readonly area_id: number;
readonly section_id: number; readonly section_id: number;
readonly object_id: number;
readonly action: number;
/** /**
* Section-relative position * Section-relative position
*/ */

View File

@ -206,8 +206,12 @@ function parse_obj_data(objs: DatObject[]): QuestObject[] {
return objs.map(obj_data => { return objs.map(obj_data => {
return { return {
type: pso_id_to_object_type(obj_data.type_id), type: pso_id_to_object_type(obj_data.type_id),
id: obj_data.id,
group_id: obj_data.group_id,
area_id: obj_data.area_id, area_id: obj_data.area_id,
section_id: obj_data.section_id, section_id: obj_data.section_id,
object_id: obj_data.object_id,
action: obj_data.action,
position: obj_data.position, position: obj_data.position,
rotation: obj_data.rotation, rotation: obj_data.rotation,
scale: obj_data.scale, scale: obj_data.scale,
@ -511,10 +515,14 @@ function get_npc_type(episode: number, { type_id, scale, skin, area_id }: DatNpc
function objects_to_dat_data(objects: QuestObject[]): DatObject[] { function objects_to_dat_data(objects: QuestObject[]): DatObject[] {
return objects.map(object => ({ return objects.map(object => ({
type_id: object_data(object.type).pso_id!, type_id: object_data(object.type).pso_id!,
id: object.id,
group_id: object.group_id,
section_id: object.section_id, section_id: object.section_id,
position: object.position, position: object.position,
rotation: object.rotation, rotation: object.rotation,
scale: object.scale, scale: object.scale,
object_id: object.object_id,
action: object.action,
area_id: object.area_id, area_id: object.area_id,
unknown: object.unknown, unknown: object.unknown,
})); }));

View File

@ -102,14 +102,22 @@ export abstract class ObservableQuestEntity<Type extends EntityType = EntityType
} }
export class ObservableQuestObject extends ObservableQuestEntity<ObjectType> { export class ObservableQuestObject extends ObservableQuestEntity<ObjectType> {
@observable type: ObjectType; readonly id: number;
readonly group_id: number;
readonly object_id: number;
readonly action: number;
/** /**
* Data of which the purpose hasn't been discovered yet. * Data of which the purpose hasn't been discovered yet.
*/ */
unknown: number[][]; readonly unknown: number[][];
constructor( constructor(
type: ObjectType, type: ObjectType,
id: number,
group_id: number,
object_id: number,
action: number,
area_id: number, area_id: number,
section_id: number, section_id: number,
position: Vec3, position: Vec3,
@ -119,19 +127,21 @@ export class ObservableQuestObject extends ObservableQuestEntity<ObjectType> {
) { ) {
super(type, area_id, section_id, position, rotation, scale); super(type, area_id, section_id, position, rotation, scale);
this.type = type; this.id = id;
this.group_id = group_id;
this.object_id = object_id;
this.action = action;
this.unknown = unknown; this.unknown = unknown;
} }
} }
export class ObservableQuestNpc extends ObservableQuestEntity<NpcType> { export class ObservableQuestNpc extends ObservableQuestEntity<NpcType> {
@observable type: NpcType; readonly pso_type_id: number;
pso_type_id: number; readonly pso_skin: number;
pso_skin: number;
/** /**
* Data of which the purpose hasn't been discovered yet. * Data of which the purpose hasn't been discovered yet.
*/ */
unknown: number[][]; readonly unknown: number[][];
constructor( constructor(
type: NpcType, type: NpcType,
@ -146,7 +156,6 @@ export class ObservableQuestNpc extends ObservableQuestEntity<NpcType> {
) { ) {
super(type, area_id, section_id, position, rotation, scale); super(type, area_id, section_id, position, rotation, scale);
this.type = type;
this.pso_type_id = pso_type_id; this.pso_type_id = pso_type_id;
this.pso_skin = pso_skin; this.pso_skin = pso_skin;
this.unknown = unknown; this.unknown = unknown;

View File

@ -102,6 +102,10 @@ class QuestEditorStore {
obj => obj =>
new ObservableQuestObject( new ObservableQuestObject(
obj.type, obj.type,
obj.id,
obj.group_id,
obj.object_id,
obj.action,
obj.area_id, obj.area_id,
obj.section_id, obj.section_id,
obj.position, obj.position,
@ -176,6 +180,10 @@ class QuestEditorStore {
rotation: obj.rotation, rotation: obj.rotation,
scale: obj.scale, scale: obj.scale,
unknown: obj.unknown, unknown: obj.unknown,
id: obj.id,
group_id: obj.group_id,
object_id: obj.object_id,
action: obj.action,
})), })),
npcs: quest.npcs.map(npc => ({ npcs: quest.npcs.map(npc => ({
type: npc.type, type: npc.type,

View File

@ -84,341 +84,341 @@ function create_default_objects(): ObservableQuestObject[] {
return [ return [
new ObservableQuestObject( new ObservableQuestObject(
ObjectType.MenuActivation, ObjectType.MenuActivation,
16384,
0,
1,
0,
0, 0,
10, 10,
new Vec3(-16.313568115234375, 3, -579.5118408203125), new Vec3(-16.313568115234375, 3, -579.5118408203125),
new Vec3(0.0009587526218325454, 0, 0), new Vec3(0.0009587526218325454, 0, 0),
new Vec3(1, 1, 1), new Vec3(1, 1, 1),
[ [[2, 0, 0, 0, 0, 0], [0, 0], [0, 0, 0, 0, 128, 75, 251, 140]],
[2, 0, 0, 0, 0, 0, 0, 64, 0, 0],
[0, 0],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 75, 251, 140],
],
), ),
new ObservableQuestObject( new ObservableQuestObject(
ObjectType.MenuActivation, ObjectType.MenuActivation,
16385,
0,
0,
0,
0, 0,
10, 10,
new Vec3(-393.07318115234375, 10, -12.964752197265625), new Vec3(-393.07318115234375, 10, -12.964752197265625),
new Vec3(0, 0, 0), new Vec3(0, 0, 0),
new Vec3(9.183549615799121e-41, 1.0000011920928955, 1), new Vec3(9.183549615799121e-41, 1.0000011920928955, 1),
[ [[2, 0, 1, 0, 0, 0], [0, 0], [0, 0, 0, 0, 32, 76, 251, 140]],
[2, 0, 1, 0, 0, 0, 1, 64, 0, 0],
[0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 76, 251, 140],
],
), ),
new ObservableQuestObject( new ObservableQuestObject(
ObjectType.MenuActivation, ObjectType.MenuActivation,
16386,
0,
2,
65536,
0, 0,
10, 10,
new Vec3(-458.60699462890625, 10, -51.270660400390625), new Vec3(-458.60699462890625, 10, -51.270660400390625),
new Vec3(0, 0, 0), new Vec3(0, 0, 0),
new Vec3(1, 1, 1), new Vec3(1, 1, 1),
[ [[2, 0, 2, 0, 0, 0], [0, 0], [10, 0, 0, 0, 192, 76, 251, 140]],
[2, 0, 2, 0, 0, 0, 2, 64, 0, 0],
[0, 0],
[2, 0, 0, 0, 0, 0, 1, 0, 10, 0, 0, 0, 192, 76, 251, 140],
],
), ),
new ObservableQuestObject( new ObservableQuestObject(
ObjectType.MenuActivation, ObjectType.MenuActivation,
16387,
0,
3,
0,
0, 0,
10, 10,
new Vec3(-430.19696044921875, 10, -24.490447998046875), new Vec3(-430.19696044921875, 10, -24.490447998046875),
new Vec3(0, 0, 0), new Vec3(0, 0, 0),
new Vec3(1, 1, 1), new Vec3(1, 1, 1),
[ [[2, 0, 3, 0, 0, 0], [0, 0], [0, 0, 0, 0, 96, 77, 251, 140]],
[2, 0, 3, 0, 0, 0, 3, 64, 0, 0],
[0, 0],
[3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 77, 251, 140],
],
), ),
new ObservableQuestObject( new ObservableQuestObject(
ObjectType.PlayerSet, ObjectType.PlayerSet,
16388,
0,
0,
0,
0, 0,
10, 10,
new Vec3(0.995330810546875, 0, -37.0010986328125), new Vec3(0.995330810546875, 0, -37.0010986328125),
new Vec3(0, 4.712460886831327, 0), new Vec3(0, 4.712460886831327, 0),
new Vec3(0, 1, 1), new Vec3(0, 1, 1),
[ [[2, 0, 4, 0, 0, 0], [0, 0], [0, 0, 0, 0, 0, 78, 251, 140]],
[2, 0, 4, 0, 0, 0, 4, 64, 0, 0],
[0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 251, 140],
],
), ),
new ObservableQuestObject( new ObservableQuestObject(
ObjectType.PlayerSet, ObjectType.PlayerSet,
16389,
0,
0,
0,
0, 0,
10, 10,
new Vec3(3.0009307861328125, 0, -23.99688720703125), new Vec3(3.0009307861328125, 0, -23.99688720703125),
new Vec3(0, 4.859725289544806, 0), new Vec3(0, 4.859725289544806, 0),
new Vec3(1.000000238418579, 1, 1), new Vec3(1.000000238418579, 1, 1),
[ [[2, 0, 5, 0, 0, 0], [0, 0], [0, 0, 0, 0, 160, 78, 251, 140]],
[2, 0, 5, 0, 0, 0, 5, 64, 0, 0],
[0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 78, 251, 140],
],
), ),
new ObservableQuestObject( new ObservableQuestObject(
ObjectType.PlayerSet, ObjectType.PlayerSet,
16390,
0,
0,
0,
0, 0,
10, 10,
new Vec3(2.0015106201171875, 0, -50.00386047363281), new Vec3(2.0015106201171875, 0, -50.00386047363281),
new Vec3(0, 4.565196484117848, 0), new Vec3(0, 4.565196484117848, 0),
new Vec3(2.000002384185791, 1, 1), new Vec3(2.000002384185791, 1, 1),
[ [[2, 0, 6, 0, 0, 0], [0, 0], [0, 0, 0, 0, 64, 79, 251, 140]],
[2, 0, 6, 0, 0, 0, 6, 64, 0, 0],
[0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 79, 251, 140],
],
), ),
new ObservableQuestObject( new ObservableQuestObject(
ObjectType.PlayerSet, ObjectType.PlayerSet,
16391,
0,
65536,
10,
0, 0,
10, 10,
new Vec3(4.9973907470703125, 0, -61.99664306640625), new Vec3(4.9973907470703125, 0, -61.99664306640625),
new Vec3(0, 4.368843947166543, 0), new Vec3(0, 4.368843947166543, 0),
new Vec3(3.0000007152557373, 1, 1), new Vec3(3.0000007152557373, 1, 1),
[ [[2, 0, 7, 0, 0, 0], [0, 0], [0, 0, 0, 0, 224, 79, 251, 140]],
[2, 0, 7, 0, 0, 0, 7, 64, 0, 0],
[0, 0],
[0, 0, 1, 0, 10, 0, 0, 0, 0, 0, 0, 0, 224, 79, 251, 140],
],
), ),
new ObservableQuestObject( new ObservableQuestObject(
ObjectType.MainRagolTeleporter, ObjectType.MainRagolTeleporter,
18264,
0,
1,
0,
0, 0,
10, 10,
new Vec3(132.00314331054688, 1.000000238418579, -265.002197265625), new Vec3(132.00314331054688, 1.000000238418579, -265.002197265625),
new Vec3(0, 0.49088134237826325, 0), new Vec3(0, 0.49088134237826325, 0),
new Vec3(1.000000238418579, 1, 1), new Vec3(1.000000238418579, 1, 1),
[ [[0, 0, 87, 7, 0, 0], [0, 0], [0, 0, 0, 0, 208, 128, 250, 140]],
[0, 0, 87, 7, 0, 0, 88, 71, 0, 0],
[0, 0],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 128, 250, 140],
],
), ),
new ObservableQuestObject( new ObservableQuestObject(
ObjectType.PrincipalWarp, ObjectType.PrincipalWarp,
16393,
0,
0,
65536,
0, 0,
10, 10,
new Vec3(-228, 0, -2020.99951171875), new Vec3(-228, 0, -2020.99951171875),
new Vec3(0, 2.9452880542695796, 0), new Vec3(0, 2.9452880542695796, 0),
new Vec3(-10.000004768371582, 0, -30.000030517578125), new Vec3(-10.000004768371582, 0, -30.000030517578125),
[ [[2, 0, 9, 0, 0, 0], [0, 0], [0, 0, 1, 0, 176, 81, 251, 140]],
[2, 0, 9, 0, 0, 0, 9, 64, 0, 0],
[0, 0],
[0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 176, 81, 251, 140],
],
), ),
new ObservableQuestObject( new ObservableQuestObject(
ObjectType.MenuActivation, ObjectType.MenuActivation,
16394,
0,
4,
0,
0, 0,
10, 10,
new Vec3(-41.000030517578125, 0, 42.37322998046875), new Vec3(-41.000030517578125, 0, 42.37322998046875),
new Vec3(0, 0, 0), new Vec3(0, 0, 0),
new Vec3(1, 1, 1), new Vec3(1, 1, 1),
[ [[2, 0, 10, 0, 0, 0], [1, 0], [0, 0, 0, 0, 224, 82, 251, 140]],
[2, 0, 10, 0, 0, 0, 10, 64, 0, 0],
[1, 0],
[4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 82, 251, 140],
],
), ),
new ObservableQuestObject( new ObservableQuestObject(
ObjectType.MenuActivation, ObjectType.MenuActivation,
16395,
0,
5,
0,
0, 0,
10, 10,
new Vec3(-479.21673583984375, 8.781256675720215, -322.465576171875), new Vec3(-479.21673583984375, 8.781256675720215, -322.465576171875),
new Vec3(6.28328118244177, 0.0009587526218325454, 0), new Vec3(6.28328118244177, 0.0009587526218325454, 0),
new Vec3(1, 1, 1), new Vec3(1, 1, 1),
[ [[2, 0, 11, 0, 0, 0], [0, 0], [0, 0, 0, 0, 128, 83, 251, 140]],
[2, 0, 11, 0, 0, 0, 11, 64, 0, 0],
[0, 0],
[5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 83, 251, 140],
],
), ),
new ObservableQuestObject( new ObservableQuestObject(
ObjectType.PrincipalWarp, ObjectType.PrincipalWarp,
16396,
0,
32768,
0,
0, 0,
10, 10,
new Vec3(-228, 0, -351.0015869140625), new Vec3(-228, 0, -351.0015869140625),
new Vec3(0, 0, 0), new Vec3(0, 0, 0),
new Vec3(10.000006675720215, 0, -1760.0010986328125), new Vec3(10.000006675720215, 0, -1760.0010986328125),
[ [[2, 0, 12, 0, 0, 0], [0, 0], [0, 0, 0, 0, 32, 84, 251, 140]],
[2, 0, 12, 0, 0, 0, 12, 64, 0, 0],
[0, 0],
[0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 84, 251, 140],
],
), ),
new ObservableQuestObject( new ObservableQuestObject(
ObjectType.TelepipeLocation, ObjectType.TelepipeLocation,
16397,
0,
0,
0,
0, 0,
10, 10,
new Vec3(-561.88232421875, 0, -406.8829345703125), new Vec3(-561.88232421875, 0, -406.8829345703125),
new Vec3(0, 0, 0), new Vec3(0, 0, 0),
new Vec3(1, 1, 1), new Vec3(1, 1, 1),
[ [[2, 0, 13, 0, 0, 0], [0, 0], [0, 0, 0, 0, 80, 85, 251, 140]],
[2, 0, 13, 0, 0, 0, 13, 64, 0, 0],
[0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 85, 251, 140],
],
), ),
new ObservableQuestObject( new ObservableQuestObject(
ObjectType.TelepipeLocation, ObjectType.TelepipeLocation,
16398,
0,
1,
0,
0, 0,
10, 10,
new Vec3(-547.8557739257812, 0, -444.8822326660156), new Vec3(-547.8557739257812, 0, -444.8822326660156),
new Vec3(0, 0, 0), new Vec3(0, 0, 0),
new Vec3(1, 1, 1), new Vec3(1, 1, 1),
[ [[2, 0, 14, 0, 0, 0], [0, 0], [0, 0, 0, 0, 16, 86, 251, 140]],
[2, 0, 14, 0, 0, 0, 14, 64, 0, 0],
[0, 0],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 86, 251, 140],
],
), ),
new ObservableQuestObject( new ObservableQuestObject(
ObjectType.TelepipeLocation, ObjectType.TelepipeLocation,
16399,
0,
3,
0,
0, 0,
10, 10,
new Vec3(-486.441650390625, 0, -497.4501647949219), new Vec3(-486.441650390625, 0, -497.4501647949219),
new Vec3(0, 0, 0), new Vec3(0, 0, 0),
new Vec3(9.183549615799121e-41, 1.0000011920928955, 1), new Vec3(9.183549615799121e-41, 1.0000011920928955, 1),
[ [[2, 0, 15, 0, 0, 0], [0, 0], [0, 0, 0, 0, 208, 86, 251, 140]],
[2, 0, 15, 0, 0, 0, 15, 64, 0, 0],
[0, 0],
[3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 86, 251, 140],
],
), ),
new ObservableQuestObject( new ObservableQuestObject(
ObjectType.TelepipeLocation, ObjectType.TelepipeLocation,
16400,
0,
2,
65536,
0, 0,
10, 10,
new Vec3(-522.4052734375, 0, -474.1882629394531), new Vec3(-522.4052734375, 0, -474.1882629394531),
new Vec3(0, 0, 0), new Vec3(0, 0, 0),
new Vec3(1, 1, 1), new Vec3(1, 1, 1),
[ [[2, 0, 16, 0, 0, 0], [0, 0], [10, 0, 0, 0, 144, 87, 251, 140]],
[2, 0, 16, 0, 0, 0, 16, 64, 0, 0],
[0, 0],
[2, 0, 0, 0, 0, 0, 1, 0, 10, 0, 0, 0, 144, 87, 251, 140],
],
), ),
new ObservableQuestObject( new ObservableQuestObject(
ObjectType.MedicalCenterDoor, ObjectType.MedicalCenterDoor,
16401,
0,
1,
0,
0, 0,
10, 10,
new Vec3(-34.49853515625, 0, -384.4951171875), new Vec3(-34.49853515625, 0, -384.4951171875),
new Vec3(0, 5.497871034636549, 0), new Vec3(0, 5.497871034636549, 0),
new Vec3(3.0000007152557373, 1, 1), new Vec3(3.0000007152557373, 1, 1),
[ [[2, 0, 17, 0, 0, 0], [0, 0], [0, 0, 0, 0, 80, 88, 251, 140]],
[2, 0, 17, 0, 0, 0, 17, 64, 0, 0],
[0, 0],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 88, 251, 140],
],
), ),
new ObservableQuestObject( new ObservableQuestObject(
ObjectType.ShopDoor, ObjectType.ShopDoor,
16402,
0,
1,
0,
0, 0,
10, 10,
new Vec3(-393.0031433105469, 0, -143.49981689453125), new Vec3(-393.0031433105469, 0, -143.49981689453125),
new Vec3(0, 3.141640591220885, 0), new Vec3(0, 3.141640591220885, 0),
new Vec3(3.0000007152557373, 1, 1), new Vec3(3.0000007152557373, 1, 1),
[ [[2, 0, 18, 0, 0, 0], [0, 0], [0, 0, 0, 0, 80, 89, 251, 140]],
[2, 0, 18, 0, 0, 0, 18, 64, 0, 0],
[0, 0],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 89, 251, 140],
],
), ),
new ObservableQuestObject( new ObservableQuestObject(
ObjectType.MenuActivation, ObjectType.MenuActivation,
16403,
0,
6,
0,
0, 0,
10, 10,
new Vec3(-355.17462158203125, 0, -43.15193176269531), new Vec3(-355.17462158203125, 0, -43.15193176269531),
new Vec3(0, 0, 0), new Vec3(0, 0, 0),
new Vec3(1.000000238418579, 1, 1), new Vec3(1.000000238418579, 1, 1),
[ [[2, 0, 19, 0, 0, 0], [0, 0], [0, 0, 0, 0, 80, 90, 251, 140]],
[2, 0, 19, 0, 0, 0, 19, 64, 0, 0],
[0, 0],
[6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 90, 251, 140],
],
), ),
new ObservableQuestObject( new ObservableQuestObject(
ObjectType.HuntersGuildDoor, ObjectType.HuntersGuildDoor,
16404,
0,
1,
0,
0, 0,
10, 10,
new Vec3(-43.00239562988281, 0, -118.00120544433594), new Vec3(-43.00239562988281, 0, -118.00120544433594),
new Vec3(0, 3.141640591220885, 0), new Vec3(0, 3.141640591220885, 0),
new Vec3(3.0000007152557373, 1, 1), new Vec3(3.0000007152557373, 1, 1),
[ [[2, 0, 20, 0, 0, 0], [0, 0], [0, 0, 0, 0, 240, 90, 251, 140]],
[2, 0, 20, 0, 0, 0, 20, 64, 0, 0],
[0, 0],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 90, 251, 140],
],
), ),
new ObservableQuestObject( new ObservableQuestObject(
ObjectType.TeleporterDoor, ObjectType.TeleporterDoor,
16405,
0,
1,
0,
0, 0,
10, 10,
new Vec3(26.000823974609375, 0, -265.99810791015625), new Vec3(26.000823974609375, 0, -265.99810791015625),
new Vec3(0, 3.141640591220885, 0), new Vec3(0, 3.141640591220885, 0),
new Vec3(3.0000007152557373, 1, 1), new Vec3(3.0000007152557373, 1, 1),
[ [[2, 0, 21, 0, 0, 0], [0, 0], [0, 0, 0, 0, 240, 91, 251, 140]],
[2, 0, 21, 0, 0, 0, 21, 64, 0, 0],
[0, 0],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 91, 251, 140],
],
), ),
new ObservableQuestObject( new ObservableQuestObject(
ObjectType.PlayerSet, ObjectType.PlayerSet,
16406,
0,
1,
0,
0, 0,
10, 10,
new Vec3(57.81005859375, 0, -268.5472412109375), new Vec3(57.81005859375, 0, -268.5472412109375),
new Vec3(0, 4.712460886831327, 0), new Vec3(0, 4.712460886831327, 0),
new Vec3(0, 1, 1), new Vec3(0, 1, 1),
[ [[2, 0, 22, 0, 0, 0], [0, 0], [0, 0, 0, 0, 240, 92, 251, 140]],
[2, 0, 22, 0, 0, 0, 22, 64, 0, 0],
[0, 0],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 92, 251, 140],
],
), ),
new ObservableQuestObject( new ObservableQuestObject(
ObjectType.PlayerSet, ObjectType.PlayerSet,
16407,
0,
1,
0,
0, 0,
10, 10,
new Vec3(66.769287109375, 0, -252.3748779296875), new Vec3(66.769287109375, 0, -252.3748779296875),
new Vec3(0, 4.712460886831327, 0), new Vec3(0, 4.712460886831327, 0),
new Vec3(1.000000238418579, 1, 1), new Vec3(1.000000238418579, 1, 1),
[ [[2, 0, 23, 0, 0, 0], [0, 0], [0, 0, 0, 0, 144, 93, 251, 140]],
[2, 0, 23, 0, 0, 0, 23, 64, 0, 0],
[0, 0],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 93, 251, 140],
],
), ),
new ObservableQuestObject( new ObservableQuestObject(
ObjectType.PlayerSet, ObjectType.PlayerSet,
16408,
0,
1,
0,
0, 0,
10, 10,
new Vec3(67.36819458007812, 0, -284.9297180175781), new Vec3(67.36819458007812, 0, -284.9297180175781),
new Vec3(0, 4.712460886831327, 0), new Vec3(0, 4.712460886831327, 0),
new Vec3(2.000000476837158, 1, 1), new Vec3(2.000000476837158, 1, 1),
[ [[2, 0, 24, 0, 0, 0], [0, 0], [0, 0, 0, 0, 48, 94, 251, 140]],
[2, 0, 24, 0, 0, 0, 24, 64, 0, 0],
[0, 0],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 94, 251, 140],
],
), ),
new ObservableQuestObject( new ObservableQuestObject(
ObjectType.PlayerSet, ObjectType.PlayerSet,
16409,
0,
1,
0,
0, 0,
10, 10,
new Vec3(77.10488891601562, 0, -269.2830505371094), new Vec3(77.10488891601562, 0, -269.2830505371094),
new Vec3(0, 4.712460886831327, 0), new Vec3(0, 4.712460886831327, 0),
new Vec3(3.0000007152557373, 1, 1), new Vec3(3.0000007152557373, 1, 1),
[ [[2, 0, 25, 0, 0, 0], [0, 0], [0, 0, 0, 0, 208, 94, 251, 140]],
[2, 0, 25, 0, 0, 0, 25, 64, 0, 0],
[0, 0],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 94, 251, 140],
],
), ),
]; ];
} }