/* ScummVM - Graphic Adventure Engine * * ScummVM is the legal property of its developers, whose names * are too numerous to list here. Please refer to the COPYRIGHT * file distributed with this source distribution. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ #ifndef AGS_SHARED_AC_DIALOG_TOPIC_H #define AGS_SHARED_AC_DIALOG_TOPIC_H #include "ags/shared/core/types.h" namespace AGS3 { namespace AGS { namespace Shared { class Stream; } // namespace Shared } // namespace AGS using namespace AGS; // FIXME later // [IKM] This is *conversation* dialog, not *gui* dialog, mind you! #define MAXTOPICOPTIONS 30 #define DFLG_ON 1 // currently enabled #define DFLG_OFFPERM 2 // off forever (can't be trurned on) #define DFLG_NOREPEAT 4 // character doesn't repeat it when clicked #define DFLG_HASBEENCHOSEN 8 // dialog option is 'read' #define DTFLG_SHOWPARSER 1 // show parser in this topic #define DCMD_SAY 1 #define DCMD_OPTOFF 2 #define DCMD_OPTON 3 #define DCMD_RETURN 4 #define DCMD_STOPDIALOG 5 #define DCMD_OPTOFFFOREVER 6 #define DCMD_RUNTEXTSCRIPT 7 #define DCMD_GOTODIALOG 8 #define DCMD_PLAYSOUND 9 #define DCMD_ADDINV 10 #define DCMD_SETSPCHVIEW 11 #define DCMD_NEWROOM 12 #define DCMD_SETGLOBALINT 13 #define DCMD_GIVESCORE 14 #define DCMD_GOTOPREVIOUS 15 #define DCMD_LOSEINV 16 #define DCMD_ENDSCRIPT 0xff #define DCHAR_NARRATOR 999 #define DCHAR_PLAYER 998 struct DialogTopic { char optionnames[MAXTOPICOPTIONS][150]; int32_t optionflags[MAXTOPICOPTIONS]; short entrypoints[MAXTOPICOPTIONS]; short startupentrypoint; short codesize; int numoptions; int topicFlags; // NOTE: optionscripts is an unknown data from before AGS 2.5 #ifdef OBSOLETE std::vector optionscripts; #endif void ReadFromFile(Shared::Stream *in); void ReadFromSavegame(Shared::Stream *in); void WriteToSavegame(Shared::Stream *out) const; }; } // namespace AGS3 #endif