91 lines
1.7 KiB
C
91 lines
1.7 KiB
C
/*
|
|
* Mr. 4th Dimention - Allen Webster
|
|
*
|
|
* 23.02.2016
|
|
*
|
|
* Types shared by custom and application
|
|
*
|
|
*/
|
|
|
|
// TOP
|
|
|
|
#ifndef FRED_BUFFER_TYPES_H
|
|
#define FRED_BUFFER_TYPES_H
|
|
|
|
typedef struct Full_Cursor{
|
|
int pos;
|
|
int line, character;
|
|
float unwrapped_x, unwrapped_y;
|
|
float wrapped_x, wrapped_y;
|
|
} Full_Cursor;
|
|
|
|
typedef enum{
|
|
buffer_seek_pos,
|
|
buffer_seek_wrapped_xy,
|
|
buffer_seek_unwrapped_xy,
|
|
buffer_seek_line_char
|
|
} Buffer_Seek_Type;
|
|
|
|
typedef struct Buffer_Seek{
|
|
Buffer_Seek_Type type;
|
|
union{
|
|
struct { int pos; };
|
|
struct { int round_down; float x, y; };
|
|
struct { int line, character; };
|
|
};
|
|
} Buffer_Seek;
|
|
|
|
static Buffer_Seek
|
|
seek_pos(int pos){
|
|
Buffer_Seek result;
|
|
result.type = buffer_seek_pos;
|
|
result.pos = pos;
|
|
return(result);
|
|
}
|
|
|
|
static Buffer_Seek
|
|
seek_wrapped_xy(float x, float y, int round_down){
|
|
Buffer_Seek result;
|
|
result.type = buffer_seek_wrapped_xy;
|
|
result.x = x;
|
|
result.y = y;
|
|
result.round_down = round_down;
|
|
return(result);
|
|
}
|
|
|
|
static Buffer_Seek
|
|
seek_unwrapped_xy(float x, float y, int round_down){
|
|
Buffer_Seek result;
|
|
result.type = buffer_seek_unwrapped_xy;
|
|
result.x = x;
|
|
result.y = y;
|
|
result.round_down = round_down;
|
|
return(result);
|
|
}
|
|
|
|
static Buffer_Seek
|
|
seek_xy(float x, float y, int round_down, int unwrapped){
|
|
Buffer_Seek result;
|
|
if (unwrapped){
|
|
result = seek_unwrapped_xy(x,y,round_down);
|
|
}
|
|
else{
|
|
result = seek_wrapped_xy(x,y,round_down);
|
|
}
|
|
return(result);
|
|
}
|
|
|
|
static Buffer_Seek
|
|
seek_line_char(int line, int character){
|
|
Buffer_Seek result;
|
|
result.type = buffer_seek_line_char;
|
|
result.line = line;
|
|
result.character = character;
|
|
return(result);
|
|
}
|
|
|
|
#endif
|
|
|
|
// BOTTOM
|
|
|