About Store Forum Documentation Contact
Donations:
309$/mo



Post Reply 
crash at usage of my class
Author Message
Babulesnik Offline
Member

Post: #1
crash at usage of my class
I created a class for the smooth attenuation of the text.But when I create object of this class and I start to use it leads to critical end of the program.Because of it I cannot trace in what place an error (((

Header
Code:
struct SystemMessage
{
    TextDS TextDSMessage;

    SystemMessage(); //конструктор

    SystemMessage FontMsg   (Str   FontMsg  );
    SystemMessage ColorMsg  (Vec   ColorMsg );
    SystemMessage Speed     (Flt   SpeedMsg );
    void          Update    (               );
    void          Show      (               );

private:
    Flt    Alpha        ;
    Bool   ShowMsg      ;
    Flt    SpeedMessage ;
};

Source
Code:
/*******************************************************************************
  Набор полезных функций и классов для расширения возможностей и облегчения              
  написания програм.
*******************************************************************************/

#include "stdafx.h"
#include "Main.h"

SystemMessage::SystemMessage()
{
    SpeedMessage        =0.001;
    Alpha               =0;
    ShowMsg             =false;

    TextDSMessage.reset       (                      );
    TextDSMessage.font  =Fonts("Gui/Fonts/Arial.font");
    TextDSMessage.color =Color(0,0,0,0               );
    TextDSMessage.scale =     (0.08,0.08             );
};
SystemMessage SystemMessage::Speed(Flt SpeedMsg)
{
  SpeedMessage=SpeedMsg;
  return *this;
};
SystemMessage SystemMessage::FontMsg   (Str FontMsg )
{
  TextDSMessage.reset();
  TextDSMessage.load(FontMsg);
  return *this;
};
SystemMessage SystemMessage::ColorMsg  (Vec ColorMsg)
{
  TextDSMessage.color  =Color(ColorMsg);
  TextDSMessage.color.a=Alpha;
  return *this;
};
void SystemMessage::Show()
{
  Alpha  =255    ;
  ShowMsg=true   ;
};
void SystemMessage::Update  ()
{
    if(ShowMsg)
    {
     Alpha-=SpeedMessage;
     if (Alpha<1){ShowMsg=false;};
    };
};

The declaration and usage
Code:
Init()
...
SystemMessage Message;

login_menu.getText    ("login_info" ).tds=&Message.TextDSMessage;

Catastrophe is resulted by the output agent of the button
Code:
void enter_login(Ptr)
{
   Str Login,Pass,ErrorMessage;
   Login=login_menu.getTextLine("login_enter")();
   Pass =login_menu.getTextLine("pass_enter" )();

   if(!ValidStr(ErrorMessage,Login))
   {login_menu.getText("login_info").set(ErrorMessage);CAlpha=255;pokaz=1;}
   else SendLogin(Login,Pass);
   login_menu.getTextLine("login_enter" ).clear();
   login_menu.getTextLine("pass_enter"  ).clear();
}

I will be very glad to hear any help.

P.S I assume that an error somewhere in the constructor,because if to change for this code of errors is not present
Code:
TextDS Font_Login;
Font_Login.reset();
Font_Login.font=Fonts("Gui/Fonts/Arial.font");
login_menu.getText    ("login_info" ).tds=&Font_Login;
07-13-2011 06:00 PM
Find all posts by this user Quote this message in a reply
Dampire Offline
Member

Post: #2
RE: crash at usage of my class
Use debug.
07-14-2011 06:56 AM
Find all posts by this user Quote this message in a reply
Babulesnik Offline
Member

Post: #3
RE: crash at usage of my class
How to me to create value by default in the constructor of user class TextDS?

For example if I create value by default for Alpha all well
Code:
struct SystemMessage
{
    TextDS TextDSMessage;

    SystemMessage(Flt=1); //конструктор

    SystemMessage FontMsg   (Str   FontMsg  );
    SystemMessage ColorMsg  (Vec   ColorMsg );
    SystemMessage Speed     (Flt   SpeedMsg );
    void          Update    (               );
    void          Show      (               );

private:
    Flt    Alpha        ;
    Bool   ShowMsg      ;
    Flt    SpeedMessage ;
};
...
SystemMessage::SystemMessage(Flt F)
{
    Alpha=F;

    //TextDSMessage.reset       (                      );

};
But if I create value by default for TextDSMessage I receive an error
"no appropriate default constructor available"
Code:
struct SystemMessage
{
    TextDS TextDSMessage;

    SystemMessage(TextDS); //конструктор

    SystemMessage FontMsg   (Str   FontMsg  );
    SystemMessage ColorMsg  (Vec   ColorMsg );
    SystemMessage Speed     (Flt   SpeedMsg );
    void          Update    (               );
    void          Show      (               );

private:
    Flt    Alpha        ;
    Bool   ShowMsg      ;
    Flt    SpeedMessage ;
};
...
SystemMessage::SystemMessage(TextDS TextDSMessage)
{

    TextDSMessage.reset  ( );

};

Still wanted to add if I write so that I receive at once crash at start
Code:
struct SystemMessage
{
    TextDS TextDSMessage;

    SystemMessage(); //конструктор

    SystemMessage FontMsg   (Str   FontMsg  );
    SystemMessage ColorMsg  (Vec   ColorMsg );
    SystemMessage Speed     (Flt   SpeedMsg );
    void          Update    (               );
    void          Show      (               );

private:
    Flt    Alpha        ;
    Bool   ShowMsg      ;
    Flt    SpeedMessage ;
};

..

SystemMessage::SystemMessage()
{

    TextDSM[/align]essage.reset       (                      );
           TextDSMessage.font  =Fonts("Gui/Fonts/lobbi_font.font");
};
(This post was last modified: 07-14-2011 09:32 PM by Babulesnik.)
07-14-2011 09:25 PM
Find all posts by this user Quote this message in a reply
Dampire Offline
Member

Post: #4
RE: crash at usage of my class
Arrange brakepoints in constructor and use DEBUG!!! Stop spamming this forum, create one tread and rename it as "Babulesnik questions".

P.S. С таким уровнем знаний ты собираешься делать MMO? Пишешь конструкторы, так и описывай их одинаково. А не в одном месте Flt=1 а в другом Flt F. И нечего в конструкторы прописывать прогрузку игровых объектов, в то время как движок еще не прогрузился.
07-15-2011 06:42 AM
Find all posts by this user Quote this message in a reply
Babulesnik Offline
Member

Post: #5
RE: crash at usage of my class
(07-15-2011 06:42 AM)Dampire Wrote:  Arrange brakepoints in constructor and use DEBUG!!! Stop spamming this forum, create one tread and rename it as "Babulesnik questions".

P.S. С таким уровнем знаний ты собираешься делать MMO? Пишешь конструкторы, так и описывай их одинаково. А не в одном месте Flt=1 а в другом Flt F. И нечего в конструкторы прописывать прогрузку игровых объектов, в то время как движок еще не прогрузился.
I'm writing in one topic)

ЗЫ ЖЖешь!)))Такое мог написать только русский )Знания естесно не на высшем уровне,но я работаю над собой каждый день.Если проблема была бы в использовании отладчика с точкой остановки я бы не писал.Читай внимательнее,если есть что сказать-говори,а так в данном случае флудишь ты)

ЗЫЫ Я не просто собираюсь,я ее напишу)
07-15-2011 01:22 PM
Find all posts by this user Quote this message in a reply
Post Reply