Initial commit
This commit is contained in:
@@ -0,0 +1,171 @@
|
||||
#include <hmbase.h>
|
||||
#include <proto.h>
|
||||
|
||||
struct hm_log_s *lg;
|
||||
|
||||
#define DUMP(m_dst, m_i, m_s)\
|
||||
int i##m_i = 0;\
|
||||
printf("dumping [%s]\n", m_s);\
|
||||
for(i##m_i = 0; i##m_i < m_i; i##m_i++) {\
|
||||
printf("%x", m_dst[i##m_i]);\
|
||||
}\
|
||||
printf("\n");
|
||||
|
||||
#define REPEAT\
|
||||
packet_free(p);\
|
||||
{\
|
||||
for(i = 0; i < 10; i++) {\
|
||||
parse_packet(p, buf, nbuf);\
|
||||
build_packet_test(p, buf);\
|
||||
packet_free(p);\
|
||||
}\
|
||||
}
|
||||
|
||||
#define build_packet_test(m_p, m_buffer)\
|
||||
char *ptrtest##m_buffer;\
|
||||
ptrtest##m_buffer = m_buffer;\
|
||||
n##m_buffer = serialize(m_p, &ptrtest##m_buffer, ptrtest##m_buffer + sizeof(m_buffer));
|
||||
|
||||
#define string(m_dst, m_ndst, m_s)\
|
||||
m_ndst = strlen(m_s);\
|
||||
m_dst = malloc(m_ndst);\
|
||||
memcpy(m_dst, m_s, m_ndst);
|
||||
|
||||
int main()
|
||||
{
|
||||
struct packet_s *p;
|
||||
struct hm_log_s l;
|
||||
int i;
|
||||
|
||||
hm_log_open(&l, NULL, LOG_DEBUG);
|
||||
lg = &l;
|
||||
|
||||
// chooseoption
|
||||
{
|
||||
struct chooseoption_s *c;
|
||||
c = malloc(sizeof(*c));
|
||||
c->id = 0xffff;
|
||||
c->index = 0xffff;
|
||||
c->target = 0xffff;
|
||||
c->suboption = 0xffff;
|
||||
c->position = 0xffff;
|
||||
|
||||
build_packet(p, c, P_CHOOSEOPTION, buf);
|
||||
REPEAT;
|
||||
}
|
||||
|
||||
// turn timer
|
||||
{
|
||||
struct turntimer_s *c;
|
||||
c = malloc(sizeof(*c));
|
||||
c->seconds = 0xffff;
|
||||
c->turn = 0xffff;
|
||||
c->show = 0xff;
|
||||
|
||||
build_packet(p, c, P_TURNTIMER, buf);
|
||||
REPEAT;
|
||||
}
|
||||
|
||||
// gamesetup
|
||||
{
|
||||
struct gamesetup_s *c;
|
||||
c = malloc(sizeof(*c));
|
||||
c->board = 0xffff;
|
||||
c->maxsecrets = 0xffff;
|
||||
c->maxfriendlyminions = 0xffff;
|
||||
c->stuckdisconnect = 0xffff;
|
||||
c->keepalive = 0xffff;
|
||||
|
||||
build_packet(p, c, P_TURNTIMER, buf);
|
||||
REPEAT;
|
||||
}
|
||||
|
||||
// handshake
|
||||
{
|
||||
struct handshake_s *c;
|
||||
c = malloc(sizeof(*c));
|
||||
c->gamehandle = 0xffff;
|
||||
string(c->password, c->npassword, "password");
|
||||
c->clienthandle = 0xffff;
|
||||
c->mission = 0xffff;
|
||||
string(c->version, c->nversion, "version");
|
||||
|
||||
struct platform_s *pl;
|
||||
pl = malloc(sizeof(*pl));
|
||||
pl->os = 0xffff;
|
||||
pl->screen = 0xffff;
|
||||
string(pl->name, pl->nname, "name");
|
||||
pl->store = 0xffff;
|
||||
|
||||
c->platform = pl;
|
||||
|
||||
build_packet(p, c, P_HANDSHAKE, buf);
|
||||
REPEAT;
|
||||
}
|
||||
|
||||
// chooseentities
|
||||
{
|
||||
struct chooseentities_s *c;
|
||||
struct chooseentities_ent_s *e;
|
||||
c = malloc(sizeof(*c));
|
||||
c->id = 0xffff;
|
||||
c->nentity = 4;
|
||||
c->entity = NULL;
|
||||
for(i = 0; i < c->nentity; i++) {
|
||||
e = malloc(sizeof(*e));
|
||||
e->entity = i;
|
||||
e->next = c->entity;
|
||||
c->entity = e;
|
||||
}
|
||||
|
||||
build_packet(p, c, P_CHOOSEENTITIES, buf);
|
||||
REPEAT;
|
||||
}
|
||||
|
||||
// entitychoices
|
||||
{
|
||||
struct entitychoices_s *c;
|
||||
struct entitychoices_entities_s *e;
|
||||
c = malloc(sizeof(*c));
|
||||
c->id = 0xffff;
|
||||
c->type = 0xffff;
|
||||
c->countmin = 0xffff;
|
||||
c->countmax = 0xffff;
|
||||
c->source = 0xffff;
|
||||
c->player_id = 0xffff;
|
||||
c->entities = NULL;
|
||||
|
||||
for(i = 0; i < 10; i++) {
|
||||
e = malloc(sizeof(*e));
|
||||
e->entity = i;
|
||||
e->next = c->entities;
|
||||
c->entities = e;
|
||||
}
|
||||
|
||||
build_packet(p, c, P_ENTITYCHOICES, buf);
|
||||
REPEAT;
|
||||
}
|
||||
|
||||
// userui
|
||||
{
|
||||
struct userui_s *c;
|
||||
struct mouseinfo_s *e;
|
||||
c = malloc(sizeof(*c));
|
||||
|
||||
e = malloc(sizeof(*e));
|
||||
e->arroworigin = 0xffff;
|
||||
e->heldcard = 0xffff;
|
||||
e->overcard = 0xffff;
|
||||
e->x = 0xffff;
|
||||
e->y = 0xffff;
|
||||
|
||||
c->mouseinfo = e;
|
||||
c->emote = 0xffff;
|
||||
c->player_id = 0xffff;
|
||||
|
||||
build_packet(p, c, P_USERUI, buf);
|
||||
REPEAT;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user