本文整理汇总了C++中Layout::AddPalette方法的典型用法代码示例。如果您正苦于以下问题:C++ Layout::AddPalette方法的具体用法?C++ Layout::AddPalette怎么用?C++ Layout::AddPalette使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Layout
的用法示例。
在下文中一共展示了Layout::AddPalette方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: LoadAnimators
// load keyframes from a brlan file
u32 Animator::LoadAnimators(const RLAN_Header *header, Layout& layout, u8 key_set)
{
u32 frame_count = 0;
if (!header || header->magic != MAGIC_ANIMATION || header->endian != 0xFEFF || header->version != 0x0008)
return 0; // bad header
// first section
const u8 *position = ((const u8 *) header) + header->offset;
for(u32 i = 0; i < header->section_count; ++i)
{
section_t *section = (section_t *) position;
position += section->size;
if (section->magic == MAGIC_PANE_ANIMATION_INFO)
{
const PAI1_Header *pai = (const PAI1_Header *) section;
u16 animator_count = pai->animator_count;
frame_count += pai->frame_count;
// read animation file names
const u32 *nameOffsets = (const u32 *)(pai + 1);
for(u32 i = 0; i < pai->file_count; i++)
{
const char* name = (((const char *) nameOffsets) + nameOffsets[i]);
layout.AddPalette(name, key_set);
}
const u32 *offsets = (const u32 *) (((const u8 *)section) + pai->entry_offset);
// read each animator
for(u32 n = 0; n < animator_count; n++)
{
const AnimatorHeader *animHdr = (const AnimatorHeader *) (((const u8 *)section) + offsets[n]);
std::string anim_name(animHdr->name, 0, 20);
Animator* animator = animHdr->is_material ?
(Animator*) layout.FindMaterial(anim_name) :
(Animator*) layout.FindPane(anim_name);
if (animator)
animator->LoadKeyFrames((const u8 *) animHdr, animHdr->tag_count, sizeof(AnimatorHeader), key_set);
}
}
else
{
debughelper_printf("Unknown: %c%c%c%c\n", position[0], position[1], position[2], position[3]);
}
}
return frame_count;
}