home *** CD-ROM | disk | FTP | other *** search
/ PC Gamer 5.14 / 2000-11_-_Disc_5.14.iso / Goodies / 3DGameStudio / Adeptus / adept2.wdl < prev    next >
Text File  |  2000-04-25  |  24KB  |  975 lines

  1. //@
  2. # VR GAMES                       WDL-Script                      Project: DEMO ADEPTUS
  3. #
  4. # Auftraggeber   : Conitec GmbH
  5. #
  6. #*********************************************************************
  7. # Module        : adept2.wdl - Kundenversion
  8. # Version       : 2.1 (Made with WDL-STUDIO & Beautyfier)
  9. # Date          :  19.8.99
  10. # Responsible   : Harald Schmidt
  11. # Description   : Conitec Demo-RPG
  12. # *********************************************************************
  13. // Revision 1 02-04-00 JC: Cleaned up everything a little
  14. //
  15. // Revision 2 03-20-00 DP: Commented code
  16. //@
  17. ////////////////////////////////////////////////////////////////////////
  18.  
  19. ///////////INCLUDES/////////////////////////////////////////////////////
  20. PATH "..\\template";
  21.  
  22. INCLUDE <movement.wdl>;
  23. INCLUDE <messages.wdl>;
  24. INCLUDE <menu.wdl>;
  25. INCLUDE <particle.wdl>;
  26. INCLUDE <doors.wdl>;
  27.  
  28. //////////// OVERRIDE VENTURE.WDL ////////////////////////////////////////////
  29.  
  30. DEFINE ADV_DEF_ADVENTURE_TEXT;    // override general adventure text
  31.  
  32.  
  33.  
  34. STRING wrong_key_str, "This key doesn't fit!";
  35. STRING wrong_item_str, "Try another item!";
  36. STRING wrong_type_str, "Nothing happend!";
  37. STRING level_info_str, "You made a level!
  38. You may share   bonus points!";
  39.  
  40. STRING start1_str, "
  41.  
  42.  
  43.         Start new game
  44.  
  45.         Load game
  46.  
  47.         Exit Game";
  48.  
  49.  
  50.  
  51. STRING bonus_info_str,
  52.   "\nYou may share   bonus points!      Finished";
  53.  
  54.   STRING char_pan_str, "             Character Skills
  55.  
  56.  
  57.    Hitpoints:   /       Bravery:
  58.  
  59.    Mana:        /       Intuition:
  60.  
  61.    Strength:    /       Level:
  62.  
  63.    Agility:             Experiencep.:
  64.  
  65.                         Next Level:
  66.                         ";
  67.  
  68.  
  69. ////////Online hilfe ////////////////////////
  70. STRING help_str"Keyboard commands
  71.  
  72. F1  - Help           C  - Character
  73. F2  - Save           I  - Inventory
  74. F3  - Load       Space  - Weapon on/off
  75. F10 - Exit         Home - Jump
  76.  
  77. Mouse Right       - Mouse on/off
  78. Mouse Left / Ctrl - Fight
  79. Pg Up / Pg Dn     - Look up/down";
  80. /////////////////// Menu //////////////////////////////////
  81. STRING menu_str, //*
  82. "
  83.  
  84.  
  85.         Start new game
  86.  
  87.         Save game
  88.  
  89.         Load game
  90.  
  91.         Exit game
  92.  
  93.         Resume game
  94.  
  95.         Help
  96.  
  97.         Credits
  98.         ";
  99. STRING admenu_str, //*
  100. "
  101.  
  102.  
  103.         Start new game
  104.  
  105.         Save game
  106.  
  107.         Load game
  108.  
  109.         Exit game
  110.  
  111.         Help
  112.  
  113.         Credits
  114.         ";
  115. STRING exit_str, "
  116. Back to your boring desktop?
  117.  
  118.  
  119.  
  120.         Yep!
  121.  
  122.         Nope!";
  123.  
  124. STRING vstr_exit_txt,
  125. "Thank You for playing this demo!
  126. This adventure was created by Harald Schmidt\nat Invoked Game Development (www.invoked.de)\nfor CONITEC Datensysteme (www.conitec.com)
  127. ____________________________________________
  128. The entire demo was developed with 3D GameStudio / A4.
  129. ____________________________________________
  130. ";
  131.  
  132.  
  133. STRING credit_str, "This tutorial adventure was created by
  134. ______________________________________________
  135. Invoked Developement     (invoked.de)
  136. for Conitec Datensysteme (www.conitec.com)
  137. ______________________________________________
  138.  
  139. Leveldesign, Programming:     Harald Schmidt
  140. Concept:                      Harald Schmidt
  141. Test:                    Alexander Diekmeyer
  142. All grafics and sounds:       Harald Schmidt
  143. Add. grafics and sounds:   Reinhard Wissdorf
  144. She who made it possible:         Karin Born
  145. ______________________________________________
  146. The entire demo was developed with the ACKNEX
  147. engine and toolkit: 3D GAME STUDIO (tm)
  148. Visit the ACKNEX USERS MAGAZINE:
  149. www.conitec.com/aum";
  150.  
  151.  
  152. STRING vent_blank_str, "
  153.  
  154.  
  155.                       ";
  156.  
  157. // END PREDEFINE ADV_DEF_ADVENTURE_TEXT
  158.  
  159.  
  160. DEFINE ADV_DEF_SAVE_LOAD;    // "predefine" to change default 'venture' definitions
  161.  DEFINE PICSIZE_X 128;      // size of save game bitmaps
  162.  DEFINE PICSIZE_Y 96;
  163.  
  164.  BMAP slot1_map, <save1.pcx>; // default save/load game bitmaps
  165.  BMAP slot2_map, <save2.pcx>;
  166.  BMAP slot3_map, <save3.pcx>;
  167.  BMAP slot4_map, <save4.pcx>;
  168.  
  169.  DEFINE PICSAVE_BKGD;    // panel has background
  170.  DEFINE picsavebk_map info1_map;        // save panel background bitmap
  171.  DEFINE picloadbk_map info1_map;        // load panel background bitmap
  172.  
  173.  
  174.  
  175.  DEFINE PICSAVE_TEXT;    // titles for each slot
  176.  
  177.  DEFINE PICSLOT1_X 40;   // location of save/load game bitmaps
  178.  DEFINE PICSLOT1_Y 10;
  179.  DEFINE PICSLOT2_X 240;
  180.  DEFINE PICSLOT2_Y 10;
  181.  DEFINE PICSLOT3_X 40;
  182.  DEFINE PICSLOT3_Y 105;
  183.  DEFINE PICSLOT4_X 240;
  184.  DEFINE PICSLOT4_Y 105;
  185.  DEFINE PICEXIT_X  375;  // location of exit button
  186.  DEFINE PICEXIT_Y  174;
  187. // END "SAVE/LOAD" predefines
  188.  
  189.  
  190. //////////////// OVERRIDE INVENTORY ////////////////////////////////////
  191. DEFINE ADV_DEF_INVENT_P;               // uncomment to override venture inventory bitmaps
  192.      BMAP invent_map, <bg611i.pcx>;     // 12 box inventory panel map
  193.     BMAP invent_item_map, <inv_ov.pcx>;// inventory items map
  194.  
  195.     BMAP i1_map, <bg611i.pcx>, 2, 2, 62, 70;    // 1 box of the 12 box inventory panel
  196.     BMAP i2_map, <bg611i.pcx>, 66, 2, 62, 70;
  197.     BMAP i3_map, <bg611i.pcx>, 2, 72, 62, 62;
  198.     BMAP i4_map, <bg611i.pcx>, 66, 72, 62, 62;
  199.     BMAP i5_map, <bg611i.pcx>, 2, 135, 62, 62;
  200.     BMAP i6_map, <bg611i.pcx>, 66, 135, 62, 62;
  201.     BMAP i7_map, <bg611i.pcx>, 2, 197, 62, 62;
  202.     BMAP i8_map, <bg611i.pcx>, 66, 197, 62, 62;
  203.     BMAP i9_map, <bg611i.pcx>, 2, 260, 62, 58;
  204.     BMAP i10_map, <bg611i.pcx>, 66, 260, 62, 58;
  205.     BMAP i11_map, <bg611i.pcx>, 2, 320, 62, 62;
  206.     BMAP i12_map, <bg611i.pcx>, 66, 320, 62, 62;
  207.  
  208.  
  209.     DEFINE INVENT_P_invent_temp_item_DX        70;    // width of each item stored in invent_item_map
  210.  
  211.     DEFINE INVENT_P_X        387;             // inventory panel upper left border position
  212.     DEFINE INVENT_P_Y          4;
  213.  
  214.     DEFINE INVENT_P_WIN_DX        70;    // cutout window size
  215.     DEFINE INVENT_P_WIN_DY        70;
  216.  
  217.     DEFINE INVENT_P_ROW_1          2;    // row offsets for inventory panel
  218.     DEFINE INVENT_P_ROW_2         72;
  219.     DEFINE INVENT_P_ROW_3        135;
  220.     DEFINE INVENT_P_ROW_4        197;
  221.     DEFINE INVENT_P_ROW_5        260;
  222.     DEFINE INVENT_P_ROW_6        320;
  223.  
  224.     DEFINE INVENT_P_COL_1         2;   // column offsets for inventory panel
  225.     DEFINE INVENT_P_COL_2        66;
  226.  
  227.  
  228.     DEFINE INVENT_P_LAYER    4;        // inventory panel layer
  229.  
  230.  
  231. ///// OVERRIDE PLAYER INTERFACE DEFINES
  232. DEFINE ADV_DEF_SCREEN_MAPS;
  233.   BMAP button_map, <bg611bt.pcx>;            // button bitmap
  234.  
  235.   BMAP char_button_map, <bg611.pcx>, 535, 0, 60, 100;          // icon for character button
  236.   BMAP inv_button_map, <bg611.pcx>, 530, 120, 70, 85;          // icon for inventory button
  237.   BMAP menu_button_map, <bg611.pcx>, 570, 210, 70, 70;         // icon for menu button
  238.   BMAP screen_map, <bg611.pcx>;                                // the entire screen map
  239.   BMAP hpbar_map, <redbar.pcx>;                                // hitpoint bar map
  240.   BMAP strbar_map, <grnbar.pcx>;                               // strenth bar map
  241.   BMAP manabar_map, <bluebar.pcx>;                             // mana bar map
  242.   BMAP info1_map, <bg611nf1.pcx>;                                        // info1 panel bitmap (used for save and load)
  243.   BMAP info2_map, <bg611nf2.pcx>;                                        // small info-text panel
  244.  
  245.  
  246.  
  247.    FONT panel_font, <font3a.pcx>,8,10;    // panel font bitmap
  248.  
  249.   DEFINE  SCREEN_STAT_HP_BAR_X     540;      // X offset for the hitpoints bar
  250.   DEFINE  SCREEN_STAT_HP_BAR_Y      10;      // Y offset for the hitpoints bar
  251.   DEFINE  SCREEN_STAT_STR_BAR_X    555;      // X offset for the strength bar
  252.   DEFINE  SCREEN_STAT_STR_BAR_Y     10;      // Y offset for the strength bar
  253.   DEFINE  SCREEN_STAT_MANA_BAR_X   570;      // X offset for the mana bar
  254.   DEFINE  SCREEN_STAT_MANA_BAR_Y    10;      // Y offset for the mana bar
  255.  
  256.   DEFINE  SCREEN_STAT_BAR_HEIGHT    80;      // the height of the stat bars
  257.  
  258.   DEFINE  SCREEN_STAT_BAR_FACTOR   1.0;      // vertical shifting factor
  259.  
  260.   BMAP blood_splash_map <redf.pcx>;          // blood red splash (shown when player is damaged)
  261.   BMAP black_map <blackf.pcx>;               // blackout bitmap (used for fades)
  262.  
  263. // end screen define override
  264.  
  265.  
  266.  
  267.  
  268. DEFINE ADV_DEF_CURSOR_MAP;
  269.     BMAP mouse_l_map, <curs_l.pcx>;      // mouse cursor image map
  270.  
  271. /**/
  272.  
  273.  
  274. INCLUDE <venture.wdl>;    // INCLUDE venture script file
  275.  
  276. /*
  277.  * Redefine venture skills
  278.  */
  279.  
  280. //// Redefine venture save/load skills /////////////////////////////////
  281. SKILL picsave_pos { X 60; Y 265; }    // panel position
  282. SKILL pictext_offs { VAL 84; }        // distance picture to title
  283.  
  284.  
  285. ////////////////////////////////////////////////////////////////////////
  286. // new default values for predefined skills
  287. SKILL VIDEO_MODE { VAL 6; }
  288. SKILL VIDEO_DEPTH { VAL 16; }
  289.  
  290. SKILL TURB_SPEED { VAL 1; }
  291. SKILL TURB_RANGE { VAL 1; }
  292.  
  293. SKILL TEX_CHECK { VAL 0; }        // ignore wrong sized textures (there is one)
  294.  
  295. ////// common skills, synonyms and definitions //////////////////////////
  296. DEFINE KEY, SKILL33;
  297.  
  298.  
  299. DEFINE TRUE, 1;
  300. DEFINE FALSE, 0;
  301. DEFINE YES, 1;
  302. DEFINE NO, 0;
  303. DEFINE OPEN, 1;
  304. DEFINE CLOSED, 0;
  305.  
  306.  
  307. DEFINE M_MENU, -2; # normale Menumaus u. Infos ?ber Items im Inventory
  308.  
  309. // ADEPT invent_temp_item IDs
  310. DEFINE M_KEY1, 1;
  311. DEFINE M_KEY2, 2;
  312. DEFINE M_GEM, 3;
  313. DEFINE M_RUBY, 4;
  314. DEFINE M_BLATT, 5;
  315. DEFINE M_FISH, 6;
  316. DEFINE M_SWORD, 7;
  317. DEFINE M_WATEREMPTY, 8;
  318. DEFINE M_WATERFULL, 9;
  319.  
  320.  
  321. DEFINE M_ANGEL, 21; #friendlies
  322. DEFINE M_CYNTHIA, 22;
  323. DEFINE M_SORC, 23; #kleiner Infotext
  324. DEFINE M_SCORP, 31; #Bad Ones
  325. DEFINE M_DOOR, 41; #Doors
  326. DEFINE M_SPELLDOOR, 42;
  327. DEFINE M_DOOR1, 46;
  328. DEFINE M_DOOR2, 47;
  329. DEFINE M_BOOK, 51; #großer Infotext
  330. DEFINE M_STATUE, 62;
  331. DEFINE M_FIRE, 63;
  332. DEFINE M_FOUNTAIN, 64;
  333. DEFINE M_VASE, 65;
  334. DEFINE M_MOBILE, 66;
  335. DEFINE M_CHAIN1, 71;
  336. DEFINE M_CHAIN2, 72;
  337. DEFINE M_CHAIN3, 73;
  338. DEFINE M_CHAIN4, 74;
  339. DEFINE M_CHAIN5, 75;
  340. DEFINE M_PYR1, 81;
  341. DEFINE M_PYR2, 82;
  342. DEFINE M_PYR3, 83;
  343. DEFINE M_PYR4, 84;
  344. DEFINE M_GLOW, 85;
  345. DEFINE S_BONUS, 1;
  346. DEFINE S_CHAR, 2;
  347. DEFINE S_INV, 3;
  348. DEFINE S_DIAL, 4;
  349. DEFINE S_START1, 5;
  350. DEFINE S_MENU, 6;
  351. DEFINE S_HELP, 7;
  352. DEFINE S_CREDIT, 8;
  353. DEFINE S_SAVE, 9;
  354. DEFINE S_LOAD, 10;
  355.  
  356. ////////////////////////////////////////////////////////////////
  357. SYNONYM DPAN {TYPE PANEL;}
  358.  
  359. SYNONYM CHAR_SYN {TYPE ACTION;DEFAULT vpst_show_char;}
  360. SYNONYM DEBUG_ACT {TYPE ENTITY;}
  361. SYNONYM PLATE {TYPE ENTITY;}
  362. SYNONYM PLATE1 {TYPE ENTITY;}
  363. SYNONYM PLATE2 {TYPE ENTITY;}
  364. SYNONYM PLATE3 {TYPE ENTITY;}
  365. SYNONYM PLATE4 {TYPE ENTITY;}# strings
  366.  
  367. //
  368. SKILL volume {VAL 1;}#Type Local
  369. //
  370. //SKILL dmode {VAL 1;}
  371. SKILL lightmode {VAL 0;}
  372. // The following skills control the water movement
  373. //
  374.  
  375.  
  376.  
  377. // Player Save Skills
  378. //
  379. SKILL chain1_skill {VAL 0;}
  380. SKILL chain2_skill {VAL 0;}
  381. SKILL chain3_skill {VAL 0;}
  382. SKILL chain4_skill {VAL 0;}
  383. SKILL __HAS_DIAMOND {VAL FALSE;}
  384.  
  385. //---SKILL player_life {VAL 68;}
  386. SKILL musicval {VAL 20;}
  387.  
  388. ///Experience points values for each quest
  389. SKILL gem_exp {VAL 150;}      //??? only here?
  390. SKILL cynth_exp {VAL 80;}     // exp from cynth
  391. SKILL m_sc_exp {VAL 250;}     //??? only here?
  392. SKILL sc_exp {VAL 450;}       //??? only here?
  393.  
  394.  
  395. //////////// INCLUDES  /////////////////////////////////////////
  396. ////////////////////////////////////////////////////////////////////////
  397. IFNDEF german;
  398. INCLUDE <string_e.wdl>;
  399. IFELSE;
  400. INCLUDE <string.wdl>;
  401. ENDIF;
  402.  
  403. INCLUDE <material.wdl>; # fonts, sounds, skies etc.
  404. INCLUDE <aparticl.wdl>;
  405.  
  406.  
  407. ///////////// CURSOR ACTIONS ///////////////////////////////////////////
  408.  
  409. // Desc: set the mouse map image to that of an item
  410. //
  411. // Note: This action is an override of a empty venture.wdl action
  412. ACTION vinp_set_mouse_map_to_item
  413. {
  414.     MOUSE_SPOT.X = 35;
  415.     MOUSE_SPOT.Y = 35;
  416.     IF (mouse_object == M_KEY1)
  417.     {
  418.         SET MOUSE_MAP, key1_map;
  419.     }
  420.     IF (mouse_object == M_KEY2)
  421.     {
  422.         SET MOUSE_MAP, key2_map;
  423.     }
  424.     IF (mouse_object == M_GEM)
  425.     {
  426.         SET MOUSE_MAP, gem1_map;
  427.     }
  428.     IF (mouse_object == M_RUBY)
  429.     {
  430.         SET MOUSE_MAP, ruby_map;
  431.     }
  432.     IF (mouse_object == M_BLATT)
  433.     {
  434.         SET MOUSE_MAP, blatt_map;
  435.     }
  436.     IF (mouse_object == M_FISH)
  437.     {
  438.         SET MOUSE_MAP, fish_map;
  439.     }
  440.     IF (mouse_object == M_SWORD)
  441.     {
  442.         SET MOUSE_MAP, sword_map;
  443.     }
  444.     IF (mouse_object == M_WATEREMPTY)
  445.     {
  446.         SET MOUSE_MAP, waterempty_map;
  447.     }
  448.     IF (mouse_object == M_WATERFULL)
  449.     {
  450.         SET MOUSE_MAP, waterfull_map;
  451.     }
  452. }
  453.  
  454.  
  455. INCLUDE <entity.wdl>; # initialisation of level entities (npc's, items, doors)
  456. INCLUDE <a4panel.wdl>; # player screens - menues, inventory etc.
  457. INCLUDE <adoors.wdl>; # common door, lift and trigger methods
  458. INCLUDE <debug.wdl>;
  459.  
  460.  
  461. // OVERRIDE
  462. // Desc: Initialize key mapping
  463. //
  464. // NOTE: this action is overriden to change your key settings
  465. ACTION vinp_init_keys
  466. {
  467.     SET ON_F5, NULL; //toggle_detail;
  468.     SET ON_ESC, vscr_close_all;
  469.     SET ON_F11, toggle_gamma;
  470.     SET ON_F1, vscr_toggle_help;
  471.     SET ON_F2, vpic_save;
  472.     SET ON_F3, vpic_load;
  473.     SET ON_F7, vscr_toggle_credits;
  474.       SET ON_F8 _save;
  475.     SET ON_F9 _load;
  476.      SET ON_F10, vscr_show_exit;
  477.     SET ON_F12 console;
  478.  
  479.     SET ON_H handle;
  480.     SET ON_I, vinv_toggle_inventory;
  481.     SET ON_C, vpst_toggle_Char;
  482.     SET ON_M, vscr_toggle_menu;
  483.     SET ON_Y, NULL;
  484.     SET ON_J, NULL;
  485.     SET ON_N, NULL;
  486.     SET ON_ANYKEY, NULL;
  487. }
  488.  
  489.  
  490. /////////////////// ACTOR DIALOG ///////////////////////////////////////
  491. // Desc: This action handles dialog between the player and the NPC's.
  492. //
  493. //    Note: This code is specific to the adventure being writen.  It overrides
  494. //      the 'dummy' action in venture.wdl
  495. ACTION vdia_make_talk
  496. {
  497.     CALL vscr_close_all;
  498.     CALL vinp_reset_keys;
  499.  
  500.     __ICON_ACTIVE = OFF;     // don't let player use buttons
  501.     SET exit1, NO;
  502.     SET exit2, NO;
  503.     SET exit3, NO;
  504.     IF (PLAYER._DIALOG_STATE == 51)
  505.     {
  506.         NPC_ENTITY._DIALOG_STATE = 51;
  507.     }
  508.  
  509.     IF (NPC_ENTITY.ENT_ID == M_ANGEL)
  510.     {
  511.         IF (NPC_ENTITY._DIALOG_STATE == 11)
  512.         {
  513.             SET dialog_txt.STRING angel11_str;
  514.             SET dialog1_button_panel.VISIBLE, TRUE;
  515.             SET actor_dialog_b1, 13;
  516.             SET actor_dialog_b2, 12;
  517.             SET exit2, YES;
  518.         }
  519.         IF (NPC_ENTITY._DIALOG_STATE == 12)
  520.         {
  521.             SET dialog_txt.STRING angel12_str;
  522.             SET dialog1_button_panel.VISIBLE, TRUE;
  523.             SET actor_dialog_b1, 14;
  524.             SET actor_dialog_b2, 12;
  525.             SET exit2, YES;
  526.         }
  527.         IF (NPC_ENTITY._DIALOG_STATE == 13)
  528.         {
  529.             SET dialog_txt.STRING angel13_str;
  530.             SET dialog1_button_panel.VISIBLE, TRUE;
  531.             SET actor_dialog_b1, 14;
  532.             SET actor_dialog_b2, 12;
  533.             SET exit2, YES;
  534.         }
  535.         IF (NPC_ENTITY._DIALOG_STATE == 14)
  536.         {
  537.             SET dialog_txt.STRING angel14_str;
  538.             SET dialog1_button_panel.VISIBLE, TRUE;
  539.             SET actor_dialog_b1, 21;
  540.             SET actor_dialog_b2, 12;
  541.             SET exit2, YES;
  542.         }
  543.         IF (NPC_ENTITY._DIALOG_STATE == 21)
  544.         {
  545.             SET dialog_txt.STRING angel21_str;
  546.             SET dialog1_button_panel.VISIBLE, TRUE;
  547.             SET actor_dialog_b1, 32;
  548.             SET actor_dialog_b2, 12;
  549.             SET exit1, YES;
  550.             SET exit2, YES;
  551.         }
  552.         IF (NPC_ENTITY._DIALOG_STATE == 32)
  553.         {
  554.             SET dialog_txt.STRING angel32_str;
  555.             SET dialog1_button_panel.VISIBLE, TRUE;
  556.             SET actor_dialog_b1, 32;
  557.             IF (__HAS_DIAMOND == TRUE)
  558.             {
  559.                 SET actor_dialog_b1, 42;
  560.             }
  561.             SET actor_dialog_b2, 41;
  562.             #    SET exit1, YES;
  563.         }
  564.  
  565.         IF (NPC_ENTITY._DIALOG_STATE == 41)
  566.         {
  567.             SET dialog_txt.STRING angel41_str;
  568.             SET dialog2_button_panel.VISIBLE, TRUE;
  569.             SET actor_dialog_b3, 32;
  570.             SET exit3, YES;
  571.         }
  572.  
  573.         IF (NPC_ENTITY._DIALOG_STATE == 42)
  574.         {
  575.             SET dialog_txt.STRING angel42_str;
  576.             SET dialog2_button_panel.VISIBLE, TRUE;
  577.             SET give_exp, 200;
  578.             __HAS_DIAMOND = FALSE;
  579.             invent_temp_item = M_GEM;
  580.             CALL vinv_delete_item_inventory;
  581.             spelldoor_open = TRUE;
  582.             CALL vpst_check_exp;
  583.             SET actor_dialog_b3, 51;
  584.             SET exit3, YES;
  585.         }
  586.         IF (NPC_ENTITY._DIALOG_STATE == 51)
  587.         {
  588.             SET dialog_txt.STRING angel51_str;
  589.             SET dialog2_button_panel.VISIBLE, TRUE;
  590.             SET actor_dialog_b3, 51;
  591.             SET exit3, YES;
  592.         }
  593.         IF (NPC_ENTITY._DIALOG_STATE == 61)
  594.         {
  595.             SET dialog_txt.STRING angel61_str;
  596.             SET dialog2_button_panel.VISIBLE, TRUE;
  597.             SET actor_dialog_b3, 61;
  598.             SET exit3, YES;
  599.         }
  600.     }
  601.     IF (NPC_ENTITY.ENT_ID == M_CYNTHIA)
  602.     {
  603.         IF (NPC_ENTITY._DIALOG_STATE == 11)
  604.         {
  605.             SET dialog_txt.STRING cynth11_str;
  606.             SET dialog1_button_panel.VISIBLE, TRUE;
  607.             SET actor_dialog_b1, 21;
  608.             SET actor_dialog_b2, 22;
  609.         }
  610.         IF (NPC_ENTITY._DIALOG_STATE == 21)
  611.         {
  612.             SET dialog_txt.STRING cynth21_str;
  613.             SET dialog1_button_panel.VISIBLE, TRUE;
  614.             SET actor_dialog_b1, 31;
  615.             SET actor_dialog_b2, 11;
  616.             SET exit2, YES;       // button 2 exits the conversation
  617.         }
  618.         IF (NPC_ENTITY._DIALOG_STATE == 22)
  619.         {
  620.             SET dialog_txt.STRING cynth22_str;
  621.             SET dialog1_button_panel.VISIBLE, TRUE;
  622.             SET actor_dialog_b1, 31;
  623.             SET actor_dialog_b2, 11;
  624.             SET exit2, YES;
  625.             SET give_exp, cynth_exp;
  626.             CALL vpst_check_exp;
  627.             SET cynth_exp, 0;
  628.         }
  629.         IF (NPC_ENTITY._DIALOG_STATE == 31)
  630.         {
  631.             SET dialog_txt.STRING cynth31_str;
  632.             SET dialog2_button_panel.VISIBLE, TRUE;
  633.             SET invent_temp_item, M_KEY2;
  634.             CALL vinv_put_item_inventory;
  635.             SET actor_dialog_b3, 41;
  636.             SET exit3, YES;
  637.         }
  638.         IF (NPC_ENTITY._DIALOG_STATE == 41)
  639.         {
  640.             SET dialog_txt.STRING cynth41_str;
  641.             SET dialog2_button_panel.VISIBLE, TRUE;
  642.             SET actor_dialog_b3, 41;
  643.             SET exit3, YES;
  644.         }
  645.         IF (NPC_ENTITY._DIALOG_STATE == 51)
  646.         {
  647.             SET dialog_txt.STRING cynth51_str;
  648.             SET dialog2_button_panel.VISIBLE, TRUE;
  649.             SET actor_dialog_b3, 51;
  650.             SET exit3, YES;
  651.             create_pos.X = -1150;
  652.             create_pos.Y = -1082;
  653.             create_pos.Z = -180;
  654.             CREATE <tp+7.pcx>, create_pos, tp_ani;
  655.         }
  656.     }
  657.     CALL vdia_show_dialog;
  658. }
  659.  
  660.  
  661.  
  662.  
  663.  
  664. MAIN main;
  665. /////////////////////////////////////////////////////////////////
  666. // The following definitions are for the WDFC window composer
  667. // to define the start and exit window of the application.
  668. WINDOW WINSTART
  669. {
  670.     TITLE"Adeptus Ver 2.0";
  671.     SIZE 300, 600; # 135;
  672.     MODE IMAGE; //      STANDARD;
  673.     BG_COLOR RGB (50, 50, 50);
  674.     #FRAME FTYP3, 20, 20, 320, 300;
  675.     #BUTTON BUTTON_START, SYS_DEFAULT, "Start", 290, 0, 10, 10;
  676.     //BUTTON BUTTON_QUIT, SYS_DEFAULT, "ABORT", 70, 60, 64, 32;
  677.     TEXT_STDOUT"ARIAL", RGB (150, 255, 150), 5, 150, 290, 420;
  678.     PROGRESS RGB (200, 200, 200), 73, 0, 120, 305, 15;
  679.     PICTURE < logo.bmp > , OPAQUE, 0, 0;
  680. }
  681. WINDOW WINEND
  682. {
  683.     TITLE"Adeptus Ver 2.0";
  684.     SIZE 300, 600; # 135;
  685.     MODE IMAGE; //      STANDARD;
  686.     BG_COLOR RGB (50, 50, 50);
  687.     #FRAME FTYP3, 20, 20, 320, 300;
  688.     //BUTTON BUTTON_START, SYS_DEFAULT, "Start", 290, 0, 10, 10;
  689.     BUTTON BUTTON_QUIT, SYS_DEFAULT, "Ok", 250, 580, 48, 16;
  690.     TEXT_STDOUT"ARIAL", RGB (150, 255, 150), 5, 125, 290, 450;
  691.     PROGRESS RGB (200, 200, 200), 73, 0, 120, 305, 5;
  692.     PICTURE < logo.bmp > , OPAQUE, 0, 0;
  693. }
  694. SAVEDIR "savegame";
  695.  
  696. /////////////////////debugging////////////////////////////////
  697. STRING enter_cmd, "Enter instruction(s) below:";
  698. STRING exec_buffer, // just an 80-char string
  699. "                                                                              ";
  700.  
  701. TEXT console_text
  702. {
  703.     POS_X 4;
  704.     POS_Y 180;
  705.     FONT standard_font;
  706.     STRINGS 2;
  707.     STRING enter_cmd;
  708.     STRING exec_buffer;
  709. }
  710.  
  711. ////////////////////////////////////////////////////////////////
  712. ACTION main
  713. {
  714.     CALL vinp_reset_keys;
  715.     CALL init_screen;
  716.     CALL init_game;
  717. #    CALL set_debug;
  718. }
  719.  
  720. ACTION init_game
  721. {
  722.     CALL start_intro;
  723.     LOAD_LEVEL <adept2.wmb>;
  724.     WAIT 16;
  725.     CALL load_status;
  726.     SET FREEZE_MODE,1;
  727.     CALL init_sky;
  728.     CALL vinp_show_mouse;
  729. //    CALL toggle_detail;
  730.     CALL vinv_reset_critical_items;
  731.     CALL vinv_reset_inventory;
  732.  
  733.     SET FREEZE_MODE,0;    // un-freeze game
  734. }
  735.  
  736.  
  737.  
  738.  
  739. ACTION init_screen
  740. {
  741.     SET blood_pan.VISIBLE, FALSE;
  742.     SET GAMMA, 1.0;
  743.     SET CAMERA.ARC, 80;
  744.     SET CAMERA.AMBIENT, 20;
  745.     SET CAMERA.POS_X, 3;
  746.     SET CAMERA.POS_Y, 4;
  747.     SET CAMERA.SIZE_X, 528;
  748.     SET CAMERA.SIZE_Y, 386;
  749. }
  750.  
  751.  
  752.  
  753. ////////////////////skies,backdrops//////////////////////////////////////////////
  754. ACTION init_sky # default sky
  755. {
  756.     SET CLOUD_MAP, cld_map;
  757.     SET SKY_MAP, sk_map;
  758.     SET SCENE_MAP, mt_map;
  759.     SCENE_FIELD = 120;
  760.     SCENE_ANGLE.TILT = -14;
  761.     SKY_SPEED.X = 1;
  762.     SKY_SPEED.Y = 1.5;
  763.     CLOUD_SPEED.X = 3;
  764.     CLOUD_SPEED.Y = 4.5;
  765.     SKY_SCALE = 1;
  766.     SKY_CURVE = 0.8;
  767.     SUN_ANGLE.PAN = 180;
  768.     SUN_ANGLE.TILT = 45;
  769. }
  770.  
  771. // The GAMMA skill will perform a palette gamma correction
  772. ACTION toggle_gamma
  773. {
  774.     GAMMA += 0.15;
  775.     IF (GAMMA > 2)
  776.     {
  777.         GAMMA = 1;
  778.     }
  779. }
  780. ACTION console
  781. {
  782.     SET console_text.VISIBLE, 1;
  783.     INKEY exec_buffer;
  784.     IF (RESULT == 13)
  785.     {
  786.         // terminated with RETURN?
  787.         EXECUTE exec_buffer;
  788.     } // will execute the string
  789.     SET console_text.VISIBLE, 0;
  790.     BEEP;
  791. }
  792.  
  793. ACTION back
  794. {
  795.     exit;
  796. }
  797.  
  798. ACTION testmovie
  799. {
  800.     WHILE (1)
  801.     {
  802.         IF (KEY_A)
  803.         {
  804.             SUN_ANGLE.PAN += 1;
  805.         }
  806.         IF (KEY_S)
  807.         {
  808.             SUN_ANGLE.PAN -= 1;
  809.         }
  810.         IF (KEY_D)
  811.         {
  812.             SUN_ANGLE.TILT += 1;
  813.         }
  814.         IF (KEY_F)
  815.         {
  816.             SUN_ANGLE.TILT -= 1;
  817.         }
  818.         IF (KEY_G)
  819.         {
  820.             SUN_LIGHT += 1;
  821.         }
  822.         IF (KEY_H)
  823.         {
  824.             SUN_LIGHT -= 1;
  825.         }
  826.         IF (KEY_V)
  827.         {
  828.             DEBUG_ACT.AMBIENT += 1;
  829.         }
  830.         IF (KEY_B)
  831.         {
  832.             DEBUG_ACT.AMBIENT -= 1;
  833.         }
  834.  
  835.  
  836.         WAIT 1;
  837.     }
  838.  
  839. }
  840.  
  841.  
  842.  
  843.  
  844.  
  845. ///////////////////////////////////////////////////////////////////////
  846.  
  847.  
  848.  
  849. // OVERRIDE: player is not allowed to gain mana with bonus points
  850. // Desc: Use a bonus point to increase player's base mana
  851. ACTION _vpst_bonus_mana
  852. {
  853.     IF (player_bonus_pts > 0)
  854.     {
  855.          BEEP;
  856.     }
  857.     ELSE
  858.     {
  859.         CALL vscr_close_all;
  860.     }
  861. }
  862.  
  863. //////////////////////Inventory////////////////////////////////////////////////////
  864.  
  865. // Adeptus Inventory/Items
  866.  
  867.  
  868. // Desc: reset the player's critical items at game start
  869. //
  870. // NOTE: this action overrides the dummy action in venture.wdl
  871. ACTION vinv_reset_critical_items
  872. {
  873.     __HAS_SWORD = FALSE;
  874.     SET ON_SPACE, NULL;
  875.     __HAS_DIAMOND = FALSE;
  876. }
  877.  
  878.  
  879. // Desc: This action is used to track 'critical' items in the player's inventory.
  880. //       Call this action whenever something is added or removed from inventory.
  881. //
  882. // NOTE: this action overrides the dummy action in venture.wdl
  883. ACTION vinv_critical_items
  884. {
  885.     IF (invent_box_content == M_SWORD)
  886.     {
  887.         __HAS_SWORD = TRUE;
  888.         SET ON_SPACE, vcom_create_sword;
  889.     }
  890.     IF (invent_box_content == M_GEM)
  891.     {
  892.         __HAS_DIAMOND = TRUE;
  893.     }
  894. }
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904. ////////////////// CHEATS //////////////////////////////////////////////
  905.  
  906.  
  907. // Desc: cheat to restore hitpoints and strength
  908. ACTION hp_cheat
  909. {
  910.     SET player_current_hp, player_hp;
  911.     SET player_current_str, player_str;
  912. }
  913.  
  914. ACTION exp_cheat
  915. {
  916.     give_exp = 1000;
  917.     CALL vpst_check_exp;
  918. }
  919.  
  920. // Cheat 'code' (add all items to the list)
  921. // DCP(3/21/00)- updated invent_box_content before each vinv_critical_items check
  922. ACTION inv_cheat
  923. {
  924.     SET i1_status, 0;
  925.     SET invent_box_content, i1_status;
  926.     CALL vinv_critical_items;
  927.  
  928.     SET i2_status, 1;
  929.     SET invent_box_content, i2_status;
  930.     CALL vinv_critical_items;
  931.  
  932.     SET i3_status, 2;
  933.      SET invent_box_content, i3_status;
  934.    CALL vinv_critical_items;
  935.  
  936.     SET i4_status, 3;
  937.      SET invent_box_content, i4_status;
  938.    CALL vinv_critical_items;
  939.  
  940.     SET i5_status, 4;
  941.      SET invent_box_content, i5_status;
  942.    CALL vinv_critical_items;
  943.  
  944.     SET i6_status, 5;
  945.      SET invent_box_content, i6_status;
  946.    CALL vinv_critical_items;
  947.  
  948.     SET i7_status, 6;
  949.      SET invent_box_content, i7_status;
  950.    CALL vinv_critical_items;
  951.  
  952.     SET i8_status, 7;
  953.      SET invent_box_content, i8_status;
  954.    CALL vinv_critical_items;
  955.  
  956.     SET i9_status, 8;
  957.      SET invent_box_content, i9_status;
  958.    CALL vinv_critical_items;
  959.  
  960.     SET i10_status, 9;
  961.      SET invent_box_content, i10_status;
  962.    CALL vinv_critical_items;
  963.  
  964.     SET i11_status, 10;
  965.      SET invent_box_content, i11_status;
  966.    CALL vinv_critical_items;
  967.  
  968.     CALL _vinv_update_inventory_content;
  969. }
  970.  
  971. //testing ...
  972. //ON_F9 inv_cheat;
  973. //ON_Q vmsc_exit;
  974. //ON_E  exp_cheat;
  975. //ON_E  vspl_player_cast_fireball;