/* World structures and constants */

#define WR_IO_OPH

#ifndef P_GRAF_OPH
#include <p\graf>
#endif

#ifndef P_GEN_OPH
#include <p\gen>
#endif

#ifndef EPOC_OPH
#include <sdk\epoc>
#endif

#define WR_FIND_CITY 10
#define WR_FIND_COUNTRY 11
#define WR_FIND_EXACT 12
#define WR_NEXT 13
#define WR_BACK 14
#define WR_GET_HOME 15
#define WR_SET_HOME 16
#define WR_GET_DEFAULT_COUNTRY 17
#define WR_SET_DEFAULT_COUNTRY 18
#define WR_GET_DIAL_STRING 19
#define WR_EXTRA 20
#define WR_SET_EXTRA 21
#define WR_GET_CITY_DATA 22
#define WR_GET_COUNTRY_DATA 23
#define WR_CALC 24
#define WR_NEXT_LOCK 25
#define WR_GET_DIAL_STRING_B 26

#define WR_MAX_NAME 20
#define WR_MAX_DIAL 16
#define WR_MAX_CODE 8
#define WR_MAX_INTRA 4
#define WR_MAX_INTER 4
/* AC: see comments in dialdlgs.oph */
#ifndef DIALDLGS_OPH
#define WR_MAX_IN_STRING 64
#define WR_MAX_DIAL_STRING 24
#endif
/* new (S3B) max length of output string 40 - E_MAX_DTMF_DIAL_B */
#define WR_MAX_DIAL_STRING_B 40

#define WR_UNITS_MILES 0
#define WR_UNITS_KILOMETERS 1
#define WR_UNITS_NAUTICAL 2

#define WR_START_STATE 1
#define WR_END_STATE 0

#define WR_HOME_DONE 0
#define WR_HOME_SET 1
#define WR_HOME_DOING 2

#define WR_NOT_FOUND E_GEN_FAIL
#define WR_FOUND 0

#define WR_EXTRA_ADD_CITY 0
#define WR_EXTRA_UPDATE_CITY 1
#define WR_EXTRA_DELETE_CITY 2
#define WR_EXTRA_UPDATE_COUNTRY 3
#define WR_EXTRA_ADD_HOME 4

#define WR_DELETED 0
#define WR_REVERTED 1

#define WR_TOO_MANY_ERR -23
#define WR_NOTVALID_ERR -25
#define WR_DELHOME_ERR -26
#define WR_DELCAPITAL_ERR -27
#define WR_DUPLICATE_ERR -28

STRUCT LATL
	iLat%
	iLong%
ENDS

STRUCT WR_FIND_RES
	city#(WR_MAX_NAME+1)
	country#(WR_MAX_NAME+1)
ENDS

STRUCT WR_CITY_DATA
	f#(SIZEOF(WR_FIND_RES))
	units#
	DST#
	GMT%
	latl#(SIZEOF(LATL))
	dial#(WR_MAX_DIAL+1)
	STD#(WR_MAX_CODE+1)
	pos#(SIZEOF(P_POINT))
ENDS

STRUCT CO_DIAL
	dialIntra#(WR_MAX_INTRA+1)
	dialInter#(WR_MAX_INTER+1)
	dial#(WR_MAX_CODE+1)
	dummy#
ENDS

STRUCT WR_COUNTRY_DATA
	f#(SIZEOF(WR_FIND_RES))
	baseGMT#
	DST#
	GMT%
	dial#(SIZEOF(CO_DIAL))
ENDS

/* AC: This should be a union */

STRUCT WR_EXTRA_DATA
	dummy#(OPPEVAL(max(SIZEOF(WR_CITY_DATA),SIZEOF(WR_COUNTRY_DATA))))
ENDS

STRUCT WR_CALC_OUT
	distance%
	sunRise%
	sunSet%
	always%
ENDS

STRUCT TIMEDATE
	time%
	date%
ENDS
