]> git.tdb.fi Git - gldbg.git/blob - source/gldecoder.funcs.t
Replace per-file license notices with License.txt
[gldbg.git] / source / gldecoder.funcs.t
1 :#define UNUSED __attribute__((unused))
2 wl('static unsigned decode_%s(GlDecoder *dec, GlPacket *pkt UNUSED)', func.name)
3 wl('{')
4 if ret.ctype!="void":
5         wl('    %s ret;', ret.ctype)
6 for p in params:
7         wl('    %s p_%s;', p.ctype, p.name)
8 for p in params:
9         if p.kind=="value":
10                 wl('    packet_read_%s(pkt, (%s *)&p_%s);', p.io[0].replace(' ', '_'), p.io[0], p.name)
11         elif p.kind=="array" and p.io and p.io[0]=="string":
12                 wl('  packet_read_string_array(pkt, &p_%s);', p.name)
13         elif p.csize:
14                 wl('    packet_read_data(pkt, (pointer *)&p_%s);', p.name)
15         else:
16                 wl('    packet_read_pointer(pkt, (pointer *)&p_%s);', p.name)
17 if ret.ctype!="void":
18         wl('    packet_read_%s(pkt, (%s *)&ret);', ret.io[0].replace(' ', '_'), ret.io[0])
19 wl('    if(dec->%s)', func.name)
20 w('             dec->%s(dec->user_data', func.name)
21 if ret.ctype!="void":
22         w(', ret')
23 for p in params:
24         w(', p_%s', p.name)
25 wl(');')
26 wl('    else if(dec->unhandled)')
27 wl('            dec->unhandled(dec->user_data, FUNC_%s);', func.name.upper())
28 wl('    return 0;')
29 wl('}')
30 :static int decode_func(GlDecoder *dec, unsigned short func, GlPacket *pkt)
31 :{
32 :       switch(func)
33 :       {
34 wl('    case FUNC_%s: decode_%s(dec, pkt); break;', func.name.upper(), func.name)
35 :       default: return -1;
36 :       }
37 :       return 0;
38 :}