Skip to content

Commit

Permalink
Import hode 0.2.1
Browse files Browse the repository at this point in the history
  • Loading branch information
usineur committed Nov 4, 2019
1 parent 4e950f4 commit 5202b37
Show file tree
Hide file tree
Showing 23 changed files with 1,023 additions and 974 deletions.
2 changes: 1 addition & 1 deletion README.txt
@@ -1,6 +1,6 @@

hode README
Release version: 0.2.0
Release version: 0.2.1
-------------------------------------------------------------------------------


Expand Down
20 changes: 9 additions & 11 deletions andy.cpp
Expand Up @@ -1569,9 +1569,8 @@ void Game::updateAndyObject(LvlObject *ptr) {
ash = (LvlAnimSeqHeader *)(dat->animsInfoData + ah->seqOffset) + currentAnimFrame;
asfh = &asfh[count];

const uint8_t *bitmap = _res->getLvlSpriteFramePtr(dat, ash->firstFrame);
int w = READ_LE_UINT16(bitmap + 2);
int h = READ_LE_UINT16(bitmap + 4);
uint16_t w, h;
_res->getLvlSpriteFramePtr(dat, ash->firstFrame, &w, &h);

ptr->flags1 = ((ptr->flags1 & 0x30) ^ ((asfh->unk5 & 3) << 4)) | (ptr->flags1 & ~0x30);
int type = (ptr->flags1 >> 4) & 3;
Expand All @@ -1598,7 +1597,8 @@ void Game::updateAndyObject(LvlObject *ptr) {
} else {
sameAnim:

const uint8_t *frame1 = _res->getLvlSpriteFramePtr(dat, ash->firstFrame);
uint16_t frame1_w, frame1_h;
_res->getLvlSpriteFramePtr(dat, ash->firstFrame, &frame1_w, &frame1_h);

++currentAnimFrame;
if (currentAnimFrame >= ah->seqCount) {
Expand All @@ -1607,10 +1607,11 @@ void Game::updateAndyObject(LvlObject *ptr) {

ash = (LvlAnimSeqHeader *)(dat->animsInfoData + ah->seqOffset) + currentAnimFrame;

const uint8_t *frame2 = _res->getLvlSpriteFramePtr(dat, ash->firstFrame);
uint16_t frame2_w, frame2_h;
_res->getLvlSpriteFramePtr(dat, ash->firstFrame, &frame2_w, &frame2_h);

int dw = READ_LE_UINT16(frame2 + 2) - READ_LE_UINT16(frame1 + 2);
int dh = READ_LE_UINT16(frame2 + 4) - READ_LE_UINT16(frame1 + 4);
int dw = frame2_w - frame1_w;
int dh = frame2_h - frame1_h;

const int type = (ptr->flags1 >> 4) & 3;
switch (type) {
Expand Down Expand Up @@ -1647,10 +1648,7 @@ void Game::updateAndyObject(LvlObject *ptr) {

ptr->currentSprite = ash->firstFrame;

ptr->bitmapBits = _res->getLvlSpriteFramePtr(dat, ash->firstFrame);

ptr->width = READ_LE_UINT16(ptr->bitmapBits + 2);
ptr->height = READ_LE_UINT16(ptr->bitmapBits + 4);
ptr->bitmapBits = _res->getLvlSpriteFramePtr(dat, ash->firstFrame, &ptr->width, &ptr->height);

LvlSprHotspotData *hs = ((LvlSprHotspotData *)dat->hotspotsData) + ash->firstFrame;

Expand Down
15 changes: 6 additions & 9 deletions defs.h
Expand Up @@ -15,6 +15,7 @@ enum {

enum {
kNone = 0xFFFFFFFF, // (uint32_t)-1
kNoScreen = 0xFF, // (uint8_t)-1
kLvlAnimHdrOffset = 0x2C,
kMaxScreens = 40,
kMaxSpriteTypes = 32,
Expand Down Expand Up @@ -119,8 +120,6 @@ struct LvlObjectData {
uint8_t refCount; // 0xA
uint8_t frame; // 0xB
uint16_t anim; // 0xC
uint8_t unkE;
uint8_t unkF;
uint8_t *animsInfoData; // 0x10, LevelSprAnimInfo
uint8_t *movesData; // 0x14, LvlSprMoveData
uint8_t *framesData; // 0x18
Expand Down Expand Up @@ -154,13 +153,11 @@ struct LvlObject {
uint8_t actionKeyMask;
uint8_t directionKeyMask;
uint16_t currentSprite;
uint16_t currentSound;
uint8_t unk26;
uint8_t unk27;
const uint8_t *bitmapBits;
int (Game::*callbackFuncPtr)(LvlObject *ptr);
void *dataPtr;
SssObject *sssObject; // 0x34
uint16_t currentSound; // 24
const uint8_t *bitmapBits; // 28
int (Game::*callbackFuncPtr)(LvlObject *ptr); // 2C
void *dataPtr; // 30
SssObject *sssObject; // 34
LvlObjectData *levelData0x2988;
Point16_t posTable[8];
LvlObject *nextPtr;
Expand Down
1 change: 1 addition & 0 deletions fs_posix.cpp
Expand Up @@ -8,6 +8,7 @@

static const char *_suffixes[] = {
"setup.dat",
"setup.dax",
".paf",
"_hod.lvl",
"_hod.sss",
Expand Down

0 comments on commit 5202b37

Please sign in to comment.