mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8546 3b4a5df2-a311-0410-b5c6-a8a6f20db521
720 lines
25 KiB
C
720 lines
25 KiB
C
#ifndef __EMAIL_H
|
|
#define __EMAIL_H
|
|
|
|
#include "types.h"
|
|
#include "soldier profile type.h"
|
|
|
|
// defines
|
|
#define MAX_EMAIL_LINES 10 //max number of lines can be shown in a message
|
|
#define MAX_MESSAGES_PAGE 18 // max number of messages per page
|
|
|
|
//---ja25 ub
|
|
#ifdef JA2UB
|
|
|
|
#define EMAIL_INSURANCE_L1 170
|
|
#define EMAIL_INSURANCE_L2 211
|
|
#define EMAIL_INSURANCE_L3 170
|
|
#define EMAIL_INSURANCE_L4 173
|
|
#define EMAIL_INSURANCE_L5 179
|
|
#define EMAIL_INSURANCE_L6 176
|
|
|
|
#define EMAIL_BOBBY_R_L1 198
|
|
|
|
#define EMAIL_AIM_L1 206
|
|
#define EMAIL_AIM_L2 27
|
|
#define EMAIL_AIM_L3 217
|
|
#define EMAIL_AIM_L4 214
|
|
|
|
|
|
|
|
//JA25: New emails
|
|
// email # 1
|
|
#define EMAIL_STARTGAME 0
|
|
#define EMAIL_STARTGAME_LENGTH 8
|
|
// email # 2
|
|
#define EMAIL_PILOTMISSING (EMAIL_STARTGAME + EMAIL_STARTGAME_LENGTH)
|
|
#define EMAIL_PILOTMISSING_LENGTH 2
|
|
|
|
// email # 3
|
|
#define EMAIL_MAKECONTACT (EMAIL_PILOTMISSING + EMAIL_PILOTMISSING_LENGTH)
|
|
#define EMAIL_MAKECONTACT_LENGTH 3
|
|
|
|
// email # 4
|
|
#define EMAIL_MANUEL (EMAIL_MAKECONTACT + EMAIL_MAKECONTACT_LENGTH)
|
|
#define EMAIL_MANUEL_LENGTH 4
|
|
|
|
// # email # 5 - only if Miguel is alive!
|
|
#define EMAIL_MIGUELHELLO (EMAIL_MANUEL + EMAIL_MANUEL_LENGTH)
|
|
#define EMAIL_MIGUELHELLO_LENGTH 3
|
|
|
|
// email # 6 - player not advancing fast enough
|
|
#define EMAIL_CONCERNED (EMAIL_MIGUELHELLO + EMAIL_MIGUELHELLO_LENGTH)
|
|
#define EMAIL_CONCERNED_LENGTH 2
|
|
|
|
// email # 7 - player still not advancing fast enough
|
|
#define EMAIL_URGENT (EMAIL_CONCERNED + EMAIL_CONCERNED_LENGTH)
|
|
#define EMAIL_URGENT_LENGTH 3
|
|
|
|
// email # 8a - from Miguel
|
|
#define EMAIL_MIGUELSORRY (EMAIL_URGENT + EMAIL_URGENT_LENGTH)
|
|
#define EMAIL_MIGUELSORRY_LENGTH 3
|
|
|
|
// email # 8b - from Miguel, mentioning Manuel
|
|
#define EMAIL_MIGUELMANUEL (EMAIL_MIGUELSORRY + EMAIL_MIGUELSORRY_LENGTH)
|
|
#define EMAIL_MIGUELMANUEL_LENGTH 4
|
|
|
|
// email # 9 - Miguel sick
|
|
#define EMAIL_MIGUELSICK (EMAIL_MIGUELMANUEL + EMAIL_MIGUELMANUEL_LENGTH)
|
|
#define EMAIL_MIGUELSICK_LENGTH 3
|
|
|
|
// email # 10a
|
|
#define EMAIL_UNDERSTANDING (EMAIL_MIGUELSICK + EMAIL_MIGUELSICK_LENGTH)
|
|
#define EMAIL_UNDERSTANDING_LENGTH 3
|
|
|
|
// email # 10b - if we need extra cash
|
|
#define EMAIL_EXTRACASH (EMAIL_UNDERSTANDING + EMAIL_UNDERSTANDING_LENGTH)
|
|
#define EMAIL_EXTRACASH_LENGTH 4
|
|
|
|
// email # 11
|
|
#define EMAIL_PILOTFOUND (EMAIL_EXTRACASH + EMAIL_EXTRACASH_LENGTH)
|
|
#define EMAIL_PILOTFOUND_LENGTH 2
|
|
|
|
// email # 12a - Miguel dead, Manuel never recruited
|
|
#define EMAIL_CONGRATS (EMAIL_PILOTFOUND + EMAIL_PILOTFOUND_LENGTH)
|
|
#define EMAIL_CONGRATS_LENGTH 4
|
|
|
|
// email # 12b - Miguel alive, Manuel never recruited
|
|
#define EMAIL_CONGRATSICK (EMAIL_CONGRATS + EMAIL_CONGRATS_LENGTH)
|
|
#define EMAIL_CONGRATSICK_LENGTH 5
|
|
|
|
// email # 12c - Miguel alive, Manuel dead
|
|
#define EMAIL_CONGRATMIGMANUELDEAD (EMAIL_CONGRATSICK + EMAIL_CONGRATSICK_LENGTH)
|
|
#define EMAIL_CONGRATMIGMANUELDEAD_LENGTH 6
|
|
|
|
// email # 12d - Miguel alive, Manuel recruited and alive
|
|
#define EMAIL_CONGRATMIGMANUELALIVE (EMAIL_CONGRATMIGMANUELDEAD + EMAIL_CONGRATMIGMANUELDEAD_LENGTH)
|
|
#define EMAIL_CONGRATMIGMANUELALIVE_LENGTH 6
|
|
|
|
// email # 12e - Miguel dead, Manuel dead
|
|
#define EMAIL_CONGRATMANUELDEAD (EMAIL_CONGRATMIGMANUELALIVE + EMAIL_CONGRATMIGMANUELALIVE_LENGTH)
|
|
#define EMAIL_CONGRATMANUELDEAD_LENGTH 5
|
|
|
|
// email # 12f - Miguel dead, Manuel recruited and alive
|
|
#define EMAIL_CONGRATMANUELALIVE (EMAIL_CONGRATMANUELDEAD + EMAIL_CONGRATMANUELDEAD_LENGTH)
|
|
#define EMAIL_CONGRATMANUELALIVE_LENGTH 5
|
|
|
|
// email # 13 - original AIM email
|
|
#define EMAIL_AIMDISCOUNT (EMAIL_CONGRATMANUELALIVE + EMAIL_CONGRATMANUELALIVE_LENGTH)
|
|
#define EMAIL_AIMDISCOUNT_LENGTH 7
|
|
|
|
#define MANUEL_AT_HOME_NOT_USED ( EMAIL_AIMDISCOUNT + EMAIL_AIMDISCOUNT_LENGTH )
|
|
#define MANUEL_AT_HOME_NOT_USED_LENGTH 1
|
|
|
|
//Email #14 Initial IMP email
|
|
#define IMP_EMAIL_INTRO (MANUEL_AT_HOME_NOT_USED + MANUEL_AT_HOME_NOT_USED_LENGTH )
|
|
#define IMP_EMAIL_INTRO_LENGTH 10
|
|
|
|
//Email #15 Imp follow up
|
|
#define IMP_EMAIL_AGAIN (IMP_EMAIL_INTRO + IMP_EMAIL_INTRO_LENGTH)
|
|
#define IMP_EMAIL_AGAIN_LENGTH 5
|
|
|
|
|
|
|
|
// Email #16 - ?? merc left-me-a-message-and-now-I'm-back emails
|
|
#define AIM_REPLY_BARRY ( IMP_EMAIL_AGAIN + IMP_EMAIL_AGAIN_LENGTH )
|
|
#define AIM_REPLY_LENGTH_BARRY 2
|
|
|
|
#define AIM_REPLY_MELTDOWN (AIM_REPLY_BARRY + ( 39 * AIM_REPLY_LENGTH_BARRY ))
|
|
#define AIM_REPLY_LENGTH_MELTDOWN AIM_REPLY_LENGTH_BARRY
|
|
|
|
|
|
#define AIM_REFUND ( AIM_REPLY_MELTDOWN + AIM_REPLY_LENGTH_MELTDOWN )
|
|
#define AIM_REFUND_LENGTH 3
|
|
|
|
#define MERC_REFUND ( AIM_REFUND + AIM_REFUND_LENGTH )
|
|
#define MERC_REFUND_LENGTH 3
|
|
|
|
|
|
|
|
#define EMAIL_AIM_PROMOTION_1 ( MERC_REFUND + MERC_REFUND_LENGTH )
|
|
#define EMAIL_AIM_PROMOTION_1_LENGTH 4
|
|
|
|
#define EMAIL_MERC_PROMOTION_1 ( EMAIL_AIM_PROMOTION_1 + EMAIL_AIM_PROMOTION_1_LENGTH )
|
|
#define EMAIL_MERC_PROMOTION_1_LENGTH 5
|
|
|
|
#define EMAIL_AIM_PROMOTION_2 ( EMAIL_MERC_PROMOTION_1 + EMAIL_MERC_PROMOTION_1_LENGTH )
|
|
#define EMAIL_AIM_PROMOTION_2_LENGTH 5
|
|
|
|
|
|
#define IMP_EMAIL_PROFILE_RESULTS ( EMAIL_AIM_PROMOTION_2 + EMAIL_AIM_PROMOTION_2_LENGTH )
|
|
#define IMP_EMAIL_PROFILE_RESULTS_LENGTH 1
|
|
|
|
#define IMP_EMAIL_INTRO2 0
|
|
#define IMP_EMAIL_INTRO_LENGTH2 10
|
|
#define ENRICO_CONGRATS2 (IMP_EMAIL_INTRO2 + IMP_EMAIL_INTRO_LENGTH2)
|
|
#define ENRICO_CONGRATS_LENGTH2 3
|
|
#define IMP_EMAIL_AGAIN2 (ENRICO_CONGRATS2 + ENRICO_CONGRATS_LENGTH2)
|
|
#define IMP_EMAIL_AGAIN_LENGTH2 6
|
|
#define MERC_INTRO2 (IMP_EMAIL_AGAIN2 + IMP_EMAIL_AGAIN_LENGTH2)
|
|
#define MERC_INTRO_LENGTH2 5
|
|
#define MERC_NEW_SITE_ADDRESS2 ( MERC_INTRO2 + MERC_INTRO_LENGTH2 )
|
|
#define MERC_NEW_SITE_ADDRESS_LENGTH2 2
|
|
#define AIM_MEDICAL_DEPOSIT_REFUND2 ( MERC_NEW_SITE_ADDRESS2 + MERC_NEW_SITE_ADDRESS_LENGTH2 )
|
|
#define AIM_MEDICAL_DEPOSIT_REFUND_LENGTH2 3
|
|
#define IMP_EMAIL_PROFILE_RESULTS2 ( AIM_MEDICAL_DEPOSIT_REFUND2 + AIM_MEDICAL_DEPOSIT_REFUND_LENGTH2 )
|
|
#define IMP_EMAIL_PROFILE_RESULTS_LENGTH2 1
|
|
#define MERC_WARNING2 ( IMP_EMAIL_PROFILE_RESULTS_LENGTH2 + IMP_EMAIL_PROFILE_RESULTS2 )
|
|
#define MERC_WARNING_LENGTH2 2
|
|
#define MERC_INVALID2 ( MERC_WARNING2 + MERC_WARNING_LENGTH2 )
|
|
#define MERC_INVALID_LENGTH2 2
|
|
#define NEW_MERCS_AT_MERC ( MERC_INVALID2 + MERC_INVALID_LENGTH2 )
|
|
#define NEW_MERCS_AT_MERC_LENGTH 2
|
|
|
|
//Jagged Alliance 2
|
|
|
|
// insurance company emails
|
|
#define INSUR_PAYMENT 200
|
|
#define INSUR_PAYMENT_LENGTH 3
|
|
#define INSUR_SUSPIC 201
|
|
#define INSUR_SUSPIC_LENGTH 3
|
|
#define INSUR_INVEST_OVER 202
|
|
#define INSUR_INVEST_OVER_LENGTH 3
|
|
#define INSUR_SUSPIC_2 203
|
|
#define INSUR_SUSPIC_2_LENGTH 3
|
|
|
|
#define BOBBYR_NOW_OPEN 204
|
|
#define BOBBYR_NOW_OPEN_LENGTH 3
|
|
|
|
#define KING_PIN_LETTER 205
|
|
#define KING_PIN_LETTER_LENGTH 4
|
|
|
|
#define LACK_PLAYER_PROGRESS_1 206
|
|
#define LACK_PLAYER_PROGRESS_1_LENGTH 3
|
|
|
|
#define LACK_PLAYER_PROGRESS_2 207
|
|
#define LACK_PLAYER_PROGRESS_2_LENGTH 3
|
|
|
|
#define LACK_PLAYER_PROGRESS_3 208
|
|
#define LACK_PLAYER_PROGRESS_3_LENGTH 3
|
|
|
|
//A package from bobby r has arrived in Drassen
|
|
#define BOBBYR_SHIPMENT_ARRIVED 199
|
|
#define BOBBYR_SHIPMENT_ARRIVED_LENGTH 4
|
|
|
|
// John Kulba has left the gifts for theplayers in drassen
|
|
#define JOHN_KULBA_GIFT_IN_DRASSEN 209
|
|
#define JOHN_KULBA_GIFT_IN_DRASSEN_LENGTH 4
|
|
|
|
//when a merc dies on ANOTHER assignment ( ie not with the player )
|
|
#define MERC_DIED_ON_OTHER_ASSIGNMENT 210
|
|
#define MERC_DIED_ON_OTHER_ASSIGNMENT_LENGTH 5
|
|
|
|
#define INSUR_1HOUR_FRAUD 211
|
|
#define INSUR_1HOUR_FRAUD_LENGTH 3
|
|
|
|
//when a merc is fired, and is injured
|
|
#define AIM_MEDICAL_DEPOSIT_PARTIAL_REFUND 212
|
|
#define AIM_MEDICAL_DEPOSIT_PARTIAL_REFUND_LENGTH 3
|
|
|
|
//when a merc is fired, and is dead
|
|
#define AIM_MEDICAL_DEPOSIT_NO_REFUND 213
|
|
#define AIM_MEDICAL_DEPOSIT_NO_REFUND_LENGTH 3
|
|
|
|
#define BOBBY_R_MEDUNA_SHIPMENT 214
|
|
#define BOBBY_R_MEDUNA_SHIPMENT_LENGTH 4
|
|
|
|
#define AIM_MEDICAL_DEPOSIT_REFUND 215
|
|
#define AIM_MEDICAL_DEPOSIT_REFUND_LENGTH 3
|
|
|
|
#else
|
|
#define IMP_EMAIL_INTRO 0
|
|
#define IMP_EMAIL_INTRO_LENGTH 10
|
|
#define ENRICO_CONGRATS (IMP_EMAIL_INTRO + IMP_EMAIL_INTRO_LENGTH)
|
|
#define ENRICO_CONGRATS_LENGTH 3
|
|
#define IMP_EMAIL_AGAIN (ENRICO_CONGRATS + ENRICO_CONGRATS_LENGTH)
|
|
#define IMP_EMAIL_AGAIN_LENGTH 6
|
|
#define MERC_INTRO (IMP_EMAIL_AGAIN + IMP_EMAIL_AGAIN_LENGTH)
|
|
#define MERC_INTRO_LENGTH 5
|
|
#define MERC_NEW_SITE_ADDRESS ( MERC_INTRO + MERC_INTRO_LENGTH )
|
|
#define MERC_NEW_SITE_ADDRESS_LENGTH 2
|
|
#define AIM_MEDICAL_DEPOSIT_REFUND ( MERC_NEW_SITE_ADDRESS + MERC_NEW_SITE_ADDRESS_LENGTH )
|
|
#define AIM_MEDICAL_DEPOSIT_REFUND_LENGTH 3
|
|
#define IMP_EMAIL_PROFILE_RESULTS ( AIM_MEDICAL_DEPOSIT_REFUND + AIM_MEDICAL_DEPOSIT_REFUND_LENGTH )
|
|
#define IMP_EMAIL_PROFILE_RESULTS_LENGTH 1
|
|
#define MERC_WARNING ( IMP_EMAIL_PROFILE_RESULTS_LENGTH + IMP_EMAIL_PROFILE_RESULTS )
|
|
#define MERC_WARNING_LENGTH 2
|
|
#define MERC_INVALID ( MERC_WARNING + MERC_WARNING_LENGTH )
|
|
#define MERC_INVALID_LENGTH 2
|
|
#define NEW_MERCS_AT_MERC ( MERC_INVALID + MERC_INVALID_LENGTH )
|
|
#define NEW_MERCS_AT_MERC_LENGTH 2
|
|
#define MERC_FIRST_WARNING ( NEW_MERCS_AT_MERC + NEW_MERCS_AT_MERC_LENGTH )
|
|
#define MERC_FIRST_WARNING_LENGTH 2
|
|
// merc up a level emails
|
|
#define MERC_UP_LEVEL_BIFF ( MERC_FIRST_WARNING + MERC_FIRST_WARNING_LENGTH )
|
|
#define MERC_UP_LEVEL_LENGTH_BIFF 2
|
|
#define MERC_UP_LEVEL_HAYWIRE ( MERC_UP_LEVEL_LENGTH_BIFF + MERC_UP_LEVEL_BIFF )
|
|
#define MERC_UP_LEVEL_LENGTH_HAYWIRE 2
|
|
#define MERC_UP_LEVEL_GASKET ( MERC_UP_LEVEL_LENGTH_HAYWIRE + MERC_UP_LEVEL_HAYWIRE )
|
|
#define MERC_UP_LEVEL_LENGTH_GASKET 2
|
|
#define MERC_UP_LEVEL_RAZOR ( MERC_UP_LEVEL_LENGTH_GASKET + MERC_UP_LEVEL_GASKET )
|
|
#define MERC_UP_LEVEL_LENGTH_RAZOR 2
|
|
#define MERC_UP_LEVEL_FLO ( MERC_UP_LEVEL_LENGTH_RAZOR + MERC_UP_LEVEL_RAZOR )
|
|
#define MERC_UP_LEVEL_LENGTH_FLO 2
|
|
#define MERC_UP_LEVEL_GUMPY ( MERC_UP_LEVEL_LENGTH_FLO + MERC_UP_LEVEL_FLO )
|
|
#define MERC_UP_LEVEL_LENGTH_GUMPY 2
|
|
#define MERC_UP_LEVEL_LARRY ( MERC_UP_LEVEL_LENGTH_GUMPY + MERC_UP_LEVEL_GUMPY )
|
|
#define MERC_UP_LEVEL_LENGTH_LARRY 2
|
|
#define MERC_UP_LEVEL_COUGAR ( MERC_UP_LEVEL_LENGTH_LARRY + MERC_UP_LEVEL_LARRY )
|
|
#define MERC_UP_LEVEL_LENGTH_COUGAR 2
|
|
#define MERC_UP_LEVEL_NUMB ( MERC_UP_LEVEL_LENGTH_COUGAR + MERC_UP_LEVEL_COUGAR )
|
|
#define MERC_UP_LEVEL_LENGTH_NUMB 2
|
|
#define MERC_UP_LEVEL_BUBBA ( MERC_UP_LEVEL_LENGTH_NUMB + MERC_UP_LEVEL_NUMB )
|
|
#define MERC_UP_LEVEL_LENGTH_BUBBA 2
|
|
// merc left-me-a-message-and-now-I'm-back emails
|
|
#define AIM_REPLY_BARRY ( MERC_UP_LEVEL_LENGTH_BUBBA + MERC_UP_LEVEL_BUBBA )
|
|
#define AIM_REPLY_LENGTH_BARRY 2
|
|
#define AIM_REPLY_MELTDOWN (AIM_REPLY_BARRY + ( 39 * AIM_REPLY_LENGTH_BARRY ))
|
|
#define AIM_REPLY_LENGTH_MELTDOWN AIM_REPLY_LENGTH_BARRY
|
|
|
|
// old EXISTING emails when player starts game. They must look "read"
|
|
#define OLD_ENRICO_1 ( AIM_REPLY_LENGTH_MELTDOWN + AIM_REPLY_MELTDOWN )
|
|
#define OLD_ENRICO_1_LENGTH 3
|
|
#define OLD_ENRICO_2 ( OLD_ENRICO_1 + OLD_ENRICO_1_LENGTH )
|
|
#define OLD_ENRICO_2_LENGTH 3
|
|
#define RIS_REPORT ( OLD_ENRICO_2 + OLD_ENRICO_2_LENGTH )
|
|
#define RIS_REPORT_LENGTH 2
|
|
#define OLD_ENRICO_3 ( RIS_REPORT + RIS_REPORT_LENGTH )
|
|
#define OLD_ENRICO_3_LENGTH 3
|
|
|
|
// emails that occur from Enrico once player accomplishes things
|
|
#define ENRICO_MIGUEL ( OLD_ENRICO_3 + OLD_ENRICO_3_LENGTH )
|
|
#define ENRICO_MIGUEL_LENGTH 3
|
|
#define ENRICO_PROG_20 ( ENRICO_MIGUEL + ENRICO_MIGUEL_LENGTH )
|
|
#define ENRICO_PROG_20_LENGTH 3
|
|
#define ENRICO_PROG_55 ( ENRICO_PROG_20 + ENRICO_PROG_20_LENGTH )
|
|
#define ENRICO_PROG_55_LENGTH 3
|
|
#define ENRICO_PROG_80 ( ENRICO_PROG_55 + ENRICO_PROG_55_LENGTH )
|
|
#define ENRICO_PROG_80_LENGTH 3
|
|
#define ENRICO_SETBACK ( ENRICO_PROG_80 + ENRICO_PROG_80_LENGTH )
|
|
#define ENRICO_SETBACK_LENGTH 3
|
|
#define ENRICO_SETBACK_2 ( ENRICO_SETBACK + ENRICO_SETBACK_LENGTH )
|
|
#define ENRICO_SETBACK_2_LENGTH 3
|
|
#define ENRICO_CREATURES ( ENRICO_SETBACK_2 + ENRICO_SETBACK_2_LENGTH )
|
|
#define ENRICO_CREATURES_LENGTH 3
|
|
|
|
// insurance company emails
|
|
#define INSUR_PAYMENT ( ENRICO_CREATURES + ENRICO_CREATURES_LENGTH )
|
|
#define INSUR_PAYMENT_LENGTH 3
|
|
#define INSUR_SUSPIC ( INSUR_PAYMENT + INSUR_PAYMENT_LENGTH )
|
|
#define INSUR_SUSPIC_LENGTH 3
|
|
#define INSUR_INVEST_OVER ( INSUR_SUSPIC + INSUR_SUSPIC_LENGTH )
|
|
#define INSUR_INVEST_OVER_LENGTH 3
|
|
#define INSUR_SUSPIC_2 ( INSUR_INVEST_OVER + INSUR_INVEST_OVER_LENGTH )
|
|
#define INSUR_SUSPIC_2_LENGTH 3
|
|
|
|
#define BOBBYR_NOW_OPEN ( INSUR_SUSPIC_2 + INSUR_SUSPIC_2_LENGTH )
|
|
#define BOBBYR_NOW_OPEN_LENGTH 3
|
|
|
|
#define KING_PIN_LETTER ( BOBBYR_NOW_OPEN + BOBBYR_NOW_OPEN_LENGTH )
|
|
#define KING_PIN_LETTER_LENGTH 4
|
|
|
|
#define LACK_PLAYER_PROGRESS_1 ( KING_PIN_LETTER + KING_PIN_LETTER_LENGTH )
|
|
#define LACK_PLAYER_PROGRESS_1_LENGTH 3
|
|
|
|
#define LACK_PLAYER_PROGRESS_2 ( LACK_PLAYER_PROGRESS_1 + LACK_PLAYER_PROGRESS_1_LENGTH )
|
|
#define LACK_PLAYER_PROGRESS_2_LENGTH 3
|
|
|
|
#define LACK_PLAYER_PROGRESS_3 ( LACK_PLAYER_PROGRESS_2 + LACK_PLAYER_PROGRESS_2_LENGTH )
|
|
#define LACK_PLAYER_PROGRESS_3_LENGTH 3
|
|
|
|
//A package from bobby r has arrived in Drassen
|
|
#define BOBBYR_SHIPMENT_ARRIVED ( LACK_PLAYER_PROGRESS_3 + LACK_PLAYER_PROGRESS_3_LENGTH )
|
|
#define BOBBYR_SHIPMENT_ARRIVED_LENGTH 4
|
|
|
|
// John Kulba has left the gifts for theplayers in drassen
|
|
#define JOHN_KULBA_GIFT_IN_DRASSEN ( BOBBYR_SHIPMENT_ARRIVED + BOBBYR_SHIPMENT_ARRIVED_LENGTH )
|
|
#define JOHN_KULBA_GIFT_IN_DRASSEN_LENGTH 4
|
|
|
|
//when a merc dies on ANOTHER assignment ( ie not with the player )
|
|
#define MERC_DIED_ON_OTHER_ASSIGNMENT ( JOHN_KULBA_GIFT_IN_DRASSEN + JOHN_KULBA_GIFT_IN_DRASSEN_LENGTH )
|
|
#define MERC_DIED_ON_OTHER_ASSIGNMENT_LENGTH 5
|
|
|
|
#define INSUR_1HOUR_FRAUD ( MERC_DIED_ON_OTHER_ASSIGNMENT + MERC_DIED_ON_OTHER_ASSIGNMENT_LENGTH )
|
|
#define INSUR_1HOUR_FRAUD_LENGTH 3
|
|
|
|
//when a merc is fired, and is injured
|
|
#define AIM_MEDICAL_DEPOSIT_PARTIAL_REFUND ( INSUR_1HOUR_FRAUD + INSUR_1HOUR_FRAUD_LENGTH )
|
|
#define AIM_MEDICAL_DEPOSIT_PARTIAL_REFUND_LENGTH 3
|
|
|
|
//when a merc is fired, and is dead
|
|
#define AIM_MEDICAL_DEPOSIT_NO_REFUND ( AIM_MEDICAL_DEPOSIT_PARTIAL_REFUND + AIM_MEDICAL_DEPOSIT_PARTIAL_REFUND_LENGTH )
|
|
#define AIM_MEDICAL_DEPOSIT_NO_REFUND_LENGTH 3
|
|
|
|
#define BOBBY_R_MEDUNA_SHIPMENT ( AIM_MEDICAL_DEPOSIT_NO_REFUND + AIM_MEDICAL_DEPOSIT_NO_REFUND_LENGTH )
|
|
#define BOBBY_R_MEDUNA_SHIPMENT_LENGTH 4
|
|
|
|
// anv: Kulba's odyssey
|
|
#define JOHN_KULBA_MISSED_FLIGHT_1 ( BOBBY_R_MEDUNA_SHIPMENT + BOBBY_R_MEDUNA_SHIPMENT_LENGTH )
|
|
#define JOHN_KULBA_MISSED_FLIGHT_1_LENGTH 3
|
|
|
|
#define JOHN_KULBA_MISSED_FLIGHT_2 ( JOHN_KULBA_MISSED_FLIGHT_1 + JOHN_KULBA_MISSED_FLIGHT_1_LENGTH )
|
|
#define JOHN_KULBA_MISSED_FLIGHT_2_LENGTH 3
|
|
|
|
#define JOHN_KULBA_MISSED_FLIGHT_3 ( JOHN_KULBA_MISSED_FLIGHT_2 + JOHN_KULBA_MISSED_FLIGHT_2_LENGTH )
|
|
#define JOHN_KULBA_MISSED_FLIGHT_3_LENGTH 3
|
|
|
|
#define PMC_INTRO (JOHN_KULBA_MISSED_FLIGHT_3 + JOHN_KULBA_MISSED_FLIGHT_3_LENGTH)
|
|
#define PMC_INTRO_LENGTH 3
|
|
|
|
#define KINGPIN_BOUNTY_INITIAL (PMC_INTRO + PMC_INTRO_LENGTH)
|
|
#define KINGPIN_BOUNTY_INITIAL_LENGTH 6
|
|
|
|
#define KINGPIN_BOUNTY_KINGPIN_REWARD (KINGPIN_BOUNTY_INITIAL + KINGPIN_BOUNTY_INITIAL_LENGTH)
|
|
#define KINGPIN_BOUNTY_KINGPIN_REWARD_LENGTH 4
|
|
|
|
#define KINGPIN_BOUNTY_ANGEL_THANKS (KINGPIN_BOUNTY_KINGPIN_REWARD + KINGPIN_BOUNTY_KINGPIN_REWARD_LENGTH)
|
|
#define KINGPIN_BOUNTY_ANGEL_THANKS_LENGTH 4
|
|
|
|
#define KINGPIN_BOUNTY_BH_GOTTARGET (KINGPIN_BOUNTY_ANGEL_THANKS + KINGPIN_BOUNTY_ANGEL_THANKS_LENGTH)
|
|
#define KINGPIN_BOUNTY_BH_GOTTARGET_LENGTH 4
|
|
|
|
#define KINGPIN_BOUNTY_TARGET_GOTAWAY (KINGPIN_BOUNTY_BH_GOTTARGET + KINGPIN_BOUNTY_BH_GOTTARGET_LENGTH)
|
|
#define KINGPIN_BOUNTY_TARGET_GOTAWAY_LENGTH 4
|
|
|
|
#define MILITIAROSTER_INTRO (KINGPIN_BOUNTY_TARGET_GOTAWAY + KINGPIN_BOUNTY_TARGET_GOTAWAY_LENGTH)
|
|
#define MILITIAROSTER_INTRO_LENGTH 4
|
|
|
|
#define INTEL_ENRICO_INTRO (MILITIAROSTER_INTRO + MILITIAROSTER_INTRO_LENGTH)
|
|
#define INTEL_ENRICO_INTRO_LENGTH 5
|
|
|
|
#endif
|
|
|
|
// WANNE: New 1.13 MERC merc mail text for level up that Speck sends
|
|
//#define MERC_UP_LEVEL_GASTON (BOBBY_R_MEDUNA_SHIPMENT + BOBBY_R_MEDUNA_SHIPMENT_LENGTH)
|
|
//#define MERC_UP_LEVEL_GASTON_LENGTH 2
|
|
//#define MERC_UP_LEVEL_STOGIE (MERC_UP_LEVEL_GASTON + MERC_UP_LEVEL_GASTON_LENGTH)
|
|
//#define MERC_UP_LEVEL_STOGIE_LENGTH 2
|
|
//#define MERC_UP_LEVEL_TEX (MERC_UP_LEVEL_STOGIE + MERC_UP_LEVEL_STOGIE_LENGTH)
|
|
//#define MERC_UP_LEVEL_TEX_LENGTH 2
|
|
//#define MERC_UP_LEVEL_BIGGENS (MERC_UP_LEVEL_TEX + MERC_UP_LEVEL_TEX_LENGTH)
|
|
//#define MERC_UP_LEVEL_BIGGENS_LENGTH 2
|
|
|
|
|
|
#define MERC_UP_LEVEL_GASTON 165
|
|
#define MERC_UP_LEVEL_STOGIE 166
|
|
#define MERC_UP_LEVEL_TEX 167
|
|
#define MERC_UP_LEVEL_BIGGENS 168
|
|
|
|
struct message{
|
|
STR16 pString;
|
|
struct message *Next;
|
|
struct message *Prev;
|
|
};
|
|
|
|
typedef struct message EmailMessage;
|
|
typedef EmailMessage *MessagePtr;
|
|
|
|
|
|
struct email
|
|
{
|
|
STR16 pSubject;
|
|
UINT16 usOffset;
|
|
UINT16 usLength;
|
|
UINT8 ubSender;
|
|
UINT32 iDate;
|
|
INT32 iId;
|
|
INT32 iFirstData;
|
|
UINT32 uiSecondData;
|
|
BOOLEAN fRead;
|
|
BOOLEAN fNew;
|
|
|
|
INT32 iThirdData;
|
|
INT32 iFourthData;
|
|
UINT32 uiFifthData;
|
|
UINT32 uiSixData;
|
|
|
|
// WANNE: A reference to the IMP position in the gMercProfiles array.
|
|
// So we know which analyse email belongs to the imp
|
|
INT32 iCurrentIMPPosition;
|
|
|
|
UINT8 EmailVersion;
|
|
|
|
UINT32 EmailType;
|
|
|
|
// WANNE.MAIL: Fix
|
|
INT16 iCurrentShipmentDestinationID;
|
|
|
|
struct email *Next;
|
|
struct email *Prev;
|
|
};
|
|
|
|
typedef struct email Email;
|
|
typedef Email *EmailPtr;
|
|
|
|
|
|
// This used when saving the emails to disk.
|
|
typedef struct
|
|
{
|
|
UINT16 usOffset;
|
|
UINT16 usLength;
|
|
UINT8 ubSender;
|
|
UINT32 iDate;
|
|
INT32 iId;
|
|
INT32 iFirstData;
|
|
UINT32 uiSecondData;
|
|
|
|
INT32 iThirdData;
|
|
INT32 iFourthData;
|
|
UINT32 uiFifthData;
|
|
UINT32 uiSixData;
|
|
|
|
BOOLEAN fRead;
|
|
BOOLEAN fNew;
|
|
|
|
INT32 iCurrentIMPPosition;
|
|
|
|
// WANNE.MAIL: Fix
|
|
INT16 iCurrentShipmentDestinationID;
|
|
|
|
} SavedEmailStruct;
|
|
|
|
|
|
|
|
struct pagemessages{
|
|
INT32 iIds[MAX_MESSAGES_PAGE];
|
|
INT32 iPageId;
|
|
struct pagemessages *Next;
|
|
struct pagemessages *Prev;
|
|
};
|
|
|
|
|
|
typedef struct pagemessages Page;
|
|
typedef Page *PagePtr;
|
|
|
|
struct messagerecord{
|
|
// CHAR16 pRecord[ 320 ];
|
|
CHAR16 pRecord[ 640 ];
|
|
struct messagerecord *Next;
|
|
};
|
|
|
|
typedef struct messagerecord Record;
|
|
typedef Record *RecordPtr;
|
|
|
|
typedef struct
|
|
{
|
|
RecordPtr pFirstRecord;
|
|
RecordPtr pLastRecord;
|
|
INT32 iPageNumber;
|
|
} EmailPageInfoStruct;
|
|
|
|
enum {
|
|
SENDER=0,
|
|
RECEIVED,
|
|
SUBJECT,
|
|
READ,
|
|
};
|
|
|
|
enum {
|
|
MAIL_ENRICO=0,
|
|
CHAR_PROFILE_SITE,
|
|
GAME_HELP,
|
|
IMP_PROFILE_RESULTS,
|
|
SPECK_FROM_MERC,
|
|
RIS_EMAIL,
|
|
BARRY_MAIL,
|
|
MELTDOWN_MAIL = BARRY_MAIL+ 39,
|
|
INSURANCE_COMPANY,
|
|
BOBBY_R,
|
|
KING_PIN,
|
|
JOHN_KULBA,
|
|
AIM_SITE,
|
|
#ifdef JA2UB
|
|
MAIL_MIGUEL,
|
|
#endif
|
|
PMC,
|
|
ANGEL_DASILVA,
|
|
};
|
|
|
|
// the length of the subject in char
|
|
#define EMAIL_SUBJECT_LENGTH 128
|
|
|
|
extern BOOLEAN fUnReadMailFlag;
|
|
extern BOOLEAN fNewMailFlag;
|
|
extern BOOLEAN fOldUnreadFlag;
|
|
extern BOOLEAN fOldNewMailFlag;
|
|
extern BOOLEAN fDeleteMailFlag;
|
|
extern BOOLEAN fDisplayMessageFlag;
|
|
extern BOOLEAN fReDrawNewMailFlag;
|
|
extern BOOLEAN fOpenMostRecentUnReadFlag;
|
|
extern EmailPtr pEmailList;
|
|
extern UINT32 guiEmailWarning;
|
|
|
|
|
|
void GameInitEmail();
|
|
BOOLEAN EnterEmail();
|
|
void ExitEmail();
|
|
void HandleEmail();
|
|
void RenderEmail();
|
|
|
|
#define CHECK_X iScreenWidthOffset + 15
|
|
#define CHECK_Y iScreenHeightOffset + 13
|
|
#define VIEWER_X iScreenWidthOffset + 155
|
|
#define VIEWER_Y iScreenHeightOffset + 70 + 21
|
|
#define MAIL_STRING_SIZE 640
|
|
|
|
|
|
// message manipulation
|
|
void AddEmailMessage(INT32 iMessageOffset, INT32 iMessageLength,STR16 pSubject, INT32 iDate, UINT8 ubSender, BOOLEAN fAlreadyRead, INT32 uiFirstData, UINT32 uiSecondData, INT32 iCurrentIMPPosition, INT16 iCurrentShipmentDestinationID, UINT8 EmailType, UINT32 EmailAIM );
|
|
void RemoveEmailMessage(INT32 iId);
|
|
EmailPtr GetEmailMessage(INT32 iId);
|
|
void LookForUnread();
|
|
void AddEmail(INT32 iMessageOffset, INT32 iMessageLength, UINT8 ubSender, INT32 iDate, INT32 iCurrentIMPPosition, INT16 iCurrentShipmentDestinationID, UINT8 EmailType);
|
|
|
|
// WANNE: For the new WF merc, when they available again
|
|
void AddEmailWFMercAvailable(INT32 iMessageOffset, INT32 iMessageLength, UINT8 ubSender, INT32 iDate, INT32 iCurrentIMPPosition, UINT8 EmailType);
|
|
|
|
void AddPreReadEmail(INT32 iMessageOffset, INT32 iMessageLength, UINT8 ubSender, INT32 iDate, UINT8 EmailType );
|
|
BOOLEAN DisplayNewMailBox();
|
|
void CreateDestroyNewMailButton();
|
|
void CreateDestroyDeleteNoticeMailButton();
|
|
void AddDeleteRegionsToMessageRegion(INT32 iViewerY);
|
|
void DisplayEmailHeaders( void );
|
|
void ReDrawNewMailBox( void );
|
|
void ReDisplayBoxes( void );
|
|
void ShutDownEmailList();
|
|
void AddMessageToPages(INT32 iMessageId);
|
|
void AddEmailWithSpecialData(INT32 iMessageOffset, INT32 iMessageLength, UINT8 ubSender, INT32 iDate, INT32 iFirstData, UINT32 uiSecondData, UINT8 EmailType, UINT32 EmailAIM );
|
|
|
|
void AddCustomEmail(INT32 iMessageOffset, INT32 iMessageLength, UINT8 ubSender, INT32 iDate, INT32 iCurrentIMPPosition, INT16 iCurrentShipmentDestinationID, UINT8 EmailType);
|
|
|
|
#ifdef JA2BETAVERSION
|
|
void AddAllEmails();
|
|
#endif
|
|
|
|
typedef struct
|
|
{
|
|
UINT8 uiIndex;
|
|
CHAR16 szMessage[MAIL_STRING_SIZE];
|
|
CHAR16 szSubject[EMAIL_SUBJECT_LENGTH];
|
|
|
|
} EMAIL_MERC_AVAILABLE_VALUES;
|
|
|
|
typedef struct
|
|
{
|
|
UINT8 uiIndex;
|
|
CHAR16 szMessage[MAIL_STRING_SIZE];
|
|
CHAR16 szSubject[EMAIL_SUBJECT_LENGTH];
|
|
|
|
} EMAIL_MERC_LEVEL_UP_VALUES;
|
|
|
|
typedef struct
|
|
{
|
|
UINT8 uiIndex;
|
|
CHAR16 szMessage[MAIL_STRING_SIZE];
|
|
CHAR16 szSubject[EMAIL_SUBJECT_LENGTH];
|
|
|
|
} EMAIL_MERC_INSURANCE_VALUES;
|
|
|
|
#define EMAIL_INDEX 500
|
|
|
|
typedef struct
|
|
{
|
|
UINT8 uiIndex;
|
|
CHAR16 szMessage[MAIL_STRING_SIZE][30];
|
|
CHAR16 szSubject[EMAIL_SUBJECT_LENGTH];
|
|
} EMAIL_OTHER_VALUES;
|
|
|
|
|
|
typedef struct
|
|
{
|
|
UINT8 uiIndex;
|
|
UINT32 EmailType;
|
|
UINT8 EmailVersion;
|
|
|
|
} EMAIL_TYPE;
|
|
|
|
#define EMAIL_VAL 4000
|
|
|
|
extern EMAIL_TYPE gEmailT[EMAIL_VAL];
|
|
|
|
enum {
|
|
//------------------------------
|
|
//Read Email.edt
|
|
// read message from Email.edt
|
|
TYPE_EMAIL_EMAIL_EDT = 0,
|
|
// read message from Email.edt and nickname (sender) read from MercProfiles.xml
|
|
TYPE_EMAIL_EMAIL_EDT_NAME_MERC,
|
|
|
|
//-------------------------------
|
|
//Read *.xml
|
|
//Read message from Email\EmailMercAvailable.xml.XML and nickname (sender) read from MercProfiles.xml
|
|
TYPE_EMAIL_AIM_AVAILABLE,
|
|
//Read message from Email\EmailMercLevelUp.xml.XML and nickname (sender) read from MercProfiles.xml
|
|
TYPE_EMAIL_MERC_LEVEL_UP,
|
|
|
|
//Read from others *.XMLs
|
|
TYPE_EMAIL_BOBBY_R,
|
|
|
|
//Read from JA2 Email.edt
|
|
TYPE_EMAIL_BOBBY_R_EMAIL_JA2_EDT,
|
|
TYPE_EMAIL_INSURANCE_COMPANY_EMAIL_JA2_EDT,
|
|
TYPE_EMAIL_DEAD_MERC_AIM_SITE_EMAIL_JA2_EDT,
|
|
|
|
//Read from others *.XMLs
|
|
TYPE_EMAIL_ENRICO,
|
|
TYPE_EMAIL_CHAR_PROFILE_SITE,
|
|
TYPE_EMAIL_GAME_HELP,
|
|
TYPE_EMAIL_IMP_PROFILE_RESULTS,
|
|
TYPE_EMAIL_SPECK_FROM_MERC,
|
|
TYPE_EMAIL_RIS_EMAIL,
|
|
TYPE_EMAIL_INSURANCE_COMPANY,
|
|
TYPE_EMAIL_KING_PIN,
|
|
TYPE_EMAIL_JOHN_KULBA,
|
|
TYPE_EMAIL_AIM_SITE,
|
|
|
|
TYPE_EMAIL_OTHER,
|
|
};
|
|
|
|
enum {
|
|
|
|
TYPE_E_NONE = 0,
|
|
|
|
TYPE_E_AIM_L1 = 1, //206
|
|
TYPE_E_AIM_L2 = 2, //27
|
|
TYPE_E_AIM_L3 = 3, //217
|
|
TYPE_E_AIM_L4 = 4, //214
|
|
|
|
TYPE_E_INSURANCE_L1 = 5, //170
|
|
TYPE_E_INSURANCE_L2 = 6, //211
|
|
TYPE_E_INSURANCE_L3 = 7, //170
|
|
TYPE_E_INSURANCE_L4 = 8, //173
|
|
TYPE_E_INSURANCE_L5 = 9, //179
|
|
TYPE_E_INSURANCE_L6 = 10, //176
|
|
|
|
TYPE_EMAIL_BOBBY_R_L1 = 11,
|
|
};
|
|
|
|
extern EMAIL_MERC_AVAILABLE_VALUES EmailMercAvailableText[NUM_PROFILES];
|
|
extern EMAIL_MERC_LEVEL_UP_VALUES EmailMercLevelUpText[NUM_PROFILES];
|
|
extern EMAIL_MERC_INSURANCE_VALUES EmailInsuranceText[NUM_PROFILES];
|
|
|
|
extern EMAIL_OTHER_VALUES EmailOtherText[EMAIL_INDEX];
|
|
extern BOOLEAN ReadXMLEmail;
|
|
extern void AddEmailTypeXML( INT32 iMessageOffset, INT32 iMessageLength, UINT8 ubSender, INT32 iDate, INT32 iCurrentIMPPosition, UINT8 EmailType );
|
|
extern void AddPreReadEmailTypeXML( INT32 iMessageOffset, INT32 iMessageLength, UINT8 ubSender, INT32 iDate, UINT8 EmailType );
|
|
extern void AddEmailWithSpecialDataXML(INT32 iMessageOffset, INT32 iMessageLength, UINT8 ubSender, INT32 iDate, INT32 iFirstData, UINT32 uiSecondData, UINT8 EmailTyp, UINT32 EmailAIMe );
|
|
extern BOOLEAN SaveNewEmailDataToSaveGameFile( HWFILE hFile );
|
|
extern BOOLEAN LoadNewEmailDataFromLoadGameFile( HWFILE hFile );
|
|
|
|
#ifdef JA2UB
|
|
extern void AddBobbyREmailJA2(INT32 iMessageOffset, INT32 iMessageLength, UINT8 ubSender, INT32 iDate, INT32 iCurrentIMPPosition, INT16 iCurrentShipmentDestinationID, UINT8 EmailType );
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|