125 lines
2.5 KiB
C++
125 lines
2.5 KiB
C++
#pragma once
|
|
#pragma GCC diagnostic ignored "-Wvarargs"
|
|
#ifndef TINYTERM_H
|
|
#define TINYTERM_H
|
|
|
|
|
|
#include <cstdio>
|
|
#include <cstring>
|
|
#include <stdarg.h>
|
|
#include <string>
|
|
|
|
namespace tiny {
|
|
|
|
|
|
|
|
struct ErrorLevel {
|
|
int value;
|
|
ErrorLevel(int var){
|
|
|
|
this->value=var;
|
|
}
|
|
void setvalue(int var){
|
|
this->value=var;
|
|
}
|
|
};
|
|
|
|
/*
|
|
-1: none
|
|
0: error
|
|
1: success
|
|
2: warning
|
|
3: message
|
|
4: echo
|
|
|
|
ex (i recommend using on main.cpp):
|
|
tiny::ErrorLevel tiny::level={1};
|
|
*/
|
|
|
|
extern tiny::ErrorLevel level;
|
|
|
|
|
|
const char* WHITE="\033[0m";
|
|
const char* BLACK="\033[30m";
|
|
const char* RED="\033[31m";
|
|
const char* GREEN="\033[32m";
|
|
const char* YELLOW="\033[33m";
|
|
const char* BLUE="\033[34m";
|
|
const char* MAGENTA="\033[35m";
|
|
const char* CYAN="\033[36m";
|
|
const char* BGRED="\033[41m";
|
|
const char* BOLDBLACK="\033[1m\033[30m";
|
|
const char* BOLDRED="\033[1m\033[31m";
|
|
const char* BOLDGREEN="\033[1m\033[32m";
|
|
const char* BOLDYELLOW="\033[1m\033[33m";
|
|
const char* BOLDBLUE="\033[1m\033[34m";
|
|
const char* BOLDMAGENTA="\033[1m\033[35m";
|
|
const char* BOLDCYAN="\033[1m\033[36m";
|
|
const char* BOLDWHITE="\033[1m\033[37m";
|
|
#define ending \
|
|
mixer.append(info); mixer.append("\033[0m\n");\
|
|
const char * finalinfo=mixer.c_str();\
|
|
va_start (arg, finalinfo);\
|
|
vfprintf (stdout, finalinfo, arg);\
|
|
va_end (arg);
|
|
|
|
inline void echo(const char * info,...){
|
|
if (level.value==4)
|
|
{
|
|
va_list arg;
|
|
std::string mixer=info;
|
|
mixer.append("\n");
|
|
const char * finalinfo=mixer.c_str();
|
|
va_start (arg, finalinfo);
|
|
vfprintf (stdout, finalinfo, arg);
|
|
va_end (arg);}
|
|
}
|
|
inline void warning(const char * info,...){
|
|
if (level.value>=1)
|
|
{
|
|
va_list arg;
|
|
std::string mixer=YELLOW;ending
|
|
}
|
|
}
|
|
inline void fatal(const char * info,...){
|
|
va_list arg;
|
|
std::string mixer=BOLDWHITE+std::string(BGRED);ending
|
|
}
|
|
inline void error(const char * info,...){
|
|
if (level.value>=0)
|
|
{
|
|
va_list arg;
|
|
std::string mixer=BOLDRED;ending
|
|
}}
|
|
inline void success(const char * info , ...){
|
|
if (level.value>=2)
|
|
{
|
|
va_list arg;
|
|
std::string mixer=GREEN;ending}
|
|
}
|
|
inline void message(const char * info , ...){
|
|
if (level.value>=3)
|
|
{
|
|
va_list arg;
|
|
std::string mixer=BOLDWHITE;ending}
|
|
}
|
|
inline void startup(const char* game,const char*version){
|
|
int lv=level.value;level.value=6;
|
|
echo("%s %s",game,version);
|
|
warning("be warned that");
|
|
error("ERRORS MIGHT OCCUR!!!");
|
|
success("but dont worry");
|
|
message("this is not an error");
|
|
fatal("I SWEAR");
|
|
level.value=lv;
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|