annotate Engine/Objects/SpriteObject.h @ 2550:fb42e2662c38

Chest UI refactored to a class
author a.parshin
date Tue, 12 May 2015 11:28:22 +0200
parents 92eeeb5200f2
children 30eb6dcac768
rev   line source
2498
Ritor1
parents:
diff changeset
1 #pragma once
Ritor1
parents:
diff changeset
2 #include "Items.h"
Ritor1
parents:
diff changeset
3
Ritor1
parents:
diff changeset
4 enum
Ritor1
parents:
diff changeset
5 {
Ritor1
parents:
diff changeset
6 OBJECT_40 = 0x40
Ritor1
parents:
diff changeset
7 , OBJECT_ATTACHED_TO_ACTOR = 0x80
Ritor1
parents:
diff changeset
8 };
Ritor1
parents:
diff changeset
9
Ritor1
parents:
diff changeset
10 #define MAX_SPRITE_OBJECTS 1000
Ritor1
parents:
diff changeset
11 /* 72 */
Ritor1
parents:
diff changeset
12 #pragma pack(push, 1)
Ritor1
parents:
diff changeset
13 struct SpriteObject
Ritor1
parents:
diff changeset
14 {
Ritor1
parents:
diff changeset
15 inline bool AttachedToActor() const {return (uAttributes & OBJECT_ATTACHED_TO_ACTOR) != 0;}
Ritor1
parents:
diff changeset
16
Ritor1
parents:
diff changeset
17 SpriteObject();
Ritor1
parents:
diff changeset
18 int Create(int yaw, int pitch, int a4, int a5);
Ritor1
parents:
diff changeset
19 void _46BEF1_apply_spells_aoe();
Ritor1
parents:
diff changeset
20 void ExplosionTraps();
Ritor1
parents:
diff changeset
21
Ritor1
parents:
diff changeset
22 static void UpdateObject_fn0_BLV(unsigned int uLayingItemID);
Ritor1
parents:
diff changeset
23 static void UpdateObject_fn0_ODM(unsigned int uLayingItemID);
Ritor1
parents:
diff changeset
24 static void OnInteraction(unsigned int uLayingItemID);
Ritor1
parents:
diff changeset
25 static bool sub_42F7EB_DropItemAt(unsigned int uSpriteID, int x, int y, int z, int a4, int count, int a7, unsigned __int16 attributes, ItemGen *a9);
Ritor1
parents:
diff changeset
26 static void sub_42F960_create_object(int x, int y, int z);
Ritor1
parents:
diff changeset
27 static void InitializeSpriteObjects();
Ritor1
parents:
diff changeset
28
Ritor1
parents:
diff changeset
29
Ritor1
parents:
diff changeset
30 unsigned __int16 uType;
Ritor1
parents:
diff changeset
31 unsigned __int16 uObjectDescID;
Ritor1
parents:
diff changeset
32 struct Vec3_int_ vPosition;
Ritor1
parents:
diff changeset
33 struct Vec3_short_ vVelocity;
Ritor1
parents:
diff changeset
34 unsigned __int16 uFacing;
Ritor1
parents:
diff changeset
35 unsigned __int16 uSoundID;
Ritor1
parents:
diff changeset
36 unsigned __int16 uAttributes;
Ritor1
parents:
diff changeset
37 __int16 uSectorID;
Ritor1
parents:
diff changeset
38 unsigned __int16 uSpriteFrameID;
Ritor1
parents:
diff changeset
39 __int16 field_20;
Ritor1
parents:
diff changeset
40 __int16 field_22_glow_radius_multiplier;
Ritor1
parents:
diff changeset
41 struct ItemGen stru_24;
Ritor1
parents:
diff changeset
42 int spell_id;
Ritor1
parents:
diff changeset
43 int spell_level;
Ritor1
parents:
diff changeset
44 int spell_skill;
Ritor1
parents:
diff changeset
45 int field_54;
Ritor1
parents:
diff changeset
46 int spell_caster_pid;
Ritor1
parents:
diff changeset
47 int spell_target_pid;
Ritor1
parents:
diff changeset
48 char field_60_distance_related_prolly_lod;
Ritor1
parents:
diff changeset
49 char field_61;
Ritor1
parents:
diff changeset
50 char field_62[2];
Ritor1
parents:
diff changeset
51 Vec3_int_ field_64;
Ritor1
parents:
diff changeset
52 };
Ritor1
parents:
diff changeset
53 #pragma pack(pop)
Ritor1
parents:
diff changeset
54
Ritor1
parents:
diff changeset
55
Ritor1
parents:
diff changeset
56 void CompactLayingItemsList();
Ritor1
parents:
diff changeset
57
Ritor1
parents:
diff changeset
58 extern size_t uNumSpriteObjects;
Ritor1
parents:
diff changeset
59 extern std::array<SpriteObject, MAX_SPRITE_OBJECTS> pSpriteObjects;
Ritor1
parents:
diff changeset
60
Ritor1
parents:
diff changeset
61 bool __fastcall _46BFFA_check_object_intercept(unsigned int uLayingItemID, signed int a2);
Ritor1
parents:
diff changeset
62 void __fastcall sub_43A97E(unsigned int uLayingItemID, signed int a2); // idb