summaryrefslogblamecommitdiffstats
path: root/crawl-ref/source/tutorial.h
blob: a6140e81bdf90399cd4a4fd265e6e6cc31096ee1 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11


                                         

                       
                          




                  




                   


                       

             
 






                        
 

                                 
                                 
 
                         
                              
                                            
                                     
 
                                      
                               

                                 
 
                                                
                                     
 
                                             
                                     
                                                
                                               
                                                         
                                                       

                                          
                                             
 

                                                
                                               
                                                  
                                                                      

                                            

                                                        
 



















                                          
      
/*
 *  File:       tutorial.h
 *  Summary:    Stuff needed for tutorial
 *  Written by: j-p-e-g
 *
 *  Created on 2007-01-11.
 */

#ifndef TUTORIAL_H
#define TUTORIAL_H

#include <string>
#include <vector>
#include <stdio.h>
#include <stdlib.h>

#include "externs.h"

class formatted_string;
class writer;
class reader;

enum tutorial_types
{
    TUT_BERSERK_CHAR,
    TUT_MAGIC_CHAR,
    TUT_RANGER_CHAR,
    TUT_TYPES_NUM   // 3
};

void save_tutorial(writer& outf);
void load_tutorial(reader& inf);
void init_tutorial_options(void);

bool pick_tutorial(void);
void tutorial_load_game(void);
void print_tutorial_menu(unsigned int type);
void tutorial_zap_secret_doors(void);

formatted_string tut_starting_info2();
void tut_starting_screen(void);
void tutorial_death_screen(void);
void tutorial_finished(void);

void tutorial_dissection_reminder(bool healthy);
void tutorial_healing_reminder(void);

void taken_new_item(unsigned char item_type);
void tut_gained_new_skill(int skill);
void tutorial_monster_seen(const monsters& mon);
void tutorial_first_item(const item_def& item);
void learned_something_new(tutorial_event_type seen_what,
                           coord_def gc = coord_def());
formatted_string tut_abilities_info(void);
void print_tut_skills_info(void);
void print_tut_skills_description_info(void);

void tutorial_observe_cell(const coord_def& gc);

// Additional information for tutorial players.
void tutorial_describe_item(const item_def &item);
void tutorial_inscription_info(bool autoinscribe, std::string prompt);
bool tutorial_pos_interesting(int x, int y);
void tutorial_describe_pos(int x, int y);
bool tutorial_monster_interesting(const monsters *mons);
void tutorial_describe_monster(const monsters *mons);

struct tutorial_state
{
    FixedVector<bool, 85> tutorial_events;
    bool tut_explored;
    bool tut_stashes;
    bool tut_travel;
    unsigned int tut_spell_counter;
    unsigned int tut_throw_counter;
    unsigned int tut_berserk_counter;
    unsigned int tut_melee_counter;
    unsigned int tut_last_healed;
    unsigned int tut_seen_invisible;

    bool tut_just_triggered;
    unsigned int tutorial_type;
    unsigned int tutorial_left;
};

extern tutorial_state Tutorial;

#endif