Skip to content

Commit

Permalink
> Fixed: music
Browse files Browse the repository at this point in the history
+Update
  • Loading branch information
Cediner committed Mar 26, 2024
1 parent 9b33a26 commit efbc891
Show file tree
Hide file tree
Showing 5 changed files with 113 additions and 27 deletions.
2 changes: 1 addition & 1 deletion build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<project name="hafen" default="deftgt">
<property name="name" value="ArdClient"/>
<property name="version" value="2024.03.25"/>
<property name="version" value="2024.03.26"/>

<target name="build-env">
<mkdir dir="build"/>
Expand Down
95 changes: 71 additions & 24 deletions src/haven/MCache.java
Original file line number Diff line number Diff line change
Expand Up @@ -205,13 +205,14 @@ public static interface OverlayInfo {
@Resource.LayerName("overlay")
public static class ResOverlay extends Resource.Layer implements OverlayInfo {
public final Collection<String> tags;
private final int matid;
private final int matid, omatid;

public ResOverlay(Resource res, Message buf) {
res.super();
int ver = buf.uint8();
if (ver == 1) {
int matid = 0;
int omatid = 0;
Collection<String> tags = Collections.emptyList();
Object[] data = buf.list();
for (Object argp : data) {
Expand All @@ -226,12 +227,17 @@ public ResOverlay(Resource res, Message buf) {
break;
}
case "mat": {
matid = (Integer) arg[1];
matid = Utils.iv(arg[1]);
break;
}
case "omat": {
omatid = Utils.iv(arg[1]);
break;
}
}
}
this.matid = matid;
this.omatid = omatid;
this.tags = tags;
} else {
throw (new Resource.LoadException("unknown overlay version: " + ver, res));
Expand All @@ -246,7 +252,13 @@ public Collection<String> tags() {
}

public Material mat() {
return (getres().layer(Material.Res.class, matid).get());
return (getres().flayer(Material.Res.class, matid).get());
}

public Material omat() {
if(omatid < 0)
return(null);
return(getres().flayer(Material.Res.class, omatid).get());
}

public String toString() {
Expand Down Expand Up @@ -420,30 +432,65 @@ private void makeflavor() {
fo[i] = new LinkedList<Gob>();
Coord c = new Coord(0, 0);
Coord tc = gc.mul(cmaps);
int i = 0;
Random rnd = new Random(id);
for (c.y = 0; c.y < cmaps.x; c.y++) {
for (c.x = 0; c.x < cmaps.y; c.x++, i++) {
Tileset set = tileset(tiles[i]);
int fp = rnd.nextInt();
int rp = rnd.nextInt();
double a = rnd.nextDouble();
if (set.flavobjs.size() > 0) {
if ((fp % set.flavprob) == 0) {
Indir<Resource> r = set.flavobjs.pick(rp % set.flavobjs.tw);
if (Config.hideflovisual) {
Resource res = r.get();
if (res != null && res.name.startsWith("gfx/tiles/"))
continue;
{
int i = 0;
Random rnd = new Random(id);
for (c.y = 0; c.y < cmaps.x; c.y++) {
for (c.x = 0; c.x < cmaps.y; c.x++, i++) {
Tileset set = tileset(tiles[i]);
int fp = rnd.nextInt();
int rp = rnd.nextInt();
double a = rnd.nextDouble();
if (set.flavobjs.size() > 0) {
if ((fp % set.flavprob) == 0) {
Indir<Resource> r = set.flavobjs.pick(rp % set.flavobjs.tw);
if (Config.hideflovisual) {
Resource res = r.get();
if (res != null && res.name.startsWith("gfx/tiles/"))
continue;
}
Gob g = new Flavobj(c.add(tc).mul(tilesz).add(tilesz.div(2)), a * 2 * Math.PI);
g.setattr(new Flavdraw(g, r, Message.nil, set.flavobjmat));
Coord cc = c.div(cutsz);
fo[cc.x + (cc.y * cutn.x)].add(g);
}
Gob g = new Flavobj(c.add(tc).mul(tilesz).add(tilesz.div(2)), a * 2 * Math.PI);
g.setattr(new Flavdraw(g, r, Message.nil, set.flavobjmat));
Coord cc = c.div(cutsz);
fo[cc.x + (cc.y * cutn.x)].add(g);
}
}
}
}

// Area area = Area.sized(cutc.mul(cutsz), cutsz);
// Area garea = area.xl(gc.mul(cmaps));
// Random rnd = new Random(id + cutc.x + (cutc.y * cutn.x));
// Tileset.Flavor.Buffer buf = new Tileset.Flavor.Buffer(sess.glob, garea, rnd.nextLong());
//
// int[] ids = new int[16];
// int nids = 0;
// {
// boolean[] uids = new boolean[nsets.length];
// int i = area.ul.x + (area.ul.y * cmaps.x);
// for(int y = 0; y < cutsz.y; y++, i += (cmaps.x - cutsz.x)) {
// for(int x = 0; x < cutsz.x; x++, i++) {
// int id = tiles[i];
// if(!uids[id]) {
// uids[id] = true;
// if(nids >= ids.length)
// ids = Arrays.copyOf(ids, ids.length * 2);
// ids[nids++] = id;
// }
// }
// }
// }
// for(int i = 0; i < nids; i++) {
// Tileset.Flavor.Terrain trn = new Tileset.Flavor.Terrain(this, MCache.this, ids[i], garea, area.ul.sub(garea.ul));
// Tileset set = trn.tileset(ids[i]);
// int o = 0;
// for(Indir<Tileset.Flavor> flp : set.flavors) {
// rnd.setSeed(buf.seed ^ (ids[i] << 16) ^ o);
// flp.get().flavor(buf, trn, rnd);
// o++;
// }
// }
this.fo = fo;
}

Expand Down Expand Up @@ -1176,7 +1223,7 @@ public Coord3f getnorm(SurfaceID id, Coord2d pc) {
Grid g = getgridt(tc);
MapMesh cut = g.getcut(tc.sub(g.ul).div(cutsz));
Tiler t = tiler(g.gettile(tc.sub(g.ul)));
return(cut.getsurf(id, t).getnorm(pc));
return (cut.getsurf(id, t).getnorm(pc));
}

public Coord3f getzp_old(Coord2d pc) {
Expand Down Expand Up @@ -1326,7 +1373,7 @@ public void mapdata2(Message msg) {
g.fill(msg);
req.remove(c);
olseq++;
chseq++;
chseq++;
gridwait.wnotify();
}
}
Expand Down
39 changes: 39 additions & 0 deletions src/haven/Tileset.java
Original file line number Diff line number Diff line change
Expand Up @@ -335,6 +335,10 @@ private Tileset(Resource res) {

public Tileset(Resource res, Message buf) {
res.super();
newParsing(res, new MessageBuf(buf));
}

private void newParsing(Resource res, Message buf) {
while (!buf.eom()) {
int p = buf.uint8();
switch (p) {
Expand Down Expand Up @@ -362,6 +366,41 @@ public Tileset(Resource res, Message buf) {
Indir<Resource> fres = flr.get(i);
int w = flw.get(i);
flavors.add(Utils.cache(() -> new SpriteFlavor(fres, (double) w / (double) (flavprob * tw))));
flavobjs.add(fres, w);
}
break;
case 2:
tags = new String[buf.int8()];
for (int i = 0; i < tags.length; i++)
tags[i] = buf.string();
Arrays.sort(tags);
break;
default:
throw (new Resource.LoadException("Invalid tileset part " + p + " in " + res.name, res));
}
}
}

private void oldParsing(Resource res, Message buf) {
while (!buf.eom()) {
int p = buf.uint8();
switch (p) {
case 0:
tn = buf.string();
ta = buf.list();
break;
case 1:
int flnum = buf.uint16();
flavprob = buf.uint16();
for (int i = 0; i < flnum; i++) {
String fln = buf.string();
int flv = buf.uint16();
int flw = buf.uint8();
try {
flavobjs.add(res.pool.load(fln, flv), flw);
} catch (RuntimeException e) {
throw (new Resource.LoadException("Illegal resource dependency", e, res));
}
}
break;
case 2:
Expand Down
Binary file modified update/build/hafen.jar
Binary file not shown.
4 changes: 2 additions & 2 deletions update/ver
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
76dd6cdea893f78861e1a7147440fb62dafc641b
9b33a2648d847aea4c25fcc372d7b94e15e5d85c
bin/python/libcrypto-1_1.dll=594303e2ce6a4a02439054c84592791bf4ab0b7c12e9bbdb4b040e27251521f1
bin/python/libssl-1_1.dll=9d4cf1c03629f92662fc8d7e3f1094a7fc93cb41634994464b853df8036af843
bin/python/LICENSE.txt=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
Expand Down Expand Up @@ -42,7 +42,7 @@ build/gluegen-rt-natives-windows-i586.jar=c0b6af64fbc1676e30d8598284eda4c617c31f
build/gluegen-rt.jar=29a325957f01cf5b1a44e5662455185010886805f215d5a8f122a8b5eb877bfb
build/graal-sdk.jar=9d7b7e390cc13551c4c040ea8147da02d02434d441c14636e8d9a495d97625bd
build/graaljs.jar=4cef00a4af23bb514209e590822ecc7b0e792ccddb0725f8f30168772202fd20
build/hafen.jar=680286bc35b82f2d5115cb21c743f6cf92c21a90a29428492b8062fee82c1e4e
build/hafen.jar=5e533773b51d689e952de820b0824dcc263cfe3108004c3d467c9fab2c79a783
build/haven-config.properties=7d59e55c83a9fd7f0205863e888671267d75cb858414410899edd43006145380
build/HavenDiscord.jar=6b0afde896b7a81e0892fc1685f8b2119ea22a26773fb1f1a3c09e036f0efa33
build/jackson-core.jar=256ff34118ab292d1b4f3ee4d2c3e5e5f0f609d8e07c57e8ad1f51c46d4fbb46
Expand Down

0 comments on commit efbc891

Please sign in to comment.