Skip to content

Commit

Permalink
Support new core
Browse files Browse the repository at this point in the history
  • Loading branch information
tspivey committed Jul 17, 2024
1 parent f1a8c55 commit b3e9bb4
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 4 deletions.
12 changes: 9 additions & 3 deletions duel_build.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,10 @@
return 0;
}
}
void set_setcode(struct card_data *cd, uint64 value) {
cd->set_setcode(value);
}
""",
libraries = ['ygo'],
library_dirs=['.'],
Expand All @@ -69,7 +73,7 @@
struct card_data {
uint32 code;
uint32 alias;
uint64 setcode;
uint16_t setcode[16];
uint32 type;
uint32 level;
uint32 attribute;
Expand All @@ -81,19 +85,21 @@
uint32 link_marker;
...;
};
extern "Python" uint32 card_reader_callback(uint32, struct card_data *);
typedef uint32 (*card_reader)(uint32, struct card_data*);
void set_card_reader(card_reader f);
void set_setcode(struct card_data *cd, uint64 value);
typedef byte* (*script_reader)(const char*, int*);
typedef uint32 (*message_handler)(intptr_t, uint32);
extern "Python" uint32 message_handler_callback (void *, int32);
extern "Python" uint32 message_handler_callback (intptr_t, uint32);
void set_message_handler(message_handler f);
extern "Python" byte *script_reader_callback(const char *, int *);
void set_script_reader(script_reader f);
ptr create_duel(uint32_t seed);
void start_duel(ptr pduel, int32 options);
void end_duel(ptr pduel);
void get_log_message(ptr pduel, byte* buf);
void get_log_message(ptr pduel, char* buf);
int32 get_message(ptr pduel, byte* buf);
uint32 process(ptr pduel);
void new_card(ptr pduel, uint32 code, uint8 owner, uint8 playerid, uint8 location, uint8 sequence, uint8 position);
Expand Down
7 changes: 6 additions & 1 deletion ygo/duel.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def card_reader_callback(code, data):
row = globals.language_handler.primary_database.execute('select * from datas where id=?', (code,)).fetchone()
cd.code = code
cd.alias = row['alias']
cd.setcode = row['setcode']
lib.set_setcode(data, row['setcode'])
cd.type = row['type']
cd.level = row['level'] & 0xff
cd.lscale = (row['level'] >> 24) & 0xff
Expand Down Expand Up @@ -68,6 +68,11 @@ def script_reader_callback(name, lenptr):
return ffi.cast('byte *', scriptbuf)

lib.set_script_reader(lib.script_reader_callback)
@ffi.def_extern()
def message_handler_callback(duel, msg):
print(f"mhc: {msg}")
return None
lib.set_message_handler(lib.message_handler_callback)

class Duel(Joinable):
def __init__(self, seed=None):
Expand Down

0 comments on commit b3e9bb4

Please sign in to comment.