55 lines
1.2 KiB
C
55 lines
1.2 KiB
C
/**
|
|
* @file comm.c
|
|
*
|
|
* @brief For communicating with planets/pilots.
|
|
*/
|
|
|
|
#include "lephisto.h"
|
|
#include "log.h"
|
|
#include "toolkit.h"
|
|
#include "pilot.h"
|
|
#include "comm.h"
|
|
|
|
#define COMM_WIDTH 320 /**< Communication window width. */
|
|
#define COMM_HEIGHT 240 /**< Communication window height. */
|
|
|
|
#define BUTTON_WIDTH 90 /**< Button width. */
|
|
#define BUTTON_HEIGHT 30 /*<< Button height. */
|
|
|
|
static Pilot* comm_pilot = NULL; /**< Pilot currently talking to. */
|
|
static int comm_wid = 0; /**< Communication window ID. */
|
|
|
|
static void comm_close(char* str);
|
|
|
|
/**
|
|
* @brief Open the communication dialogue with a pilot.
|
|
* @param pilot Pilot to communicate with.
|
|
* @return 0 on success.
|
|
*/
|
|
int comm_open(unsigned int pilot) {
|
|
char buf[128];
|
|
|
|
/* Get the pilot. */
|
|
comm_pilot = pilot_get(pilot);
|
|
if(comm_pilot == NULL)
|
|
return -1;
|
|
|
|
/* Create the window. */
|
|
snprintf(buf, 128, "Comm - %s", comm_pilot->name);
|
|
comm_wid = window_create(buf, -1, -1, COMM_WIDTH, COMM_HEIGHT);
|
|
|
|
window_addButton(comm_wid, -20, 20, BUTTON_WIDTH, BUTTON_HEIGHT,
|
|
"btnClose", "Close Channel", comm_close);
|
|
|
|
return 0;
|
|
}
|
|
|
|
static void comm_close(char* str) {
|
|
(void)str;
|
|
if(comm_wid > 0) {
|
|
window_destroy(comm_wid);
|
|
comm_wid = 0;
|
|
}
|
|
}
|
|
|