mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
Added missing #includes Added LUA scripting and console Changed the way tracers are visualized, so they work more like real tracers instead of a light fountain Fixed signedness of many grid variables used in GetMouseMapPos calls Fixed enemy weapon choosing: Sometimes a mortar is chosen but later rejected, but the grenade class was not reset. Caused assertion failure Added checks so enemies don't try to chuck RPG grenades with their hands Now possible to shoot a someone in the head if he's in water Fixed InitSightArrays to also clear soldier interrupt duel points. This was causing an assertion failure elsewhere in the code because the interrupt list still had soldiers on it sometimes when this function was called. Soldiers are much less willing to forfeit their turn over an attempt to use more APs than they have Removed early setting of muzzle flash. This would allow enemies to get an interrupt before you even fired. Fixed item dropping by AI. If AI tried to drop something while standing it would cause deadlock Change to greatly speed up closing the sector inventory window in an unloaded sector Added conditional compile flag to always give robot weapon ready advantage, even for 360 degree sighting Check builddefines.h for the conditional flags. Of greatest interest might be LUA_CONSOLE. This will cause the game to bring up a command console when run. However this console is severely lacking in many areas. If anybody knows of an open-source terminal/console that could be used instead, it would be appreciated. The existing console does bad things when you try to close it, and since it counts as a separate app, it pauses the game while it has focus. LUA scripting is very limited, basically just proof of concept. There is one global variable, the Soldiers array. An array index gives you the soldier in that slot in the currently loaded sector. The soldier has a few things that can be accessed: name (short name); fullname (long name); grid (current grid #, can be changed); walkto(grid) (function to walk to another grid); runto(grid) (function to run to another grid) git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@924 3b4a5df2-a311-0410-b5c6-a8a6f20db521
573 lines
21 KiB
C
573 lines
21 KiB
C
#ifndef __QUESTS_H
|
|
#define __QUESTS_H
|
|
|
|
#include "FileMan.h"
|
|
#include "strategicmap.h"
|
|
|
|
// Quest.ubStatus values
|
|
#define QUESTNOTSTARTED 0
|
|
#define QUESTINPROGRESS 1
|
|
#define QUESTDONE 2
|
|
|
|
#define MAX_QUESTS 30
|
|
#define MAX_FACTS 65536
|
|
#define NUM_FACTS 500 //If you increase this number, add entries to the fact text list in QuestText.c
|
|
|
|
|
|
#define MAP_ROW_A 1
|
|
#define MAP_ROW_B 2
|
|
#define MAP_ROW_C 3
|
|
#define MAP_ROW_D 4
|
|
#define MAP_ROW_E 5
|
|
#define MAP_ROW_F 6
|
|
#define MAP_ROW_G 7
|
|
#define MAP_ROW_H 8
|
|
#define MAP_ROW_I 9
|
|
#define MAP_ROW_J 10
|
|
#define MAP_ROW_K 11
|
|
#define MAP_ROW_L 12
|
|
#define MAP_ROW_M 13
|
|
#define MAP_ROW_N 14
|
|
#define MAP_ROW_O 15
|
|
#define MAP_ROW_P 16
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// --------------------------------------------------------------------------------------
|
|
// Q U E S T D E F I N E S
|
|
// --------------------------------------------------------------------------------------
|
|
|
|
enum Quests
|
|
{
|
|
QUEST_DELIVER_LETTER = 0,
|
|
QUEST_FOOD_ROUTE,
|
|
QUEST_KILL_TERRORISTS,
|
|
QUEST_KINGPIN_IDOL,
|
|
QUEST_KINGPIN_MONEY,
|
|
QUEST_RUNAWAY_JOEY,
|
|
QUEST_RESCUE_MARIA,
|
|
QUEST_CHITZENA_IDOL,
|
|
QUEST_HELD_IN_ALMA,
|
|
QUEST_INTERROGATION,
|
|
|
|
QUEST_ARMY_FARM, // 10
|
|
QUEST_FIND_SCIENTIST,
|
|
QUEST_DELIVER_VIDEO_CAMERA,
|
|
QUEST_BLOODCATS,
|
|
QUEST_FIND_HERMIT,
|
|
QUEST_CREATURES,
|
|
QUEST_CHOPPER_PILOT,
|
|
QUEST_ESCORT_SKYRIDER,
|
|
QUEST_FREE_DYNAMO,
|
|
QUEST_ESCORT_TOURISTS,
|
|
|
|
QUEST_FREE_CHILDREN, // 20
|
|
QUEST_LEATHER_SHOP_DREAM,
|
|
|
|
QUEST_KILL_DEIDRANNA = 25
|
|
} ;
|
|
/*
|
|
// The first quest is mandatory. Player must find Miguel and deliver letter to him. The tough
|
|
// part is finding him. Miguel is UNDERGROUND in EAST OMERTA. Only by talking to Miguel's right
|
|
// hand man will the player be delivered to this hideout. This hideout will also serve as the
|
|
// player's HQ and inventory stash.
|
|
#define QUEST_DELIVER_LETTER 0
|
|
|
|
|
|
// This quest is triggered by Miguel. Player can liberate route from either SAN MONA or
|
|
// Drassen. Result allows player to hire on 2 of Miguel's guys.
|
|
#define QUEST_FOOD_ROUTE 1
|
|
|
|
// terrorist quests: 3 out of possible 6 per game - randomized which 3 and where. The
|
|
// Bounty Hunter will either appear in CAMBRIA or ALMA. He'll give a diskette with files
|
|
// on three of these terrorists. (we won't give files for all six since it may confuse
|
|
// player if ony 3 of them exist). The files will contain photographs. The terrorists will go
|
|
// by aliases and the photographs will be hard to tell if the NPC is really a terrorist.
|
|
// Bounty Hunter will give reward ($$$ CASH $$$) for proof of each death.
|
|
#define QUEST_KILL_TERRORISTS 2
|
|
#define QUEST_KILL_IMPOSTER 3
|
|
#define QUEST_KILL_TERRORIST3 4
|
|
#define QUEST_KILL_TERRORIST4 5
|
|
#define QUEST_KILL_TERRORIST5 6
|
|
#define QUEST_KILL_TERRORIST6 7
|
|
|
|
// While there'll always be one arms dealer in SAN MONA, there'll be a second one
|
|
// randomized in the outskirts of either: GRUMM, BARLINETTA or ESTONI. Only way player
|
|
// will know where to look will be to talk to certain town residents.
|
|
#define QUEST_FIND_ARMSDEALER 8
|
|
|
|
|
|
// CAMBRIA has 4 medical doctors, supplies and facilities
|
|
#define QUEST_MEDICAL_FACILITY 9 // Cambria
|
|
|
|
|
|
// A hermit will exist in each game, but in a different location. The player can try to
|
|
// talk to him, but he won't admit much. If the player threatens him, he gets his pet blood
|
|
// cats to attack the player. However, if the player talks to the hermit's brother, the brother
|
|
// will give valuable info (a code phrase) to the player that will allow the hermit to talk
|
|
// to the player, telling him about using creature blood when in the mines and giving him a
|
|
// vile - good enough for 3 mercs.
|
|
#define QUEST_FIND_HERMIT 10
|
|
|
|
|
|
// SAN MONA is a tough town. Player will find it tough to get any info out of any residents
|
|
// because they won't trust the player's mercs. SAN MONA doesn't have it as tough as any of
|
|
// the other towns - the local authorities (Queen's police) is as corrupt as the residents
|
|
// and to protect themselves they don't deal with outsiders. All residents will more or less
|
|
// let the player know that unless the word comes down from the top dude, no one will speak
|
|
// or deal with them. So, the player must seek out the top dude who'll want the player to
|
|
// fight his strongest bodyguard (hand to hand or knife).
|
|
#define QUEST_SAN_MONA_FIGHT 11
|
|
|
|
|
|
|
|
// Need a way to bring a kid giving us something into the picture.
|
|
|
|
|
|
// Micky returns in JA2 but with a new occupation.
|
|
#define QUEST_FIND_MICKY 12
|
|
|
|
|
|
|
|
#define QUEST_FREE_PRISONERS 13 // Tixa
|
|
|
|
#define QUEST_FIND_SCIENTIST 14
|
|
|
|
|
|
#define QUEST_KILL_BUGS 15 // Queen bug - randomized location?
|
|
|
|
//
|
|
#define QUEST_ESCAPE_MEDUNA 16
|
|
|
|
// Arulco farmer in F11 (Juan Erizia) is suspected of harboring a weapons cache in support
|
|
// of the Queen's forces. Player finds out about him in Cambria via conversation with a non
|
|
// family member (many of Cambria's residents are related/Erizias). So, player can go
|
|
// investigate. F11 must be liberated and Juan Erizia must still be alive. We randomize
|
|
// between QUEST_WEAPON_FARM and QUEST_SICK_WIFE. Player goes to talk to Juan. If he arrives
|
|
// during nighttime, there won't be too many cousins hanging around, but player has to be
|
|
// careful
|
|
//any attempt to
|
|
// investigate will awaken everyone, a battle will ensue.
|
|
|
|
|
|
// Player finds out through conversation in Cambria that Juan suspected of harboring weapons
|
|
// cache.
|
|
|
|
// Juan is very protective of his farm.
|
|
// Juan has 3 sons, 4 nephews and a sick wife.
|
|
// Juan refuses attempts to inspect his farm unless his brother has arranged it.
|
|
// Brother Emile is in Cambria.
|
|
// Player can investigate at night as long as he doesn't wake anyone.
|
|
// If player has talked to Emile, Juan will give him permission to investigate everywhere
|
|
// except his bedroom (citing a sick wife).
|
|
|
|
|
|
|
|
|
|
#define QUEST_WEAPON_FARM 17
|
|
|
|
#define QUEST_SICK_WIFE 18
|
|
|
|
|
|
// Queen has removed a national & historic treasure from the ruins of Chitzena. It is
|
|
// believed a wealthy supporter of the Queen purchased the item and that it is located in
|
|
// his home in Balime. Returning the treasure to Chitzena boosts loyalty points.
|
|
#define QUEST_RUIN_ARTIFACT 19
|
|
|
|
|
|
// In Cambria, there is a serial killer on the loose, attacking miners. This will only
|
|
// start to happen once player has control over the city & mine. It affects the number
|
|
// of residents willing to work in the mines (loyalty basically).
|
|
#define QUEST_MURDERER 20
|
|
|
|
// Find the chopper pilot near Drassen(?) and get him to work for you.
|
|
#define QUEST_CHOPPER_PILOT 21
|
|
|
|
#define QUEST_KILL_DEIDRANNA 29 // Meduna
|
|
|
|
|
|
|
|
// --------------------------------------------------------------------------------------
|
|
*/
|
|
|
|
|
|
// FACTS
|
|
|
|
enum Facts
|
|
{
|
|
// city liberations
|
|
FACT_OMERTA_LIBERATED = 0,
|
|
FACT_DRASSEN_LIBERATED, // 1
|
|
FACT_SANMONA_LIBERATED, // 2
|
|
FACT_CAMBRIA_LIBERATED, // 3
|
|
FACT_ALMA_LIBERATED, // 4
|
|
FACT_GRUMM_LIBERATED, // 5
|
|
FACT_TIXA_LIBERATED, // 6
|
|
FACT_CHITZENA_LIBERATED,// 7
|
|
FACT_ESTONI_LIBERATED, // 8
|
|
FACT_BALIME_LIBERATED, // 9
|
|
FACT_ORTA_LIBERATED, // 10
|
|
FACT_MEDUNA_LIBERATED, // 11
|
|
|
|
// quest stuff
|
|
FACT_MIGUEL_FOUND, // 12
|
|
FACT_LETTER_DELIVERED, // 13
|
|
FACT_FOOD_ROUTE_EXISTS, // 14
|
|
FACT_DIMITRI_DEAD, // 15
|
|
|
|
FACT_MIGUEL_READ_LETTER = 23,
|
|
|
|
// rebels do not trust player
|
|
FACT_REBELS_HATE_PLAYER = 25,
|
|
|
|
FACT_PACOS_KILLED = 29,
|
|
|
|
FACT_CURRENT_SECTOR_IS_SAFE = 31,
|
|
FACT_BOBBYRAY_SHIPMENT_IN_TRANSIT, // 32
|
|
FACT_NEW_BOBBYRAY_SHIPMENT_WAITING, // 33
|
|
FACT_REALLY_NEW_BOBBYRAY_SHIPMENT_WAITING,// 34
|
|
FACT_LARGE_SIZED_OLD_SHIPMENT_WAITING,// 35
|
|
FACT_PLAYER_FOUND_ITEMS_MISSING,// 36
|
|
FACT_PABLO_PUNISHED_BY_PLAYER,// 37
|
|
|
|
FACT_PABLO_RETURNED_GOODS = 39,
|
|
|
|
FACT_PABLOS_BRIBED = 41,
|
|
FACT_ESCORTING_SKYRIDER,// 42
|
|
FACT_SKYRIDER_CLOSE_TO_CHOPPER,// 43
|
|
|
|
FACT_SKYRIDER_USED_IN_MAPSCREEN = 45,
|
|
FACT_NPC_OWED_MONEY,// 46
|
|
FACT_NPC_WOUNDED,// 47
|
|
FACT_NPC_WOUNDED_BY_PLAYER,// 48
|
|
|
|
FACT_IRA_NOT_PRESENT = 50,
|
|
FACT_IRA_TALKING,// 51
|
|
FACT_FOOD_QUEST_OVER,// 52
|
|
FACT_PABLOS_STOLE_FROM_LATEST_SHIPMENT,// 53
|
|
FACT_LAST_SHIPMENT_CRASHED,// 54
|
|
FACT_LAST_SHIPMENT_WENT_TO_WRONG_AIRPORT,// 55
|
|
FACT_SHIPMENT_DELAYED_24_HOURS,// 56
|
|
FACT_PACKAGE_DAMAGED,// 57
|
|
FACT_PACKAGE_LOST_PERMANENTLY,// 58
|
|
FACT_NEXT_PACKAGE_CAN_BE_LOST,// 59
|
|
FACT_NEXT_PACKAGE_CAN_BE_DELAYED,// 60
|
|
FACT_MEDIUM_SIZED_SHIPMENT_WAITING,// 61
|
|
FACT_LARGE_SIZED_SHIPMENT_WAITING,// 62
|
|
FACT_DOREEN_HAD_CHANGE_OF_HEART,// 63
|
|
|
|
FACT_IRA_UNHIRED_AND_ALIVE = 65,
|
|
|
|
FACT_NPC_BLEEDING = 68,
|
|
|
|
FACT_NPC_BLEEDING_BUT_OKAY = 70,
|
|
FACT_PLAYER_HAS_HEAD_AND_CARMEN_IN_SAN_MONA,// 71
|
|
FACT_PLAYER_HAS_HEAD_AND_CARMEN_IN_CAMBRIA,// 72
|
|
FACT_PLAYER_HAS_HEAD_AND_CARMEN_IN_DRASSEN,// 73
|
|
FACT_FATHER_DRUNK,// 74
|
|
FACT_WOUNDED_MERCS_NEARBY,// 75
|
|
FACT_ONE_WOUNDED_MERC_NEARBY,// 76
|
|
FACT_MULTIPLE_WOUNDED_MERCS_NEARBY,// 77
|
|
FACT_BRENDA_IN_STORE_AND_ALIVE,// 78
|
|
FACT_BRENDA_DEAD,// 79
|
|
|
|
FACT_NPC_IS_ENEMY = 81,
|
|
FACT_PC_STRONG_AND_LESS_THAN_3_MALES_PRESENT,// 82
|
|
FACT_PC_STRONG_AND_3_PLUS_MALES_PRESENT,// 83
|
|
|
|
FACT_HANS_AT_SPOT = 85,
|
|
FACT_TONY_NOT_AVAILABLE,// 86
|
|
FACT_FEMALE_SPEAKING_TO_NPC,// 87
|
|
FACT_PLAYER_USED_BROTHEL,// 88
|
|
FACT_CARLA_AVAILABLE,// 89
|
|
FACT_CINDY_AVAILABLE,// 90
|
|
FACT_BAMBI_AVAILABLE,// 91
|
|
FACT_NO_GIRLS_AVAILABLE,// 92
|
|
FACT_PLAYER_WAITED_FOR_GIRL,// 93
|
|
FACT_PLAYER_PAID_RIGHT_AMOUNT,// 94
|
|
FACT_PLAYER_PASSED_GOON,// 95
|
|
FACT_MULTIPLE_MERCS_CLOSE ,// 96,
|
|
FACT_SOME_MERCS_CLOSE,// 97
|
|
|
|
FACT_DARREN_EXPECTING_MONEY = 99,
|
|
FACT_PC_NEAR,// 100
|
|
FACT_CARMEN_IN_C5,// 101
|
|
FACT_CARMEN_EXPLAINED_DEAL,// 102
|
|
FACT_KINGPIN_KNOWS_MONEY_GONE,// 103
|
|
FACT_PLAYER_REPAID_KINGPIN,// 104
|
|
FACT_FRANK_HAS_BEEN_BRIBED,// 105
|
|
|
|
FACT_PAST_CLUB_CLOSING_AND_PLAYER_WARNED = 107,
|
|
FACT_JOEY_ESCORTED,// 108
|
|
FACT_JOEY_IN_C5,// 109
|
|
FACT_JOEY_NEAR_MARTHA,// 110
|
|
FACT_JOEY_DEAD,// 111
|
|
FACT_MERC_NEAR_MARTHA,// 112
|
|
FACT_SPIKE_AT_DOOR,// 113
|
|
|
|
FACT_ANGEL_SOLD_VEST = 115,
|
|
FACT_MARIA_ESCORTED,// 116
|
|
FACT_MARIA_ESCORTED_AT_LEATHER_SHOP,// 117
|
|
FACT_PLAYER_WANTS_TO_BUY_LEATHER_VEST,// 118
|
|
FACT_MARIA_ESCAPE_NOTICED,// 119
|
|
FACT_ANGEL_LEFT_DEED,// 120
|
|
|
|
FACT_NPC_BANDAGED_TODAY = 122,
|
|
|
|
FACT_PABLO_WONT_STEAL = 124,
|
|
FACT_AGENTS_PREVENTED_SHIPMENT,// 125
|
|
|
|
FACT_LARGE_AMOUNT_OF_MONEY = 127,
|
|
FACT_SMALL_AMOUNT_OF_MONEY,// 128
|
|
|
|
FACT_LOYALTY_OKAY = 135,
|
|
FACT_LOYALTY_LOW,// 136
|
|
FACT_LOYALTY_HIGH,// 137
|
|
FACT_PLAYER_DOING_POORLY,// 138
|
|
|
|
FACT_CURRENT_SECTOR_G9 = 140,
|
|
FACT_CURRENT_SECTOR_C5,// 141
|
|
FACT_CURRENT_SECTOR_C13,// 142
|
|
FACT_CARMEN_HAS_TEN_THOUSAND,// 143
|
|
FACT_SLAY_HIRED_AND_WORKED_FOR_48_HOURS,// 144
|
|
|
|
FACT_SLAY_IN_SECTOR = 146,
|
|
|
|
FACT_VINCE_EXPLAINED_HAS_TO_CHARGE = 148,
|
|
FACT_VINCE_EXPECTING_MONEY,// 149
|
|
FACT_PLAYER_STOLE_MEDICAL_SUPPLIES,// 150
|
|
FACT_PLAYER_STOLE_MEDICAL_SUPPLIES_AGAIN,// 151
|
|
FACT_VINCE_RECRUITABLE,// 152
|
|
|
|
FACT_ALL_TERRORISTS_KILLED = 156,
|
|
FACT_ELGIN_ALIVE,// 157
|
|
|
|
FACT_SHANK_IN_SQUAD_BUT_NOT_SPEAKING = 164,
|
|
|
|
FACT_SHANK_NOT_IN_SECTOR = 167,
|
|
FACT_BLOODCAT_QUEST_STARTED_TWO_DAYS_AGO,// 168
|
|
|
|
FACT_QUEEN_DEAD = 170,
|
|
|
|
FACT_SPEAKER_AIM_OR_AIM_NEARBY = 171,
|
|
FACT_MINE_EMPTY,// 172
|
|
FACT_MINE_RUNNING_OUT,// 173
|
|
FACT_MINE_PRODUCING_BUT_LOYALTY_LOW,// 174
|
|
FACT_CREATURES_IN_MINE,// 175
|
|
FACT_PLAYER_LOST_MINE,// 176
|
|
FACT_MINE_AT_FULL_PRODUCTION,// 177
|
|
FACT_DYNAMO_SPEAKING_OR_NEARBY,// 178
|
|
|
|
FACT_CHALICE_STOLEN = 184,
|
|
FACT_JOHN_EPC,// 185
|
|
FACT_JOHN_AND_MARY_EPCS,// 186
|
|
FACT_MARY_ALIVE,// 187
|
|
FACT_MARY_EPC,// 188
|
|
FACT_MARY_BLEEDING,// 189
|
|
FACT_JOHN_ALIVE,// 190
|
|
FACT_JOHN_BLEEDING,// 191
|
|
FACT_MARY_OR_JOHN_ARRIVED,// 192
|
|
FACT_MARY_DEAD,// 193
|
|
FACT_MINERS_PLACED,// 194
|
|
FACT_KROTT_GOT_ANSWER_NO,// 195
|
|
FACT_MADLAB_EXPECTING_FIREARM = 197,
|
|
FACT_MADLAB_EXPECTING_VIDEO_CAMERA,// 198
|
|
FACT_ITEM_POOR_CONDITION,// 199
|
|
|
|
FACT_ROBOT_READY = 202,
|
|
FACT_FIRST_ROBOT_DESTROYED,// 203
|
|
FACT_MADLAB_HAS_GOOD_CAMERA,// 204
|
|
FACT_ROBOT_READY_SECOND_TIME,// 205
|
|
FACT_SECOND_ROBOT_DESTROYED,// 206
|
|
|
|
FACT_DYNAMO_IN_J9 = 208,
|
|
FACT_DYNAMO_ALIVE,// 209
|
|
FACT_ANOTHER_FIGHT_POSSIBLE,// 210
|
|
FACT_RECEIVING_INCOME_FROM_DCAC,// 211
|
|
FACT_PLAYER_BEEN_TO_K4,// 212
|
|
|
|
FACT_WARDEN_DEAD = 214,
|
|
|
|
FACT_FIRST_BARTENDER = 216,
|
|
FACT_SECOND_BARTENDER,// 217
|
|
FACT_THIRD_BARTENDER,// 218
|
|
FACT_FOURTH_BARTENDER,// 219
|
|
FACT_MANNY_IS_BARTENDER,// 220
|
|
FACT_NOTHING_REPAIRED_YET,// 221,
|
|
|
|
FACT_OK_USE_HUMMER = 224,
|
|
|
|
FACT_DAVE_HAS_GAS = 226,
|
|
FACT_VEHICLE_PRESENT,// 227
|
|
FACT_FIRST_BATTLE_WON,// 228
|
|
FACT_ROBOT_RECRUITED_AND_MOVED,// 229
|
|
FACT_NO_CLUB_FIGHTING_ALLOWED,// 230
|
|
FACT_PLAYER_FOUGHT_THREE_TIMES_TODAY,// 231
|
|
FACT_PLAYER_SPOKE_TO_DRASSEN_MINER,// 232
|
|
FACT_PLAYER_DOING_WELL,// 233
|
|
FACT_PLAYER_DOING_VERY_WELL,// 234
|
|
FACT_FATHER_DRUNK_AND_SCIFI_OPTION_ON,// 235
|
|
FACT_MICKY_DRUNK,// 236
|
|
FACT_PLAYER_FORCED_WAY_INTO_BROTHEL,// 237
|
|
|
|
FACT_PLAYER_PAID_FOR_TWO_IN_BROTHEL = 239,
|
|
|
|
FACT_PLAYER_OWNS_2_TOWNS_INCLUDING_OMERTA = 242,
|
|
FACT_PLAYER_OWNS_3_TOWNS_INCLUDING_OMERTA,// 243
|
|
FACT_PLAYER_OWNS_4_TOWNS_INCLUDING_OMERTA,// 244
|
|
|
|
FACT_MALE_SPEAKING_FEMALE_PRESENT = 248,
|
|
FACT_HICKS_MARRIED_PLAYER_MERC,// 249
|
|
FACT_MUSEUM_OPEN,// 250
|
|
FACT_BROTHEL_OPEN,// 251
|
|
FACT_CLUB_OPEN,// 252
|
|
FACT_FIRST_BATTLE_FOUGHT,// 253
|
|
FACT_FIRST_BATTLE_BEING_FOUGHT,// 254
|
|
FACT_KINGPIN_INTRODUCED_SELF,// 255
|
|
FACT_KINGPIN_NOT_IN_OFFICE,// 256
|
|
FACT_DONT_OWE_KINGPIN_MONEY,// 257
|
|
FACT_PC_MARRYING_DARYL_IS_FLO,// 258
|
|
FACT_I16_BLOODCATS_KILLED,// 259
|
|
|
|
FACT_NPC_COWERING = 261,
|
|
|
|
FACT_TOP_AND_BOTTOM_LEVELS_CLEARED = 264,
|
|
FACT_TOP_LEVEL_CLEARED,// 265
|
|
FACT_BOTTOM_LEVEL_CLEARED,// 266
|
|
FACT_NEED_TO_SAY_SOMETHING,// 267
|
|
FACT_ATTACHED_ITEM_BEFORE,// 268
|
|
FACT_SKYRIDER_EVER_ESCORTED,// 269
|
|
FACT_NPC_NOT_UNDER_FIRE,// 270
|
|
FACT_WILLIS_HEARD_ABOUT_JOEY_RESCUE,// 271
|
|
FACT_WILLIS_GIVES_DISCOUNT,// 272
|
|
FACT_HILLBILLIES_KILLED,// 273
|
|
FACT_KEITH_OUT_OF_BUSINESS, // 274
|
|
FACT_MIKE_AVAILABLE_TO_ARMY,// 275
|
|
FACT_KINGPIN_CAN_SEND_ASSASSINS,// 276
|
|
FACT_ESTONI_REFUELLING_POSSIBLE,// 277
|
|
FACT_MUSEUM_ALARM_WENT_OFF,// 278
|
|
|
|
FACT_MADDOG_IS_SPEAKER = 280,
|
|
|
|
FACT_ANGEL_MENTIONED_DEED = 282,
|
|
FACT_IGGY_AVAILABLE_TO_ARMY,// 283
|
|
FACT_PC_HAS_CONRADS_RECRUIT_OPINION,// 284
|
|
|
|
FACT_NPC_HOSTILE_OR_PISSED_OFF = 289,
|
|
|
|
FACT_TONY_IN_BUILDING = 291,
|
|
FACT_SHANK_SPEAKING = 292,
|
|
FACT_PABLO_ALIVE,// 293
|
|
FACT_DOREEN_ALIVE,// 294
|
|
FACT_WALDO_ALIVE,// 295
|
|
FACT_PERKO_ALIVE,// 296
|
|
FACT_TONY_ALIVE,// 297
|
|
|
|
FACT_VINCE_ALIVE = 299,
|
|
FACT_JENNY_ALIVE,// 300
|
|
|
|
FACT_ARNOLD_ALIVE = 303,
|
|
FACT_ROCKET_RIFLE_EXISTS,// 304,
|
|
FACT_24_HOURS_SINCE_JOEY_RESCUED,// 305
|
|
FACT_24_HOURS_SINCE_DOCTOR_TALKED_TO, // 306
|
|
FACT_OK_USE_ICECREAM, // 307
|
|
FACT_KINGPIN_DEAD,// 308
|
|
|
|
FACT_KIDS_ARE_FREE = 318,
|
|
FACT_PLAYER_IN_SAME_ROOM,// 319
|
|
|
|
FACT_PLAYER_IN_CONTROLLED_DRASSEN_MINE = 324,
|
|
FACT_PLAYER_SPOKE_TO_CAMBRIA_MINER,// 325
|
|
FACT_PLAYER_IN_CONTROLLED_CAMBRIA_MINE,// 326
|
|
FACT_PLAYER_SPOKE_TO_CHITZENA_MINER,// 327
|
|
FACT_PLAYER_IN_CONTROLLED_CHITZENA_MINE,// 328
|
|
FACT_PLAYER_SPOKE_TO_ALMA_MINER,// 329
|
|
FACT_PLAYER_IN_CONTROLLED_ALMA_MINE,// 330
|
|
FACT_PLAYER_SPOKE_TO_GRUMM_MINER,// 331
|
|
FACT_PLAYER_IN_CONTROLLED_GRUMM_MINE,// 332
|
|
|
|
FACT_LARRY_CHANGED = 334,
|
|
FACT_PLAYER_KNOWS_ABOUT_BLOODCAT_LAIR,// 335
|
|
FACT_HOSPITAL_FREEBIE_DECISION_MADE,// 336
|
|
FACT_ENOUGH_LOYALTY_TO_TRAIN_MILITIA,// 337
|
|
FACT_WALKER_AT_BAR,// 338
|
|
|
|
FACT_JOEY_ALIVE = 340,
|
|
FACT_UNPROPOSITIONED_FEMALE_SPEAKING_TO_NPC,// 341
|
|
FACT_84_AND_85_TRUE,// 342
|
|
|
|
FACT_KINGPIN_WILL_LEARN_OF_MONEY_GONE = 350,
|
|
|
|
FACT_SKYRIDER_IN_B15 = 354,
|
|
FACT_SKYRIDER_IN_C16,// 355
|
|
FACT_SKYRIDER_IN_E14,// 356
|
|
FACT_SKYRIDER_IN_D12,// 357
|
|
FACT_SKYRIDER_HINT_GIVEN,// 358
|
|
FACT_KINGPIN_IS_ENEMY,// 359
|
|
FACT_BRENDA_PATIENCE_TIMER_EXPIRED,// 360
|
|
|
|
FACT_DYNAMO_NOT_SPEAKER = 362,
|
|
|
|
FACT_PABLO_BRIBED = 365,
|
|
|
|
FACT_CONRAD_SHOULD_GO = 367,
|
|
FACT_PLAYER_KILLED_BOXERS = 368,
|
|
} ;
|
|
//** END FACTS *************************
|
|
|
|
#define BOBBYR_SHIPPING_DEST_SECTOR_X 13
|
|
#define BOBBYR_SHIPPING_DEST_SECTOR_Y 2
|
|
#define BOBBYR_SHIPPING_DEST_SECTOR_Z 0
|
|
#define BOBBYR_SHIPPING_DEST_GRIDNO 10112
|
|
#define PABLOS_STOLEN_DEST_GRIDNO 1
|
|
#define LOST_SHIPMENT_GRIDNO 2
|
|
|
|
// omerta positions
|
|
#define OMERTA_LEAVE_EQUIP_SECTOR_X 9
|
|
#define OMERTA_LEAVE_EQUIP_SECTOR_Y 1
|
|
#define OMERTA_LEAVE_EQUIP_SECTOR_Z 0
|
|
#define OMERTA_LEAVE_EQUIP_GRIDNO 4868
|
|
|
|
// NB brothel rooms 88-90 removed because they are the antechamber
|
|
#define IN_BROTHEL( room ) (gWorldSectorX == 5 && gWorldSectorY == MAP_ROW_C && (room) >= 91 && (room) <= 119)
|
|
#define IN_BROTHEL_GUARD_ROOM( room ) ( room == 110 )
|
|
|
|
#define IN_KINGPIN_HOUSE( room ) ( gWorldSectorX == 5 && gWorldSectorY == MAP_ROW_D && (room) >= 30 && (room) <= 39 )
|
|
|
|
#define LOYALTY_LOW_THRESHOLD 30
|
|
#define LOYALTY_OK_THRESHOLD 50
|
|
#define LOYALTY_HIGH_THRESHOLD 80
|
|
|
|
extern UINT8 gubQuest[MAX_QUESTS];
|
|
extern UINT8 gubFact[NUM_FACTS];
|
|
|
|
extern void SetFactTrue( UINT16 usFact );
|
|
extern void SetFactFalse( UINT16 usFact );
|
|
extern BOOLEAN CheckFact( UINT16 usFact, UINT8 ubProfileID );
|
|
|
|
extern void StartQuest( UINT8 ubQuest, INT16 sSectorX, INT16 sSectorY );
|
|
extern void EndQuest( UINT8 ubQuest, INT16 sSectorX, INT16 sSectorY );
|
|
|
|
extern void InternalStartQuest( UINT8 ubQuest, INT16 sSectorX, INT16 sSectorY, BOOLEAN fUpdateHistory );
|
|
extern void InternalEndQuest( UINT8 ubQuest, INT16 sSectorX, INT16 sSectorY, BOOLEAN fUpdateHistory );
|
|
|
|
|
|
extern void CheckForQuests( UINT32 uiDay );
|
|
|
|
void InitQuestEngine();
|
|
|
|
BOOLEAN LoadQuestInfoFromSavedGameFile( HWFILE hFile );
|
|
BOOLEAN SaveQuestInfoToSavedGameFile( HWFILE hFile );
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|