Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <montagne29@wanadoo.fr>2016-07-28 16:21:53 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2016-07-28 20:32:36 +0300
commit66552ca58679590c3ec7268e436e26bb6038eaf3 (patch)
treea786b52fc20a16c6378d4d48cdd3094804529968 /source/blender/makesdna
parent035b40337a0351910486c2f9a5a00b28cde6e939 (diff)
Make ID types typed enum, to easily spot missing ones in core switches of library.c
Note that all deprecated/non-real ID types are kept as defines.
Diffstat (limited to 'source/blender/makesdna')
-rw-r--r--source/blender/makesdna/DNA_ID.h80
1 files changed, 43 insertions, 37 deletions
diff --git a/source/blender/makesdna/DNA_ID.h b/source/blender/makesdna/DNA_ID.h
index bb5d2b4cf29..07df94ee332 100644
--- a/source/blender/makesdna/DNA_ID.h
+++ b/source/blender/makesdna/DNA_ID.h
@@ -213,43 +213,49 @@ typedef struct PreviewImage {
* Written to #BHead.code (for file IO)
* and the first 2 bytes of #ID.name (for runtime checks, see #GS macro).
*/
-#define ID_SCE MAKE_ID2('S', 'C') /* Scene */
-#define ID_LI MAKE_ID2('L', 'I') /* Library */
-#define ID_OB MAKE_ID2('O', 'B') /* Object */
-#define ID_ME MAKE_ID2('M', 'E') /* Mesh */
-#define ID_CU MAKE_ID2('C', 'U') /* Curve */
-#define ID_MB MAKE_ID2('M', 'B') /* MetaBall */
-#define ID_MA MAKE_ID2('M', 'A') /* Material */
-#define ID_TE MAKE_ID2('T', 'E') /* Tex (Texture) */
-#define ID_IM MAKE_ID2('I', 'M') /* Image */
-#define ID_LT MAKE_ID2('L', 'T') /* Lattice */
-#define ID_LA MAKE_ID2('L', 'A') /* Lamp */
-#define ID_CA MAKE_ID2('C', 'A') /* Camera */
-#define ID_IP MAKE_ID2('I', 'P') /* Ipo (depreciated, replaced by FCurves) */
-#define ID_KE MAKE_ID2('K', 'E') /* Key (shape key) */
-#define ID_WO MAKE_ID2('W', 'O') /* World */
-#define ID_SCR MAKE_ID2('S', 'R') /* Screen */
-#define ID_SCRN MAKE_ID2('S', 'N') /* (depreciated?) */
-#define ID_VF MAKE_ID2('V', 'F') /* VFont (Vector Font) */
-#define ID_TXT MAKE_ID2('T', 'X') /* Text */
-#define ID_SPK MAKE_ID2('S', 'K') /* Speaker */
-#define ID_SO MAKE_ID2('S', 'O') /* Sound */
-#define ID_GR MAKE_ID2('G', 'R') /* Group */
-#define ID_ID MAKE_ID2('I', 'D') /* (internal use only) */
-#define ID_AR MAKE_ID2('A', 'R') /* bArmature */
-#define ID_AC MAKE_ID2('A', 'C') /* bAction */
-#define ID_NT MAKE_ID2('N', 'T') /* bNodeTree */
-#define ID_BR MAKE_ID2('B', 'R') /* Brush */
-#define ID_PA MAKE_ID2('P', 'A') /* ParticleSettings */
-#define ID_GD MAKE_ID2('G', 'D') /* bGPdata, (Grease Pencil) */
-#define ID_WM MAKE_ID2('W', 'M') /* WindowManager */
-#define ID_MC MAKE_ID2('M', 'C') /* MovieClip */
-#define ID_MSK MAKE_ID2('M', 'S') /* Mask */
-#define ID_LS MAKE_ID2('L', 'S') /* FreestyleLineStyle */
-#define ID_PAL MAKE_ID2('P', 'L') /* Palette */
-#define ID_PC MAKE_ID2('P', 'C') /* PaintCurve */
-
- /* NOTE! Fake IDs, needed for g.sipo->blocktype or outliner */
+typedef enum ID_Type {
+ ID_SCE = MAKE_ID2('S', 'C'), /* Scene */
+ ID_LI = MAKE_ID2('L', 'I'), /* Library */
+ ID_OB = MAKE_ID2('O', 'B'), /* Object */
+ ID_ME = MAKE_ID2('M', 'E'), /* Mesh */
+ ID_CU = MAKE_ID2('C', 'U'), /* Curve */
+ ID_MB = MAKE_ID2('M', 'B'), /* MetaBall */
+ ID_MA = MAKE_ID2('M', 'A'), /* Material */
+ ID_TE = MAKE_ID2('T', 'E'), /* Tex (Texture) */
+ ID_IM = MAKE_ID2('I', 'M'), /* Image */
+ ID_LT = MAKE_ID2('L', 'T'), /* Lattice */
+ ID_LA = MAKE_ID2('L', 'A'), /* Lamp */
+ ID_CA = MAKE_ID2('C', 'A'), /* Camera */
+ ID_IP = MAKE_ID2('I', 'P'), /* Ipo (depreciated, replaced by FCurves) */
+ ID_KE = MAKE_ID2('K', 'E'), /* Key (shape key) */
+ ID_WO = MAKE_ID2('W', 'O'), /* World */
+ ID_SCR = MAKE_ID2('S', 'R'), /* Screen */
+ ID_VF = MAKE_ID2('V', 'F'), /* VFont (Vector Font) */
+ ID_TXT = MAKE_ID2('T', 'X'), /* Text */
+ ID_SPK = MAKE_ID2('S', 'K'), /* Speaker */
+ ID_SO = MAKE_ID2('S', 'O'), /* Sound */
+ ID_GR = MAKE_ID2('G', 'R'), /* Group */
+ ID_AR = MAKE_ID2('A', 'R'), /* bArmature */
+ ID_AC = MAKE_ID2('A', 'C'), /* bAction */
+ ID_NT = MAKE_ID2('N', 'T'), /* bNodeTree */
+ ID_BR = MAKE_ID2('B', 'R'), /* Brush */
+ ID_PA = MAKE_ID2('P', 'A'), /* ParticleSettings */
+ ID_GD = MAKE_ID2('G', 'D'), /* bGPdata, (Grease Pencil) */
+ ID_WM = MAKE_ID2('W', 'M'), /* WindowManager */
+ ID_MC = MAKE_ID2('M', 'C'), /* MovieClip */
+ ID_MSK = MAKE_ID2('M', 'S'), /* Mask */
+ ID_LS = MAKE_ID2('L', 'S'), /* FreestyleLineStyle */
+ ID_PAL = MAKE_ID2('P', 'L'), /* Palette */
+ ID_PC = MAKE_ID2('P', 'C'), /* PaintCurve */
+} ID_Type;
+
+/* Only used as 'placeholder' in .blend files for directly linked datablocks. */
+#define ID_ID MAKE_ID2('I', 'D') /* (internal use only) */
+
+/* Deprecated. */
+#define ID_SCRN MAKE_ID2('S', 'N')
+
+/* NOTE! Fake IDs, needed for g.sipo->blocktype or outliner */
#define ID_SEQ MAKE_ID2('S', 'Q')
/* constraint */
#define ID_CO MAKE_ID2('C', 'O')