#include "game_types.h"

/* Emitter_DrawDirectional @ 0x08004D8C (real 128B) -- directional draw via 7-word offset struct. Mirrors src/matched/Emitter_DrawDirectional.c. */
/* Draws the emitter through a 7-word offset struct {0, nx, 159-ny, 5, 4096,
   4096, p[40]} at sp. Halves truncate toward zero (v/2). */
extern void Emitter_DrawWithOffset(int *base, int *q, int *stk);

void Emitter_DrawDirectional(int *p)
{
    int *base = *(int **)0x02000134;
    int *tab = *(int **)0x0200005C + 416 / 4;
    int nx = p[28] - ((tab[0] >> 12) - (tab[19] / 2));
    int ny = p[29] - ((tab[1] >> 12) - (tab[20] / 2));
    int stk[7];
    stk[0] = 0;
    stk[1] = nx;
    stk[2] = 159 - ny;
    stk[3] = 5;
    stk[4] = 4096;
    stk[5] = 4096;
    stk[6] = p[40];
    Emitter_DrawWithOffset(base, p + 53, stk);
}
