So a while back Hunter helped me with a sprite format for a JUMP Ultimate Stars. After that cooled down I started looking at the file that controls the movesets for the characters.
This file sucks. It looks to be using control codes, and null terminated arrays...
I attempted to write a quick move viewer but I don't really know how to start with my lack of coding knowledge...
I'd test all this stuff but I need to write an importer for the alar archives.
For Hex Workshop my editor of choice
This file sucks. It looks to be using control codes, and null terminated arrays...
I attempted to write a quick move viewer but I don't really know how to start with my lack of coding knowledge...
I'd test all this stuff but I need to write an importer for the alar archives.
For Hex Workshop my editor of choice
Code:
#include "standard-types.hsl"
#pragma byteorder(little_endian)
#pragma hide()
typedef struct Node{
char Node[4];
}Node;
typedef struct Flag{
word Unknown;
zstring String;
}Flag;
#pragma show()
Code:
struct ALMT
{
char ID[4];
byte Unknown;
byte Unknown;
byte NodeCount;
byte MoveCount;
dword FlagCount;
Node Node[NodeCount];
dword DataOffsets[MoveCount];
word FlagOffsets[FlagCount];
Flag Flags[FlagCount];
};
struct MOVE
{
ubyte Unknown; //Move Number
ubyte Unknown[3]; //File
Identifier
ubyte Field1;
ubyte boolean1;
ubyte Field2;
ubyte boolean2; //Allow Player Movement??
ubyte Field3;
ubyte boolean3;
ubyte Field4;
ubyte boolean4;
ubyte Field5;
ubyte boolean5;
ubyte Field6;
ubyte Field7;
ubyte Field8;
ubyte Field9;
ubyte Field10;
ubyte Field11;
//This sucks and I know it sucks. It's also probably not right, as well as hacky.... Someone shoot me!
switch (Field10)
{
case 4:
ubyte Unknown[4];
break;
default:
break;
};
ubyte Unknown;
ubyte Unknown;
word Unknown[Field6];
word Unknown[Field7];
switch (Field1)
{
default:
break;
};
switch (Field2)
{
default:
break;
};
switch (Field3)
{
default:
break;
};
switch (Field4)
{
default:
break;
};
switch (Field5)
{
default:
break;
};
switch (Field6)
{
default:
break;
};
switch (Field7)
{
default:
break;
};
};