diff options
author | James Brown | 2002-03-22 03:30:57 +0000 |
---|---|---|
committer | James Brown | 2002-03-22 03:30:57 +0000 |
commit | ce35bfb10d3cb12d356bd9227826555634c66ccc (patch) | |
tree | d8d98f7ce6bb3d425984781d3deaab850ff7debf /akos.h | |
parent | f49bbb0fd8c55e03b573236be853ab023d7c3f93 (diff) | |
download | scummvm-rg350-ce35bfb10d3cb12d356bd9227826555634c66ccc.tar.gz scummvm-rg350-ce35bfb10d3cb12d356bd9227826555634c66ccc.tar.bz2 scummvm-rg350-ce35bfb10d3cb12d356bd9227826555634c66ccc.zip |
Add gfx.h and akos.h
svn-id: r3798
Diffstat (limited to 'akos.h')
-rw-r--r-- | akos.h | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/akos.h b/akos.h new file mode 100644 index 0000000000..59b893d761 --- /dev/null +++ b/akos.h @@ -0,0 +1,115 @@ +struct AkosHeader { + byte x_1[2]; + byte flags; + byte x_2; + uint16 num_anims; + uint16 x_3; + uint16 codec; +} GCC_PACK; + +struct AkosOffset { + uint32 akcd; + uint16 akci; +} GCC_PACK; + +struct AkosCI { + uint16 width,height; + int16 rel_x, rel_y; + int16 move_x, move_y; +} GCC_PACK; + +struct AkosRenderer { + CostumeData *cd; + int x,y; /* where to draw costume */ + byte scale_x, scale_y; /* scaling */ + byte clipping; /* clip mask */ + bool charsetmask; + byte shadow_mode; + uint16 codec; + bool mirror; /* draw actor mirrored */ + byte dirty_id; + byte *outptr; + uint outwidth, outheight; + + /* pointer to various parts of the costume resource */ + byte *akos; + AkosHeader *akhd; + + /* current move offset */ + int move_x, move_y; + /* movement of cel to decode */ + int move_x_cur, move_y_cur; + /* width and height of cel to decode */ + int width,height; + + byte *srcptr; + byte *shadow_table; + + struct { + /* codec stuff */ + const byte *scaletable; + byte mask,shl; + bool doContinue; + byte repcolor; + byte replen; + int scaleXstep; + int x,y; + int tmp_x, tmp_y; + int y_pitch; + int skip_width; + byte *destptr; + byte *mask_ptr; + int imgbufoffs; + } v1; + + /* put less used stuff at the bottom to optimize opcodes */ + int draw_top, draw_bottom; + byte *akpl,*akci,*aksq; + AkosOffset *akof; + byte *akcd; + + byte palette[256]; +}; + +enum AkosOpcodes{ + AKC_Return = 0xC001, + AKC_SetVar = 0xC010, + AKC_CmdQue3 = 0xC015, + AKC_ComplexChan = 0xC020, + AKC_Jump = 0xC030, + AKC_JumpIfSet = 0xC031, + AKC_AddVar = 0xC040, + AKC_Ignore = 0xC050, + AKC_IncVar = 0xC060, + AKC_CmdQue3Quick = 0xC061, + AKC_SkipStart = 0xC070, + AKC_SkipE = 0xC070, + AKC_SkipNE = 0xC071, + AKC_SkipL = 0xC072, + AKC_SkipLE = 0xC073, + AKC_SkipG = 0xC074, + AKC_SkipGE = 0xC075, + AKC_StartAnim = 0xC080, + AKC_StartVarAnim = 0xC081, + AKC_Random = 0xC082, + AKC_SetActorClip = 0xC083, + AKC_StartAnimInActor = 0xC084, + AKC_SetVarInActor = 0xC085, + AKC_HideActor = 0xC086, + AKC_SetDrawOffs = 0xC087, + AKC_JumpTable = 0xC088, + AKC_SoundStuff = 0xC089, + AKC_Flip = 0xC08A, + AKC_Cmd3 = 0xC08B, + AKC_Ignore3 = 0xC08C, + AKC_Ignore2 = 0xC08D, + AKC_JumpStart = 0xC090, + AKC_JumpE = 0xC090, + AKC_JumpNE = 0xC091, + AKC_JumpL = 0xC092, + AKC_JumpLE = 0xC093, + AKC_JumpG = 0xC094, + AKC_JumpGE = 0xC095, + AKC_ClearFlag = 0xC09F +}; + |