5-1. Flags
The following flags are currently defined for NIFF:
/* Flags for Nintendo Intermediate File Format ver1.0 */ /* SceneList -> scene_cfg */ #define SCENE_CFG_VIDEO_NTSC 0x00000000 #define SCENE_CFG_VIDEO_PAL 0x00000001 #define SCENE_CFG_VIDEO_MPAL 0x00000002 #define SCENE_CFG_GAMMA 0x00000004 #define SCENE_CFG_DITHER 0x00000008 #define SCENE_CFG_DIVOT 0x00000010 /* ObjList -> Obj -> obj_state */ #define OBJ_STATE_CLEAR 0x00000000 #define OBJ_STATE_ACTIVE 0x00000001 /* ObjList -> Obj -> obj_type */ #define OBJ_TYPE_NULL 0x00000000 #define OBJ_TYPE_3D 0x00000001 #define OBJ_TYPE_BILLBOARD 0x00000002 /* ObjList -> Obj -> obj_group */ #define OBJ_GROUP_NONE /* ObjList -> Obj -> obj_render_cycle_type */ #define OBJ_RENDER_CYC_1CYC #define OBJ_RENDER_CYC_2CYC /* ObjList -> Obj -> obj_pri */ #define OBJ_PRI_NONE 0x00000000 /* ObjList -> Obj -> obj_render_pri */ #define OBJ_RENDER_FLAG_NIFF 0x00 #define OBJ_RENDER_FLAG_N64 0x01 #define OBJ_RENDER_NIFF_OPA_SURF 0x00d00000 #define OBJ_RENDER_NIFF_OPA_INTER 0x00b00000 #define OBJ_RENDER_NIFF_OPA_DECAL 0x00900000 #define OBJ_RENDER_NIFF_TEX_EDGE 0x00700000 #define OBJ_RENDER_NIFF_XLU_SURF 0x00500000 #define OBJ_RENDER_NIFF_XLU_INTER 0x00300000 #define OBJ_RENDER_NIFF_XLU_DECAL 0x00100000 /* ObjList -> Obj -> have_link_billboard */ #define ANY_LINK_BILLBOARD 0x00000001 #define NO_LINK_BILLBOARD 0x00000000 /* ObjList -> Obj -> obj_lod_num */ #define OBJ_NOLOD 0x00000000 /* ObjList -> Obj -> obj_lod_dist */ #define OBJ_LOD_DIST_MAX 0xffffffff /* ObjList -> Obj -> obj_child_num */ #define OBJ_NOCHILD 0x00000000 /* ObjList -> Obj -> obj_parent_link */ #define OBJ_NO_PARENT 0xffffffff /* ObjList -> Obj -> obj_mat_link */ #define OBJ_MAT_NOLINK 0xffffffff /* ObjList -> Obj -> obj_anim_link */ #define OBJ_ANIM_NOLINK 0xffffffff /* ObjList -> Obj -> obj_coll_group_link */ #define OBJ_COLL_GROUP_NOLINK 0xffffffff /* ObjList -> Obj -> obj_shape_link */ #define OBJ_NOSHAPE 0xffffffff /* ShapeList -> Shape -> shape_type */ #define SHAPE_TYPE_CLEAR 0x00000000 #define SHAPE_TYPE_AA 0x00000001 #define SHAPE_TYPE_RA 0x00000002 #define SHAPE_TYPE_ZB 0x00000004 #define SHAPE_TYPE_CULL_BACK 0x00000010 #define SHAPE_TYPE_CULL_FRONT 0x00000020 #define SHAPE_TYPE_CULL_BOTH 0x00000030 /* ShapeList -> Shape -> shape_mat_link */ #define SHAPE_MAT_NOLINK 0xffffffff /* ShapeList -> Shape -> shape_part_num */ #define SHAPE_NOPART 0x00000000 /* TriList -> TriGroup -> tri_anim_type */ #define TRI_ANIM_NONE 0x00000000 #define TRI_ANIM_VTX_FULL 0x00000001 #define TRI_ANIM_VTX_KEY 0x00000002 #define TRI_ANIM_TRI_COLOR_FULL 0x00000010 #define TRI_ANIM_TRI_COLOR_KEY 0x00000020 #define TRI_ANIM_VTX_COLOR_FULL 0x00000100 #define TRI_ANIM_VTX_COLOR_KEY 0x00000200 #define TRI_ANIM_TRI_NV_FULL 0x00001000 #define TRI_ANIM_TRI_NV_KEY 0x00002000 #define TRI_ANIM_VTX_NV_FULL 0x00010000 #define TRI_ANIM_VTX_NV_KEY 0x00020000 #define TRI_ANIM_ST_FULL 0x00100000 #define TRI_ANIM_ST_KEY 0x00200000 /* MatList -> Mat -> mat_type */ #define MAT_TYPE_NIFF 0x00000000 #define MAT_TYPE_N64 0x01010101 /* MatList -> Mat -> mat_shade_type */ #define MAT_SHADE_LIGHT_OFF 0x00000000 #define MAT_SHADE_LIGHT_LOCAL 0x00000001 #define MAT_SHADE_LIGHT_GLOBAL 0x00000002 #define MAT_SHADE_FLAT 0x00000000 #define MAT_SHADE_SMOOTH 0x00000010 #define MAT_SHADE_USE_HILIGHT 0x00000100 #define MAT_SHADE_USE_REFLECT 0x00000200 /* MatList -> Mat -> mat_color_type & mat_alpha_type */ /* with MAT_TYPE_NIFF on mat_type */ #define MAT_CC_NIFF_VTX 0x00000001 #define MAT_CC_NIFF_TRI 0x00000002 #define MAT_CC_NIFF_PRIM 0x00000004 #define MAT_CC_NIFF_TEX0 0x00000008 #define MAT_CC_NIFF_TEX1 0x00000010 #define MAT_CC_NIFF_VTX_ALPHA 0x00010000 #define MAT_CC_NIFF_TRI_ALPHA 0x00020000 #define MAT_CC_NIFF_PRIM_ALPHA 0x00040000 #define MAT_CC_NIFF_TEX0_ALPHA 0x00080000 #define MAT_CC_NIFF_TEX1_ALPHA 0x00100000 #define MAT_CC_NIFF_NONE 0xffffffff /* with MAT_TYPE_N64 on mat_type */ #define MAT_CC_N64_COMBINED 0x00 #define MAT_CC_N64_TEX0 0x01 #define MAT_CC_N64_TEX1 0x02 #define MAT_CC_N64_PRIMITIVE 0x03 #define MAT_CC_N64_SHADE 0x04 #define MAT_CC_N64_ENV 0x05 #define MAT_CC_N64_KEY_CENTER 0x10 #define MAT_CC_N64_KEY_SCALE 0x11 #define MAT_CC_N64_COMBINED_ALPHA 0x06 #define MAT_CC_N64_TEX0_ALPHA 0x07 #define MAT_CC_N64_TEX1_ALPHA 0x08 #define MAT_CC_N64_PRIM_ALPHA 0x09 #define MAT_CC_N64_SHADE_ALPHA 0x0a #define MAT_CC_N64_ENV_ALPHA 0x0b #define MAT_CC_N64_LOD 0x0c #define MAT_CC_N64_PRIM_LOD 0x0d #define MAT_CC_N64_NOISE 0x12 #define MAT_CC_N64_K4 0x14 #define MAT_CC_N64_K5 0x15 #define MAT_CC_N64_1 0x0e #define MAT_CC_N64_0 0x0f #define MAT_CC_N64_NONE 0xffffffff /* TexList -> Tex ->tex_type */ #define TEX_FORM_I 0x00000000 #define TEX_FORM_IA 0x00000001 #define TEX_FORM_CI 0x00000002 #define TEX_FORM_YUV 0x00000003 #define TEX_FORM_RGB 0x00000004 #define TEX_FORM_RGBA 0x00000005 #define TEX_DEPTH_4 0x00000000 #define TEX_DEPTH_8 0x00000100 #define TEX_DEPTH_16 0x00000200 #define TEX_DEPTH_32 0x00000400 /* TexList -> Tex -> tex_wrap_s */ #define TEX_WRAP_S 0x00000000 #define TEX_CLAMP_S 0x00000001 #define TEX_MIRROR_S 0x00000002 /* TexList -> Tex -> tex_wrap_t */ #define TEX_WRAP_T 0x00000000 #define TEX_CLAMP_T 0x00000001 #define TEX_MIRROR_T 0x00000002 /* TexList -> Tex -> tex_anim */ #define TEX_ANIM_OFF 0x00000000 #define TEX_ANIM_FLIPBOOK 0x00000001 #define TEX_ANIM_FLIPBOOK_KEY 0x00000002 #define TEX_ANIM_SCROLL_OFFSET 0x00000010 #define TEX_ANIM_SCROLL_OFFSET_KEY 0x00000020 #define TEX_ANIM_SCROLL_SCALE 0x00000100 #define TEX_ANIM_SCROLL_SCALE_KEY 0x00000200 /* TexList -> Tex -> TexDataArea -> tex_tile_scale_num */ #define TEX_TILE_SCALE_NONE 0x00000001 /* TexList -> Tex -> TexDataArea -> tex_tile_offset_num */ #define TEX_TILE_OFFSET_NONE 0x00000001 /* TexList -> Tex -> TexDataArea -> tex_tile_img_num */ #define TEX_FLIPBOOK_NONE 0x00000001 /* AnimList -> AnimGroup -> anim_type */ #define ANIM_TYPE_STATIC 0x00000000 #define ANIM_TYPE_FULL 0x00000002 #define ANIM_TYPE_KEY 0x00000003 #define ANIM_TYPE_BILLBOARD_OBJ 0x00000004 /* AnimList -> AnimGroup -> anim_loop */ #define ANIM_LOOP_ENDLESS 0x00000000 /* AnimList -> AnimGroup -> anim_rot_mtx_order */ #define ANIM_ROT_ORDER_XYZ 0x00010203 #define ANIM_ROT_ORDER_XZY 0x00010302 #define ANIM_ROT_ORDER_YXZ 0x00020103 #define ANIM_ROT_ORDER_YZX 0x00030102 #define ANIM_ROT_ORDER_ZXY 0x00020301 #define ANIM_ROT_ORDER_ZYX 0x00030201 /* AnimList -> AnimGroup -> Anim -> interplation_type */ #define INTERPOLATION_STATIC 0x00000000 #define INTERPOLATION_LINEAR 0x00000001 #define INTERPOLATION_SLOWIN 0x00000002 #define INTERPOLATION_SLOWOUT 0x00000004 #define INTERPOLATION_SLOW 0x00000006 /* CollList -> CollGroup -> Coll -> coll_type */ #define COLL_TYPE_NONE 0x00000000 #define COLL_TYPE_TERRAIN 0x00000010 #define COLL_TYPE_POINT 0x00000020 #define COLL_TYPE_CIRCLE 0x00000021 #define COLL_TYPE_SPHERE 0x00000022 #define COLL_TYPE_CYLINDER 0x00000023 #define COLL_TYPE_BOX 0x00000024 /* CamList -> Cam -> cam_type */ #define CAM_TYPE_PERSP 0x00000000 #define CAM_TYPE_ORTHO 0x00000001 /* LightList -> Light -> light_type */ #define LIGHT_TYPE_DIRECTION 0x00000000 #define LIGHT_TYPE_POSITION 0x00000001 /* EnvList -> Env -> fog */ #define ENV_FOG_USE 0x00000001 #define ENV_FOG_NONE 0x00000000 /* EnvList -> Env -> fill_color */ #define FILL_COLOR_NONE 0xffffffff /* EnvList -> Env -> fill_depth */ #define FILL_DEPTH_NONE 0xffffffff /* EnvList -> Env -> bg_sprite_img */ #define BG_COLOR_IMG_NONE 0xffffffff /* EnvList -> Env -> bg_sprite_depth */ #define BG_DEPTH_IMG_NONE 0xffffffff