1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
#include "rfield.h"
#include "rmenu.h"
#include "defs.h"
#include "font.h"
#include <string.h>
#include "bitmap.h"
RField::RField( bool selectable, bool perm, int return_val, RMenu * who, int number, int sound_ ):
select( selectable ),
ret( return_val ),
num( number ),
title( perm ),
next( NULL ),
prev( NULL ),
menu_next( who ),
sound( sound_ ){
}
void RField::Add( RField * rf ) {
next = rf;
if ( rf != NULL )
rf->prev = this;
}
void RField::setMenu( RMenu * nx ) {
menu_next = nx;
}
bool RField::Ok() {
return select;
}
bool RField::Title() {
return title;
}
void RField::Selected() {
if ( sound != -1 ){
Util::playSound( sound, 255 );
}
}
int RField::Size() {
return 0;
}
void RField::Draw( const Bitmap & work, int x, int y, int col ) {
}
bool RField::equiv( void * obj ) {
return false;
}
int RField::Val() {
return ret;
}
void RField::set( void * object ){
}
RField * RField::Next() {
return next;
}
RField * RField::Prev() {
return prev;
}
int RField::Place() {
return num;
}
RMenu * RField::NextMenu() {
return menu_next;
}
RField::~RField() {
}
//**//
RField_Name::RField_Name( Font * f_font, string name, bool selectable, bool perm, int return_val, RMenu * who, int number, int sound ):
RField( selectable, perm, return_val, who, number, sound ) {
handle = name;
field_font = f_font;
}
bool RField_Name::equiv( void * obj ) {
return handle == *(string *)obj;
}
int RField_Name::Size() {
return field_font->getHeight();
}
void RField_Name::set( void * object ){
string * str = (string *) object;
this->handle = *str;
}
void RField_Name::Draw( const Bitmap & work, int x, int y, int col ) {
work.printf( x, y, col, this->field_font, this->handle );
}
RField_Name::~RField_Name() {
//delete[] handle;
// free( handle );
}
RField_Bitmap::RField_Bitmap( const Bitmap & look, bool selectable, bool perm, int return_val, RMenu * who, int number, int sound ):
RField( selectable, perm, return_val, who, number, sound ) {
scene = look;
}
bool RField_Bitmap::equiv( void * obj ) {
return false;
}
int RField_Bitmap::Size() {
return scene.getHeight();
}
void RField_Bitmap::Draw( const Bitmap & work, int x, int y, int col ) {
scene.draw( x, y, work );
}
RField_Bitmap::~RField_Bitmap() {
}
|