| Chunk |
|---|
| Conflicting content |
|---|
);
}
<<<<<<< HEAD
private SystemTimer SysTimer = new SystemTimer();
private SystemTimer timer = new SystemTimer();
=======
/** play a sample */
public void queueSample(Event.SoundSample sample)
{
Integer buffer = samples.get(sample.sample_id);
if(buffer == null)return;
if(!source_queue_iterator.hasNext())
source_queue_iterator = source_queue.iterator();
Integer head = source_queue_iterator.next();
Integer source = head;
while(SoundManager.isPlaying(source)){
if(!source_queue_iterator.hasNext())
source_queue_iterator = source_queue.iterator();
source = source_queue_iterator.next();
if(source.equals(head)){
logger.warning("Source queue exausted !");
return;
}
}
SoundManager.setGain(source, sample.volume);
SoundManager.setPan(source, sample.pan);
SoundManager.play(source, buffer);
}
protected void updateHispeed()
{
judgment_line_y1 = skin.judgment_line;
if(hispeed > 1){
double off = JUDGMENT_SIZE * (hispeed-1);
judgment_line_y1 -= off;
}
measure_size = 0.8 * hispeed * getViewport();
updateHS = false;
}
public double getMeasureSize() { return measure_size; }
public double getViewport() { return judgment_line_y2; }
protected double judgmentArea()
{
// y2-y1 is the the upper half of the judgment area
// 2*(y2-y1) is the total area
// y1 + 2*(y2-y1) is the end line of the area
// simplifying: y1 + 2*y2 - 2*y1 == 2*y2 - y1
return 2 * judgment_line_y2 - judgment_line_y1;
}
>>>>>>> 5c459cc92b78333cde6c656149ea034833a499f1
/**
* initialize the common elements for the game.
* this is called by the window render |
| Solution content |
|---|
);
}
/** play a sample */
public void queueSample(Event.SoundSample sample)
{
Integer buffer = samples.get(sample.sample_id);
if(buffer == null)return;
if(!source_queue_iterator.hasNext())
source_queue_iterator = source_queue.iterator();
Integer head = source_queue_iterator.next();
Integer source = head;
while(SoundManager.isPlaying(source)){
if(!source_queue_iterator.hasNext())
source_queue_iterator = source_queue.iterator();
source = source_queue_iterator.next();
if(source.equals(head)){
logger.warning("Source queue exausted !");
return;
}
}
SoundManager.setGain(source, sample.volume);
SoundManager.setPan(source, sample.pan);
SoundManager.play(source, buffer);
}
protected void updateHispeed()
{
judgment_line_y1 = skin.judgment_line;
if(hispeed > 1){
double off = JUDGMENT_SIZE * (hispeed-1);
judgment_line_y1 -= off;
}
measure_size = 0.8 * hispeed * getViewport();
updateHS = false;
}
public double getMeasureSize() { return measure_size; }
public double getViewport() { return judgment_line_y2; }
protected double judgmentArea()
{
// y2-y1 is the the upper half of the judgment area
// 2*(y2-y1) is the total area
// y1 + 2*(y2-y1) is the end line of the area
// simplifying: y1 + 2*y2 - 2*y1 == 2*y2 - y1
return 2 * judgment_line_y2 - judgment_line_y1;
}
/**
* initialize the common elements for the game.
* this is called by the window render |
| File |
|---|
| Render.java |
| Developer's decision |
|---|
| Version 2 |
| Kind of conflict |
|---|
| Attribute |
| Comment |
| Method declaration |
| Method invocation |
| Chunk |
|---|
| Conflicting content |
|---|
buffer_iterator = event_list.iterator();
}
<<<<<<< HEAD
=======
// load up initial buffer
update_note_buffer(0);
>>>>>>> 5c459cc92b78333cde6c656149ea034833a499f1
// create sound sources
source_queue = new LinkedList |
| Solution content |
|---|
buffer_iterator = event_list.iterator();
}
// load up initial buffer
update_note_buffer(0);
// create sound sources
source_queue = new LinkedList |
| File |
|---|
| Render.java |
| Developer's decision |
|---|
| Version 2 |
| Kind of conflict |
|---|
| Comment |
| Method invocation |
| Chunk |
|---|
| Conflicting content |
|---|
// wait a bit.. 5 seconds at min
SysTimer.sleep((int) (5000 - (SysTimer.getTime() - lastLoopTime)));
<<<<<<< HEAD
lastLoopTime = SysTimer.getTime();
timer.startTimer();
}
/**
* Notification that a frame is being rendered. Responsible for
* running game logic and rendering the scene.
*/
public void frameRendering()
{
// work out how long its been since the last update, this
// will be used to calculate how far the entities should
// move this loop
long delta = SysTimer.getTime() - lastLoopTime;
lastLoopTime = SysTimer.getTime();
lastFpsTime += delta;
fps++;
// update our FPS counter if a second has passed
if (lastFpsTime >= 1000) {
logger.log(Level.FINEST, "FPS: {0}", fps);
fps_entity.setNumber(fps);
lastFpsTime = 0;
fps = 0;
//the timer counter
if(second_entity.getNumber() >= 59)
{
second_entity.setNumber(0);
minute_entity.incNumber();
}
else
second_entity.incNumber();
}
if(AUTOPLAY)do_autoplay();
else check_keyboard();
if(updateHS)updateHispeed();
update_note_buffer();
Iterator |
| Solution content |
|---|
// wait a bit.. 5 seconds at min
SystemTimer.sleep((int) (5000 - (SystemTimer.getTime() - lastLoopTime)));
start_time = lastLoopTime = SystemTimer.getTime();
}
/** this returns the next note that needs to be played
** of the defined channel or NULL if there's
** no such note in the moment **/
protected NoteEntity nextNoteKey(Event.Channel c)
{
if(note_channels.get(c).isEmpty())return null;
NoteEntity ne = note_channels.get(c).getFirst();
while(ne.getState() != NoteEntity.State.NOT_JUDGED &&
ne.getState() != NoteEntity.State.LN_HOLD)
{
note_channels.get(c).removeFirst();
if(note_channels.get(c).isEmpty())return null;
ne = note_channels.get(c).getFirst();
}
return ne;
} |
| File |
|---|
| Render.java |
| Developer's decision |
|---|
| Version 2 |
| Kind of conflict |
|---|
| Attribute |
| Comment |
| For statement |
| If statement |
| Method invocation |
| Method signature |
| Variable |
| While statement |
| Chunk |
|---|
| Conflicting content |
|---|
return ne;
}
<<<<<<< HEAD
private double judgmentArea()
{
// y2-y1 is the the upper half of the judgment area
// 2*(y2-y1) is the total area
// y1 + 2*(y2-y1) is the end line of the area
// simplifying: y1 + 2*y2 - 2*y1 == 2*y2 - y1
return 2 * judgment_line_y2 - judgment_line_y1;
}
private void updateHispeed()
{
judgment_line_y1 = skin.judgment.start;
if(hispeed > 1){
double off = skin.judgment.size * (hispeed-1);
judgment_line_y1 -= off;
}
measure_size = 0.8 * hispeed * getViewport();
updateHS = false;
}
/** returns the note speed in pixels/milliseconds */
public double getNoteSpeed() { return note_speed; }
public double getMeasureSize() { return measure_size; }
public double getViewport() { return judgment_line_y2; }
private void check_judgment(NoteEntity ne)
{
String judge;
switch (ne.getState())
{
case NOT_JUDGED: // you missed it (no keyboard input)
if(ne.isAlive()
&& ((ne instanceof LongNoteEntity && ne.getStartY() >= judgmentArea()) //needed by the ln head
|| (ne.getY() >= judgmentArea())))
{
if(judgment_entity != null)judgment_entity.setAlive(false);
judgment_entity = (JudgmentEntity) skin.getEntityMap().get("EFFECT_"+MISS_JUDGE).copy();
entities_matrix.add(judgment_entity);
note_counter.get(MISS_JUDGE).incNumber();
combo_entity.resetNumber();
update_screen_info(MISS_JUDGE,ne.getHit());
note_channels.get(ne.getChannel()).removeFirst();
ne.setState(NoteEntity.State.TO_KILL);
}
break;
case JUDGE: //LN & normal ones: has finished with good result
judge = skin.judgment.ratePrecision(ne.getHit());
judge = update_screen_info(judge,ne.getHit());
if(judgment_entity != null)judgment_entity.setAlive(false);
judgment_entity = (JudgmentEntity) skin.getEntityMap().get("EFFECT_"+judge).copy();
entities_matrix.add(judgment_entity);
note_counter.get(judge).incNumber();
System.out.println("EVENT "+ne.getTime()+" TIMER "+timer.getTime()+" DIFF "+(ne.getTime()-timer.getTime()));
if(!judge.equals(MISS_JUDGE))
{
Entity ee = skin.getEntityMap().get("EFFECT_CLICK_1").copy();
ee.setPos(ne.getX()+ne.getWidth()/2-ee.getWidth()/2,
getViewport()-ee.getHeight()/2);
entities_matrix.add(ee);
if(ne.getHit() >= skin.judgment.combo_threshold)combo_entity.incNumber();
else {
if(judge.equals("JUDGMENT_GOOD"))combo_entity.incNumber(); //because of the pills
else combo_entity.resetNumber();
}
if(ne instanceof LongNoteEntity)ne.setState(NoteEntity.State.TO_KILL);
else ne.setAlive(false);
} else {
combo_entity.resetNumber();
ne.setState(NoteEntity.State.TO_KILL);
}
last_sound.put(ne.getChannel(), ne.getSample());
note_channels.get(ne.getChannel()).removeFirst();
break;
case LN_HEAD_JUDGE: //LN: Head has been played
judge = skin.judgment.ratePrecision(ne.getHit());
judge = update_screen_info(judge,ne.getHit());
if(judgment_entity != null)judgment_entity.setAlive(false);
judgment_entity = (JudgmentEntity) skin.getEntityMap().get("EFFECT_"+judge).copy();
entities_matrix.add(judgment_entity);
note_counter.get(judge).incNumber();
if(!judge.equals(MISS_JUDGE))
{
Entity ee = skin.getEntityMap().get("EFFECT_LONGFLARE").copy();
ee.setPos(ne.getX()+ne.getWidth()/2-ee.getWidth()/2,ee.getY());
entities_matrix.add(ee);
Entity to_kill = longflare.put(ne.getChannel(),(AnimatedEntity) ee);
if(to_kill != null)to_kill.setAlive(false);
ee = skin.getEntityMap().get("EFFECT_CLICK_1").copy();
ee.setPos(ne.getX()+ne.getWidth()/2-ee.getWidth()/2,
getViewport()-ee.getHeight()/2);
entities_matrix.add(ee);
if(ne.getHit() >= skin.judgment.combo_threshold)combo_entity.incNumber();
else {
if(judge.equals("JUDGMENT_GOOD"))combo_entity.incNumber(); //because of the pills
else combo_entity.resetNumber();
}
ne.setState(NoteEntity.State.LN_HOLD);
}
last_sound.put(ne.getChannel(), ne.getSample());
break;
case LN_HOLD: // You keept too much time the note held that it misses
if(ne.isAlive() && ne.getY() >= judgmentArea())
{
if(judgment_entity != null)judgment_entity.setAlive(false);
judgment_entity = (JudgmentEntity) skin.getEntityMap().get("EFFECT_"+MISS_JUDGE).copy();
entities_matrix.add(judgment_entity);
note_counter.get(MISS_JUDGE).incNumber();
combo_entity.resetNumber();
update_screen_info(MISS_JUDGE,ne.getHit());
note_channels.get(ne.getChannel()).removeFirst();
ne.setState(NoteEntity.State.TO_KILL);
}
break;
case TO_KILL: // this is the "garbage collector", it just removes the notes off window
if(ne.isAlive() && ne.getY() >= window.getResolutionHeight())
{
// kill it
ne.setAlive(false);
else if(judge.equals("JUDGMENT_MISS"))
}
break;
}
}
/**
* TODO It would be nice to move all the check_judgment non judgment things to this function
* (bars, combos, counter, etc)
* @param judge
* @return judge
*/
private String update_screen_info(String judge, double hit)
{
int score_value = 0;
if(judge.equals("JUDGMENT_COOL"))
{
jambar_entity.addNumber(2);
consecutive_cools++;
if(lifebar_entity.getNumber() <= lifebar_entity.getLimit())lifebar_entity.addNumber(100);
score_value = 200 + (jamcombo_entity.getNumber()*10);
}
else if(judge.equals("JUDGMENT_GOOD"))
{
jambar_entity.addNumber(1);
consecutive_cools = 0;
if(lifebar_entity.getNumber() <= lifebar_entity.getLimit())lifebar_entity.addNumber(50);
score_value = 100;
}
else if(judge.equals("JUDGMENT_BAD"))
{
if(pills > 0)
{
judge = "JUDGMENT_GOOD";
jambar_entity.addNumber(1);
pills--;
pills_draw.getLast().setAlive(false);
score_value = 100; // TODO: not sure
}
else
{
jambar_entity.setNumber(0);
jamcombo_entity.resetNumber();
score_value = 4;
}
consecutive_cools = 0;
if(lifebar_entity.getNumber() <= lifebar_entity.getLimit())lifebar_entity.addNumber(30);
}
{
jambar_entity.setNumber(0);
jamcombo_entity.resetNumber();
consecutive_cools = 0;
if(lifebar_entity.getNumber() >= 30)lifebar_entity.addNumber(-30);
if(score_entity.getNumber() >= 10)score_value = -10;
else score_value = -score_entity.getNumber();
}
score_entity.addNumber(score_value);
if(jambar_entity.getNumber() >= jambar_entity.getLimit())
{
jambar_entity.setNumber(0); //reset
jamcombo_entity.incNumber();
}
if(consecutive_cools >= 15 && pills < 5)
{
consecutive_cools -= 15;
pills++;
Entity ee = skin.getEntityMap().get("PILL_"+pills).copy();
entities_matrix.add(ee);
pills_draw.add(ee);
}
if(combo_entity.getNumber() > 1 && maxcombo_entity.getNumber()<(combo_entity.getNumber()-1))
{
maxcombo_entity.incNumber();
}
hit_sum += hit;
if(!judge.equals(MISS_JUDGE))hit_count++;
total_notes++;
return judge;
}
private void do_autoplay()
{
for(Map.Entry |
| Solution content |
|---|
return ne;
}
private int buffer_measure = 0;
private double fractional_measure = 1;
|
| File |
|---|
| Render.java |
| Developer's decision |
|---|
| Version 2 |
| Kind of conflict |
|---|
| Attribute |
| Comment |
| For statement |
| If statement |
| Method declaration |
| Method invocation |
| Method signature |
| Variable |
| Chunk |
|---|
| Conflicting content |
|---|
Event e = buffer_iterator.next();
while(e.getMeasure() > buffer_measure) // this is the start of a new measure
{
<<<<<<< HEAD
buffer_timer += ((this.bpm/240) * (1-buffer_measure_pointer) * (measure_size*fractional_measure/hispeed))*10;
buffer_measure_pointer = 0.0;
buffer_offset -= measure_size * fractional_measure;
=======
buffer_timer += 1000 * ( 240/buffer_bpm * (fractional_measure-buffer_measure_pointer) );
>>>>>>> 5c459cc92b78333cde6c656149ea034833a499f1
MeasureEntity m = (MeasureEntity) skin.getEntityMap().get("MEASURE_MARK").copy();
m.setTime(buffer_timer);
entities_matrix.add(m); |
| Solution content |
|---|
Event e = buffer_iterator.next();
while(e.getMeasure() > buffer_measure) // this is the start of a new measure
{
buffer_timer += 1000 * ( 240/buffer_bpm * (fractional_measure-buffer_measure_pointer) );
MeasureEntity m = (MeasureEntity) skin.getEntityMap().get("MEASURE_MARK").copy();
m.setTime(buffer_timer);
entities_matrix.add(m); |
| File |
|---|
| Render.java |
| Developer's decision |
|---|
| Version 2 |
| Kind of conflict |
|---|
| Attribute |
| Chunk |
|---|
| Conflicting content |
|---|
buffer_measure_pointer = 0;
}
<<<<<<< HEAD
buffer_timer += ((this.bpm/240) * (e.getPosition()-buffer_measure_pointer) * (measure_size*fractional_measure/hispeed))*10;
buffer_measure_pointer = e.getPosition();
double abs_height = buffer_offset - (e.getPosition() * measure_size);
=======
buffer_timer += 1000 * ( 240/buffer_bpm * (e.getPosition()-buffer_measure_pointer) );
buffer_measure_pointer = e.getPosition();
>>>>>>> 5c459cc92b78333cde6c656149ea034833a499f1
switch(e.getChannel())
{ |
| Solution content |
|---|
buffer_measure_pointer = 0;
}
buffer_timer += 1000 * ( 240/buffer_bpm * (e.getPosition()-buffer_measure_pointer) );
buffer_measure_pointer = e.getPosition();
switch(e.getChannel())
{ |
| File |
|---|
| Render.java |
| Developer's decision |
|---|
| Version 2 |
| Kind of conflict |
|---|
| Attribute |
| Method invocation |
| Variable |
| Chunk |
|---|
| Conflicting content |
|---|
break;
case BPM_CHANGE:
<<<<<<< HEAD
entities_matrix.add(new BPMEntity(this,e.getValue(),abs_height, buffer_timer));
=======
buffer_bpm = e.getValue();
>>>>>>> 5c459cc92b78333cde6c656149ea034833a499f1
break;
case NOTE_1:case NOTE_2: |
| Solution content |
|---|
break;
case BPM_CHANGE:
buffer_bpm = e.getValue();
break;
case NOTE_1:case NOTE_2: |
| File |
|---|
| Render.java |
| Developer's decision |
|---|
| Version 2 |
| Kind of conflict |
|---|
| Attribute |
| Method invocation |
| Chunk |
|---|
| Conflicting content |
|---|
if(lne == null){
logger.log(Level.WARNING, "Attempted to RELEASE note {0}", e.getChannel());
}else{
<<<<<<< HEAD
lne.setEndY(abs_height);
lne.setTime(buffer_timer);
=======
lne.setEndTime(buffer_timer,velocity_integral(lne.getTime(),buffer_timer));
>>>>>>> 5c459cc92b78333cde6c656149ea034833a499f1
}
}
break; |
| Solution content |
|---|
if(lne == null){
logger.log(Level.WARNING, "Attempted to RELEASE note {0}", e.getChannel());
}else{
lne.setEndTime(buffer_timer,velocity_integral(lne.getTime(),buffer_timer));
}
}
break; |
| File |
|---|
| Render.java |
| Developer's decision |
|---|
| Version 2 |
| Kind of conflict |
|---|
| Method invocation |
| Chunk |
|---|
| Conflicting content |
|---|
case AUTO_PLAY:
case NOTE_SC:
<<<<<<< HEAD
entities_matrix.add(new SampleEntity(this,e.getSample(),abs_height, buffer_timer));
=======
SampleEntity s = new SampleEntity(this,e.getSample(),0);
s.setTime(buffer_timer);
entities_matrix.add(s);
>>>>>>> 5c459cc92b78333cde6c656149ea034833a499f1
break;
}
} |
| Solution content |
|---|
case AUTO_PLAY:
case NOTE_SC:
SampleEntity s = new SampleEntity(this,e.getSample(),0);
s.setTime(buffer_timer);
entities_matrix.add(s);
break;
}
} |
| File |
|---|
| Render.java |
| Developer's decision |
|---|
| Version 2 |
| Kind of conflict |
|---|
| Method invocation |
| Variable |
| Chunk |
|---|
| Conflicting content |
|---|
private Event.SoundSample value;
private Render render;
<<<<<<< HEAD
public SampleEntity(Render r, Event.SoundSample value, double y, double t)
=======
private long time_to_hit;
public SampleEntity(Render r, Event.SoundSample value, double y)
>>>>>>> 5c459cc92b78333cde6c656149ea034833a499f1
{
this.render = r;
this.value = value; |
| Solution content |
|---|
this.render = r;
private Event.SoundSample value;
private Render render;
private long time_to_hit;
public SampleEntity(Render r, Event.SoundSample value, double y)
{
this.value = value; |
| File |
|---|
| SampleEntity.java |
| Developer's decision |
|---|
| Version 2 |
| Kind of conflict |
|---|
| Attribute |
| Method signature |
| Chunk |
|---|
| Conflicting content |
|---|
* @author fox
*/
public class SystemTimer {
<<<<<<< HEAD
/** The number of "timer ticks" per second */
private final long timerTicksPerMilli = 1000000L;// 10^6
private long ticks = 0;
private long start;
/**
* Starts the timer running. The number of ticks is reset to zero and the timer is synchronized with the
* leading edge of the wave.
*/
public void SystemTimer()
{
startTimer();
}
public void startTimer()
{
long time = System.nanoTime();
long prev_time = time;
ticks = 0;
//Synchronize our timer
while(time == prev_time)time = System.nanoTime();
start = System.nanoTime();
}
=======
/** The number of nanoseconds per millisecond */
private static final int nanoTicksPerMilli = 1000000;// 10^6
>>>>>>> 5c459cc92b78333cde6c656149ea034833a499f1
/**
* Get the high resolution time in milliseconds
* |
| Solution content |
|---|
* @author fox
*/
public class SystemTimer {
/** The number of nanoseconds per millisecond */
private static final int nanoTicksPerMilli = 1000000;// 10^6
/**
* Get the high resolution time in milliseconds
* |
| File |
|---|
| SystemTimer.java |
| Developer's decision |
|---|
| Version 2 |
| Kind of conflict |
|---|
| Attribute |
| Comment |
| Method declaration |
| Chunk |
|---|
| Conflicting content |
|---|
}
*
* @return The high resolution time in milliseconds
*/
<<<<<<< HEAD
public long getTime() {
// we get the "timer ticks" from the high resolution timer
// then divide by the number of ticks in a millisecond giving
// us a nice clear time in milliseconds
return getClockTicks() / timerTicksPerMilli;
/**
* Returns the number of clock ticks since the timer was started. If the timer is stopped,
* the number of ticks will be frozen at the duration between when the clock was started and
* stopped.
*
* @return Number of ticks since the clock started.
*/
public long getClockTicks()
{
ticks = (System.nanoTime()-start);
return ticks;
=======
public static long getTime() {
return System.nanoTime() / nanoTicksPerMilli;
>>>>>>> 5c459cc92b78333cde6c656149ea034833a499f1
}
public void sleep(int milli) |
| Solution content |
|---|
*
* @return The high resolution time in milliseconds
*/
public static long getTime() {
return System.nanoTime() / nanoTicksPerMilli;
}
|
| File |
|---|
| SystemTimer.java |
| Developer's decision |
|---|
| Version 2 |
| Kind of conflict |
|---|
| Attribute |
| Comment |
| Method declaration |
| Method invocation |
| Method signature |
| Return statement |