forked from Hay1tsme/segatools
72 lines
1.6 KiB
C
72 lines
1.6 KiB
C
#pragma once
|
|
|
|
#include <stdint.h>
|
|
#include <stdbool.h>
|
|
|
|
#include "hooklib/config.h"
|
|
|
|
#pragma pack(push, 1)
|
|
|
|
// Value held on a card.
|
|
struct CardByteData {
|
|
unsigned int Data;
|
|
};
|
|
|
|
// Unused
|
|
enum CardType {
|
|
TYPE0 = 0,
|
|
TYPE1,
|
|
TYPE2,
|
|
TYPE3,
|
|
TYPE4,
|
|
TYPE5,
|
|
TYPE6,
|
|
TYPE7 = 7
|
|
};
|
|
|
|
enum CardStatus {
|
|
// Unset entry
|
|
INVALID = 0,
|
|
// Valid card
|
|
VALID = 1,
|
|
// Not a card but rather infrared interference. Only relevant in test mode.
|
|
INFERENCE = 2,
|
|
// This is only used by the printer camera.
|
|
MARKER = 3
|
|
};
|
|
|
|
struct CardInfo {
|
|
// X position of the card.
|
|
float fX; // 0x00|0
|
|
// Y position of the card.
|
|
float fY; // 0x04|4
|
|
// Rotation of the card in degrees >=0.0 && <360.0
|
|
float fAngle; // 0x08|8
|
|
// Unused
|
|
enum CardType eCardType; // 0x0C|12
|
|
// see enum CardStatus
|
|
enum CardStatus eCardStatus; // 0x10|16
|
|
// card's BaseCode. used for a reference to the card being tracked as well as part of the IvCode.
|
|
unsigned int uID; // 0x14|20
|
|
// Unused
|
|
int nNumChars; // 0x18|24
|
|
// Title Code. Is 8589934592 for EKT.
|
|
struct CardByteData ubChar0; // 0x1C|28
|
|
// Must be 0x4000 for the printer camera.
|
|
struct CardByteData ubChar1; // 0x20|32
|
|
// Unused
|
|
struct CardByteData ubChar2; // 0x24|36
|
|
// Must be 0x0 for the printer camera.
|
|
struct CardByteData ubChar3; // 0x28|40
|
|
// Unused
|
|
struct CardByteData ubChar4; // 0x2C|44
|
|
// Unused
|
|
struct CardByteData ubChar5; // 0x30|48
|
|
};
|
|
|
|
#pragma pack(pop)
|
|
|
|
HRESULT y3_hook_init(const struct y3_config *cfg, HINSTANCE self, const wchar_t* config_path);
|
|
|
|
void y3_insert_hooks(HMODULE target);
|