mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-07-21 18:32:49 +00:00
removed the MAX_EDGE limitation
This commit is contained in:
parent
2271a67506
commit
6f89d2176f
@ -552,7 +552,7 @@ void geometry_information::generate_floorshapes_for(int id, cell *c, int siid, i
|
|||||||
}
|
}
|
||||||
|
|
||||||
finishshape();
|
finishshape();
|
||||||
ensure_vertex_number(*last);
|
ensure_vertex_number(fsh.levels[k][id]);
|
||||||
}
|
}
|
||||||
|
|
||||||
for(int co=0; co<2; co++) {
|
for(int co=0; co<2; co++) {
|
||||||
@ -584,19 +584,17 @@ void geometry_information::generate_floorshapes_for(int id, cell *c, int siid, i
|
|||||||
}
|
}
|
||||||
|
|
||||||
finishshape();
|
finishshape();
|
||||||
ensure_vertex_number(*last);
|
ensure_vertex_number(fsh.cone[co][id]);
|
||||||
}
|
}
|
||||||
|
|
||||||
for(int l=0; l<SIDEPARS; l++) {
|
for(int l=0; l<SIDEPARS; l++) {
|
||||||
for(auto& li: fsh.side[l]) {
|
for(auto& li: fsh.side[l])
|
||||||
li.tinf = &floor_texture_vertices[fsh.id];
|
bind_floor_texture(li, fsh.id);
|
||||||
ensure_vertex_number(li);
|
fsh.gpside[l].resize(c->type);
|
||||||
|
for(auto& gs: fsh.gpside[l]) {
|
||||||
|
for(auto& li: gs)
|
||||||
|
bind_floor_texture(li, fsh.id);
|
||||||
}
|
}
|
||||||
for(auto& gs: fsh.gpside[l])
|
|
||||||
for(auto& li: gs) {
|
|
||||||
li.tinf = &floor_texture_vertices[fsh.id];
|
|
||||||
ensure_vertex_number(li);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -606,19 +604,20 @@ void geometry_information::generate_floorshapes_for(int id, cell *c, int siid, i
|
|||||||
for(int l=0; l<SIDEPARS; l++) {
|
for(int l=0; l<SIDEPARS; l++) {
|
||||||
fsh.levels[l] = shFullFloor.levels[l];
|
fsh.levels[l] = shFullFloor.levels[l];
|
||||||
fsh.shadow = shFullFloor.shadow;
|
fsh.shadow = shFullFloor.shadow;
|
||||||
for(auto& li: fsh.levels[l]) li.tinf = &floor_texture_vertices[fsh.id];
|
for(auto& li: fsh.levels[l]) bind_floor_texture(li, fsh.id);
|
||||||
fsh.side[l] = shFullFloor.side[l];
|
fsh.side[l] = shFullFloor.side[l];
|
||||||
for(auto& li: fsh.side[l]) li.tinf = &floor_texture_vertices[fsh.id];
|
for(auto& li: fsh.side[l]) bind_floor_texture(li, fsh.id);
|
||||||
fsh.gpside[l].resize(c->type);
|
fsh.gpside[l].resize(c->type);
|
||||||
for(int e=0; e<c->type; e++) {
|
for(int e=0; e<c->type; e++) {
|
||||||
fsh.gpside[l][e] = shFullFloor.gpside[l][e];
|
fsh.gpside[l][e] = shFullFloor.gpside[l][e];
|
||||||
for(auto& li: fsh.gpside[l][e]) li.tinf = &floor_texture_vertices[fsh.id];
|
for(auto& li: fsh.gpside[l][e])
|
||||||
|
bind_floor_texture(li, fsh.id);
|
||||||
}
|
}
|
||||||
fsh.cone[0] = shFullFloor.cone[0];
|
fsh.cone[0] = shFullFloor.cone[0];
|
||||||
fsh.cone[1] = shFullFloor.cone[1];
|
fsh.cone[1] = shFullFloor.cone[1];
|
||||||
for(int c=0; c<2; c++)
|
for(int c=0; c<2; c++)
|
||||||
for(auto& li: fsh.cone[c])
|
for(auto& li: fsh.cone[c])
|
||||||
li.tinf = &floor_texture_vertices[fsh.id];
|
bind_floor_texture(li, fsh.id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
finishshape();
|
finishshape();
|
||||||
@ -1058,6 +1057,11 @@ EX void ensure_vertex_number(hpcshape& sh) {
|
|||||||
ensure_vertex_number(*sh.tinf, sh.e - sh.s);
|
ensure_vertex_number(*sh.tinf, sh.e - sh.s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EX void bind_floor_texture(hpcshape& li, int id) {
|
||||||
|
li.tinf = &floor_texture_vertices[id];
|
||||||
|
ensure_vertex_number(li);
|
||||||
|
}
|
||||||
|
|
||||||
const int FLOORTEXTURESIZE = 4096;
|
const int FLOORTEXTURESIZE = 4096;
|
||||||
|
|
||||||
void geometry_information::make_floor_textures_here() {
|
void geometry_information::make_floor_textures_here() {
|
||||||
|
12
hyper.h
12
hyper.h
@ -339,7 +339,7 @@ extern videopar vid;
|
|||||||
|
|
||||||
#define self (*this)
|
#define self (*this)
|
||||||
|
|
||||||
#define MODFIXER (2*10090080*17)
|
// #define MODFIXER (2*10090080*17)
|
||||||
|
|
||||||
#define BUGCOLORS 3
|
#define BUGCOLORS 3
|
||||||
|
|
||||||
@ -370,6 +370,16 @@ extern videopar vid;
|
|||||||
// size casted to int, to prevent warnings and actual errors caused by the unsignedness of x.size()
|
// size casted to int, to prevent warnings and actual errors caused by the unsignedness of x.size()
|
||||||
template<class T> int isize(const T& x) {return x.size(); }
|
template<class T> int isize(const T& x) {return x.size(); }
|
||||||
|
|
||||||
|
// automatically growing vector
|
||||||
|
template<class T> struct grow_vector : public vector<T> {
|
||||||
|
T& grow(size_t index) {
|
||||||
|
if(index >= this->size()) {
|
||||||
|
this->resize(index + 1);
|
||||||
|
}
|
||||||
|
return (vector<T>::operator[]) (index);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// game forward declarations
|
// game forward declarations
|
||||||
|
|
||||||
namespace anticheat { extern bool tampered; }
|
namespace anticheat { extern bool tampered; }
|
||||||
|
@ -150,13 +150,10 @@ EX namespace netgen {
|
|||||||
|
|
||||||
for(int i=0; i<CELLS; i++) scan(f, ct[i]);
|
for(int i=0; i<CELLS; i++) scan(f, ct[i]);
|
||||||
|
|
||||||
for(int i=0; i<CELLS; i++) nei[i].resize(ct[i]);
|
for(int i=0; i<CELLS; i++) nei[i].clear(), nei[i].resize(ct[i], -1);
|
||||||
|
|
||||||
for(int i=0; i<CELLS; i++) for(int j=0; j<16; j++) scan(f, vx[i][j]);
|
for(int i=0; i<CELLS; i++) for(int j=0; j<16; j++) scan(f, vx[i][j]);
|
||||||
|
|
||||||
for(int i=0; i<CELLS; i++)
|
|
||||||
for(int j=0; j<7; j++) nei[i][j] = -1;
|
|
||||||
|
|
||||||
while(true) {
|
while(true) {
|
||||||
int a, b, c;
|
int a, b, c;
|
||||||
scan(f, a, b, c);
|
scan(f, a, b, c);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user