Para a implementação dos modelos foi construída uma estrutura denominada sModel_t. Seu código é o seguinte.
typedef struct {
eModel_t Model;
int Size;
int Number;
} sModel_t;
Model define o tipo da embarcação, é escolhido a partir do tipo enumerado abaixo:
typedef enum {
TABLE = 1,
RAFT = 2,
BOAT = 3,
SUBMARINE = 4,
VESSEL = 5,
AUXTABLE = 6,
} eModel_t;
Size define o tamanho da embarcação, ou seja, o número de células que ela ocupada no tabuleiro. Number define o número de embarcações deste tipo utilizadas no jogo. A utilização desta estrutura é explicada com maiores detalhes na seção 2.
A cada modelo é associado uma lista do OpenGL que é associada à variável Model. Quando uma embarcação precisa ser exibida, ela acessa a estutura do modelo, em seguida, à variável enumerada Model e chama a lista para aquele modelo.